Przeczytaj
Komputerowa realizacja w języku Java
Zanim spróbujemy napisać własną implementację algorytmuimplementację algorytmu szyfru Cezara, przypomnijmy kilka ważnych kwestii związanych z językiem Java.
Aby odwołać się od i‑tego znaku w łańcuchu znaków (
String
), należy użyć notacjitekst.charAt(i)
, gdzietekst
oznacza nazwę łańcucha znaków.Do sprawdzenia długości łańcucha znaków służy funkcja
length()
. Jest ona wywoływana w następujący sposób:tekst.length()
, gdzietekst
to nazwa łańcucha znaków.W języku Java wykorzystywany jest standard kodowania Unicode. W przypadku dokonywania operacji arytmetycznej na znaku wchodzącym w skład łańcucha należy zwrócić uwagę na otrzymaną wartość. Znak zostanie zastąpiony odpowiadającym mu kodem. Przykładowo, wykonując działanie
'A'*1
, otrzymamy wartość 65, oznaczającą, że kod litery A wynosi właśnie 65.Aby zamienić cały łańcuch znaków na taki, który składa się wyłącznie z wielkich liter, użyjemy funkcji
tekst.toUpperCase()
. Zamianę w przeciwnym kierunku, czyli na małe litery, możemy wykonać funkcjątekst.toLowerCase()
, gdzietekst
to nazwa łańcucha znaków.
Napisz w języku Java program szyfrujący przy użyciu szyfru Cezara łańcuch znaków wyraz
składający się z wielkich liter alfabetu łacińskiego. Przetestuj działanie programu dla wiadomości ENIGMA dla klucza równego 3. Pamiętaj, że w szyfrze Cezara nie rozróżnia się małych i wielkich liter. Spacje zapisujemy bez zmian.
Specyfikacja problemu:
Dane:
wyraz
– łańcuch znaków; tekst jawnyklucz
– liczba naturalna; klucz szyfrowania
Wynik:
szyfrogram
– łańcuch znaków; zaszyfrowany tekst jawny
Porównaj swoje rozwiązanie z zaproponowanym w prezentacji.
Słownik
komputerowa realizacja algorytmu przy użyciu języka programowania; często mianem implementowania określa się sam proces tworzenia programu
wartość używana do zamiany tekstu jawnego na zaszyfrowany; w przypadku szyfru Cezara jest to liczba określająca, o ile miejsc w alfabecie oddalone są litery tekstu jawnego od odpowiadających im znaków tekstu zaszyfrowanego
szyfr podstawieniowy, w którym każdy znak tekstu jawnego jest zastępowany przez inny znak, oddalony od niego o stałą liczbę pozycji (tzw. klucz)