Darmowe konto pozwoli wrócić do niego później.
Polecenie
Zadanie 6.1. (0–3)
Szyfr Cezara
Podstawieniowy szyfr Cezara z przesunięciem (kluczem) k polega na zastąpieniu każdego znaku jawnego znakiem leżącym w alfabecie o k pozycji w prawo od zastępowanego znaku.
Przykład: znak 'B' po zakodowaniu kluczem k=3 zastąpiony zostanie znakiem 'E'.
… A B C D E F …
1 2 3
Przy szyfrowaniu znaku należy postępować w sposób cykliczny, to znaczy, jeżeli znak nie posiada w alfabecie następnika przesuniętego o k pozycji, to alfabet "zawija się" i za literą Z następuje znów litera A.
Darmowe konto pozwoli wrócić do niego później.
Przykład: jawny znak 'X' po zakodowaniu kluczem k=3 zastąpiony zostanie znakiem 'A', znak 'Y' – znakiem 'B', natomiast 'Z' – znakiem 'C'.
… W X Y Z A B C D …
W tym zadaniu rozpatrujemy tylko słowa zbudowane z wielkich liter alfabetu angielskiego (o kodach ASCII odpowiednio od 65 do 90), o długościach nie większych niż 30 znaków.
W pliku dane_6_1.txt znajduje się 100 słów. Słowa umieszczono w osobnych wierszach.
Fragment pliku dane_6_1.txt:
INTERPRETOWANIE
ROZWESELANIE
KONSERWOWANIE
Napisz program, który zaszyfruje słowa z pliku dane_6_1.txt z użyciem klucza k = 107. Wynik zapisz do pliku wyniki_6_1.txt, każde słowo w osobnym wierszu, w porządku odpowiadającym kolejności słów z pliku z danymi.
Uwaga:
Dla pierwszego słowa z pliku dane_6_1.txt (INTERPRETOWANIE) wynikiem jest słowo LQWHUSUHWRZDQLH.
Wynik:
Wiersz 97: LQZRNDFMD
Wiersz 98: LQZHVWRZDQLH
Wiersz 99: URCVCHUCDQLH
Wiersz 100: DUBVWRWHOHV
Algorytm:
1. Wczytaj słowa z pliku dane_6_1.txt
2. Dla każdego słowa przeprowadź szyfrowanie Cezara z kluczem k=107
3. Zasada szyfrowania: dla każdego znaku o kodzie ASCII c: nowy_kod = (c - 65 + k) mod 26 + 65
4. Zapisz zaszyfrowane słowa do pliku wyniki_6_1.txt w oryginalnej kolejności
za poprawny plik wynikowy.
za pominięcie ostatniego wiersza.
za plik z błędnym wykonaniem zawinięcia cyklicznego albo bez zawijania.
za odpowiedź błędną albo za brak odpowiedzi.
Kluczowe jest prawidłowe obliczenie modulo 26 dla zawinięcia alfabetu. Klucz 107 można zredukować: 107 mod 26 = 3, czyli przesunięcie o 3 pozycje. Należy pamiętać o zachowaniu kolejności słów z pliku wejściowego.
Ocena według schematu punktowania CKE, zwykle w 15–30 s
Dowiedz się, ile punktów naprawdę zdobywasz. Zrób zdjęcie kartki albo wklej odpowiedź: Maturownik+ porówna ją ze schematem punktowania, policzy punkty i wytłumaczy, gdzie i dlaczego je tracisz.