Sprawdź się
Zadania są inspirowane zadaniem nr 6, które pojawiło się na egzaminie maturalnym w maju 2016 (część II arkusza, poziom rozszerzony).
W pliku dane.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 z nieznanym kluczem. Słowa zapisane są wielkimi literami.
Fragment pliku dane.txt
:
ZAWISLAK EFBNXQFP
KRASZEWSKI XENFMRJFXV
Napisz program, który dla każdego wiersza tablicy wyświetli zastosowany klucz szyfrowania. Dla każdego wiersza klucz ten powinien być dodatni, a zarazem jak najmniejszy. Wypisz kolejne klucze po znakach spacji.
Przetestuj działanie programu dla następującego fragmentu pliku dane.txt
:
Specyfikacja problemu:
Dane:
szyfrogram
– tablica łańcuchów znaków
Wynik:
Program wypisuje w jednej linii oddzielone od siebie znakiem spacji kolejne klucze szyfrowania.
Przykładowe wyjście:
Język C++
Język Java
Język Python
Odpowiedź dla danych z pliku dane.txt
:
W pliku dane2.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 z nieznanym kluczem. Słowa zapisane są wielkimi literami. 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. Do zaszyfrowania wszystkich słów został użyty klucz szyfrujący zapisany w postaci zmiennej klucz.
Napisz program, który obliczy, w ilu wierszach pojawiły się niepoprawne szyfrogramy.
Fragment pliku dane2.txt
:
ZAWISLAK EFBNXQFP
KRASZEWSKI XENFMRJFXV
Przetestuj działanie programu dla następującego fragmentu pliku dane2.txt:
Specyfikacja problemu:
Dane:
szyfrogram
– tablica łańcuchów znakówklucz
– liczba naturalna; wartość klucza szyfrującego
Wynik:
wynik
– liczba naturalna
Język C++
Język Python
Język Java
Odpowiedź dla danych z pliku dane2.txt
: