Sprawdź się
Zadanie 3
To zadanie jest kontynuacją wiązki zadań z sekcji „Przeczytaj”. Znajduje się tam wyjaśnienie działania szyfru Cezara.
W pliku dane_4.txt zapisano 3 000 par słów, po jednej parze w wierszu, oddzielonych pojedynczym znakiem odstępu. Drugie słowo w każdej parze jest szyfrogramem pierwszego zaszyfrowanego szyfrem Cezara z nieznanym kluczem.
Niektóre szyfrogramy są błędne, co oznacza, że niektóre litery w słowie zakodowano z różnymi przesunięciami. Słowo ma zawsze tę samą długość, co odpowiadający mu szyfrogram.
Napisz program, który wyszuka i wypisze te słowa z pliku, które zostały błędnie zaszyfrowane. Wynik zapisz w pliku wyniki_4.txt – każde słowo w osobnym wierszu w porządku odpowiadającym kolejności tych słów z pliku z danymi.
Fragment pliku:
SMIGIELSKI GYUSUQREWU
PRUSKI SUXVNL
STUDZINSKI TUVEAJOTLJ
JANEK DUIYE
DRAB LZIJ
Przykładowy wydruk programu dla fragmentu pliku:
SMIGIELSKI
JANEK
Do oceny oddajesz:
plik
wyniki_4.txtzawierający odpowiedź (błędnie zaszyfrowane słowa, zapisane w osobnych liniach)plik(i) z komputerową realizacją zadania (kodem programu)
dane_4.txtRozwiąż zadanie dla danych wejściowych zapisanych w pliku dane_4.txt. Wykorzystaj w tym celu jeden z języków programowania: C++, Java lub Python. Zadbaj o prawidłowe wczytanie danych z pliku tekstowego do programu. Odpowiedź do zadania znajdziesz w osobnym pliku, umieszczonym po omówieniu pseudokodu.
Zadanie zostało opracowane przez Centralną Komisję Egzaminacyjną i pojawiło się na egzaminie maturalnym z informatyki w 2016 roku (poziom rozszerzony). Cały arkusz można znaleźć na stronie internetowej CKE.
Poniższe ćwiczenia będą testowane dla następujących par słów:
Język C++
Język Java
Język Python
Schemat oceniania
5 pkt – za poprawny plik wynikowy,
3 pkt – w przypadku programu przepisującego tylko poprawnie kodowane nazwiska,
2 pkt – w przypadku programu znajdującego błędnie zaszyfrowane nazwiska (bez uwzględnienia „zawijania”),
0 pkt – za odpowiedź błędną albo za brak odpowiedzi.
Odpowiedź dla danych zapisanych w pliku dane_4.txt: