Skocz do zawartości
Paszczu

Java - pomoc (podstawy) - szyfr permutacyjny

Rekomendowane odpowiedzi

Mam do napisania mały program w Javie i mam wielkie braki jeśli chodzi o składnię tego języka. Ale do rzeczy - program musi pobierać ciąg znaków z klawiatury, pobierać klucz, który będzie liczbą kolumn w macierzy (tablicy 2-wymiarowej), wkleić ten tekst do tablicy i odczytał wierszami. Czyli szyfrowanie permutacyjne. Z resztą - co się będę rozpisywał:

Zalóżmy, że mamy tekst jawny o długości L. Ustalmy klucz n, gdzie n<=L (oczywiście, w praktyce n jest znacznie mniejsze od L). W celu zaszyfrowania tworzymy macierz o n kolumnach i ?wypelniamy? jej kolejne wiersze tekstem jawnym. Powstaje M wierszy, gdzie L<=Mn. Dla przykładu, mając tekst ?AlaMaKota? i klucz n=3, otrzymujemy:ALAMAKOTAW celu utworzenia szyfrogramu, odczytujemy KOLUMNAMI zawartość macierzy; zatem tekst zakodowany w naszym przypadku ma postać:AMolataKa
Nad deszyfrowaniem pomęczę się sam (chodzi tu jak dać sobie radę z 'pustymi' znakami w tablicy - najważniejsze dla mnie jest to co tu ująłem.

Oto 'efekt' mojego klecenia:

public class perm {		public static void main (String args[]) throws IOException	{    String s="";  int klucz;  int i=0;  byte tab[]= new byte[100];  	  char szyfr;                    System.out.print("Podaj tekst do zaszyfrowania: ");        System.out.flush();        System.in.read(tab);        for (i=0; i < 100; i++)  {               	 if (tab[i]!=0 && tab[i]!=10 && tab[i]!=13)          {s+=((char) tab[i]); }               s=s.toUpperCase();        System.out.println("Tekst jawny: " + s );             System.out.print("Podaj klucz: ");        /* jak pobrać int z klawiatury?? */        if (klucz>tab.length)       	 {System.out.println("Podaj mniejszy klucz.");}       	        /* i tu byłbym wdzięczny za podpowiedź */          }       	 }
Byłbym wdzięczny za pomoc w 'skończeniu'.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

pobierz byty'a/y z inputa sklej je po konwersji do Stringa i wywolaj na nim/ nich Integer.parseInt(stringWejsciowy) - lapiesz NumberFormatException i pozawodach z wczytywaniem inta.

 

Co do wczytywania to wiesz ile znakow wczytales, wystarczy dopelnic tablice jakims predefiniowanym znakiem (pewnie 0) i po 2 konkurencji z 'pustymi' miejscami w tablicy.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dzięki :)

Nawet nie pomyślałem o konwersji stringa na int a to niby takie oczywiste. Tak na przyszłość, czy zna ktoś jakieś inetowe kursy Javy najlepiej po polsku bo wszędzie praktycznie jest tylko taki - jeden i ten sam poprzepisywany na 100 różnych stronach i do tego niejasny dla mnie, początkującego.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

Ładowanie


×
×
  • Dodaj nową pozycję...