Zadania są inspirowane zadaniem nr 6, które pojawiło się na egzaminie maturalnym w maju 2016 (część II arkusza, poziom rozszerzony).

1

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.

RhonOjR0Sk3Bg

Plik zawierający ciągi znaków.

Plik dane2.txt
Plik TXT o rozmiarze 52.58 KB w języku polskim

Przetestuj działanie programu dla następującego fragmentu pliku dane.txt:

Linia 1. ZAWISLAK EFBNXQFP. Linia 2. KRASZEWSKI XENFMRJFXV. Linia 3. WARDA OSJVS. Linia 4. DRAB LZIJ. Linia 5. MOKRZYCKI FHDKSRVDB. Linia 6. LAKOMY FUEIGS. Linia 7. POWROZNIK LKSNKVJEG. Linia 8. BABIARZ DCDKCTB. Linia 9. RACZKA JSURCS. Linia 10. KREZEL JQDYDK.

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:

Linia 1. 5 13 18 8 19 20 22 2 18 25.
11
Pokaż ćwiczenia:
1

Język C++

21
Ćwiczenie 1
RwTHyARNK0L61
Twoje zadanie: Program wypisuje klucze użyte do zaszyfrowania słów w wierszach. 1. #include
1

Język Java

21
Ćwiczenie 2
RQGI3uBe9FAfx
Twoje zadanie: Program wypisuje klucze użyte do zaszyfrowania słów w wierszach. 1. public class Main { 2. public static void main(String[] args) { 3. String [][] szyfrogram = { 4. {"GITARA", "LNYFWF"}, 5. {"ZIEMNIAK", "DMIQRMEO"}, 6. {"PROGRAMOWANIE", "EGDVGPBDLPCXT"}, 7. {"KUBEK", "RBILR"}, 8. {"GLOSNIK", "KPSWRMO"}, 9. {"KWIAT", "XJVNG"}, 10. {"ZNAK", "DREO"}, 11. {"ULICA", "LCZTR"}, 12. {"OBRAZ", "TGWFE"}, 13. {"BRAT", "DTCV"} 14. };
1

Język Python

21
Ćwiczenie 3
RvXT08wfwN4e6
Twoje zadanie: Program wypisuje klucze użyte do zaszyfrowania słów w wierszach. 1. szyfrogram = [ 2. ["GITARA", "LNYFWF"], 3. ["ZIEMNIAK", "DMIQRMEO"], 4. ["PROGRAMOWANIE", "EGDVGPBDLPCXT"], 5. ["KUBEK", "RBILR"], 6. ["GLOSNIK", "KPSWRMO"], 7. ["KWIAT", "XJVNG"], 8. ["ZNAK", "DREO"], 9. ["ULICA", "LCZTR"], 10. ["OBRAZ", "TGWFE"], 11. ["BRAT", "DTCV"] 12. ]

Odpowiedź dla danych z pliku dane.txt:

Linia 1. 5 13 18 8 19 20 22 2 18 25 2 7 15 1 18 9 11 2 25 26 12 7 23 14 7 9 10 12 1 3 9 9 16 1 10 15 21 1 11 13 13 4 25 13 23 10 17 6 10 23 11 13 14 11 16 21 20 12 5 26 20 14 12 15 10 13 21 6 24 14 17 23 15 5 6 24 4 1 8 19 25 25 22 4 23 7 16 19 9 24 3 12 12 9 19 11 10 8 14 25 9 7 21 6 3 15 24 14 13 26 13 2 3 1 24 12 20 26 6 6 13 2 14 6 2 20 5 11 9 16 21 10 22 8 2 21 5 11 4 20 6 24 4 3 10 16 22 4 6 25 20 26 23 25 17 18 26 12 16 7 25 13 23 3 18 8 24 16 15 18 22 4 15 3 9 4 3 9 14 19 17 26 8 22 22 20 18 24 15 14 2 5 24 23 16 11 23 3 18 9 7 17 20 6 2 24 6 8 4 3 6 7 19 18 15 15 18 16 9 26 1 18 26 16 21 24 4 3 16 2 24 9 25 2 11 13 16 13 19 16 18 8 4 21 6 13 15 20 7 10 17 8 14 15 18 19 6 13 9 26 25 25 18 9 7 16 11 2 18 19 16 9 17 18 20 11 25 5 5 22 14 14 2 8 20 22 7 17 20 16 13 20 21 10 16 16 9 15 9 26 22 17 4 25 23 9 16 19 19 13 17 4 26 9 1 20 16 4 4 25 22 26 26 16 12 7 15 21 23 10 23 2 22 2 19 17 26 6 17 2 17 2 2 11 6 21 15 14 20 19 24 3 6 20 10 5 12 12 25 7 13 22 1 20 12 1 6 3 15 10 23 19 21 23 16 16 24 8 22 25 3 22 15 4 4 22 9 22 15 9 11 22 9 26 20 1 21 13 19 23 23 14 19 2 2 15 23 16 19 5 15 20 9 20 18 2 19 8 8 19 6 15 26 13 16 12 21 14 16 9 25 2 9 3 25 5 4 8 9 8 15 12 18 8 12 9 26 1 20 20 5 20 7 8 22 6 4 9 1 9 13 1 16 24 18 16 14 5 8 7 9 16 16 16 16 6 26 26 11 21 10 7 21 25 2 26 23 1 13 12 6 19 26 7 4 6 25 12 6 25 22 2 3 24 6 7 17 21 21 25 21 3 21 1 18 11 22 19 3 10 5 21 20 8 26 18 18 12 21 5 21 4 26 4 24 20 19 17 11 14 3 20 26 17 8 13 20 14 3 22 20 1 1 14 22 22 18 4 15 25 5 14 3 25 6 20 4 17 25 8 7 19 26 14 19 3 2 8 11 22 1 3 10 12 21 26 2 6 15 12 15 12 4 15 9 19 26 7 21 3 14 12 6 19 9 14 5 22 18 23 19 26 19 8 16 23 9 1 18 14 20 1 2 11 13 26 18 3 6 2 24 6 10 8 16 16 20 22 7 19 23 19 12 23 22 2 9 16 13 12 23 12 11 6 5 11 24 10 1 3 25 11 5 22 7 6 21 10 26 2 15 15 13 16 6 5 11 17 24 24 25 18 10 5 19 22 1 20 8 20 16 8 1 11 8 5 12 8 3 9 10 8 24 24 18 12 6 21 11 2 16 26 14 24 15 6 18 6 17 9 26 1 16 4 9 3 18 16 7 18 8 22 13 9 8 25 8 26 21 15 6 2 15 9 1 10 19 18 26 6 18 23 18 9 8 2 6 5 13 2 25 13 7 2 5 26 16 2 2 24 26 17 12 23 8 15 9 10 9 26 24 25 3 10 23 11 21 16 8 2 24 20 15 11 16 20 11 17 18 5 15 21 9 13 26 18 22 8 1 26 18 12 17 11 22 1 5 21 23 21 5 20 11 4 12 14 23 14 24 12 13 2 1 3 8 4 24 23 12 7 13 15 15 15 17 9 17 13 25 8 22 23 11 18 3 19 2 7 13 10 26 10 19 10 17 12 4 2 23 13 20 22 25 11 1 21 25 25 6 24 4 10 25 21 15 12 20 10 23 19 25 9 6 4 13 6 17 2 17 6 10 17 25 4 6 14 18 7 9 13 17 5 13 9 24 15 10 14 5 8 4 4 16 13 14 6 17 17 12 22 12 25 14 26 20 14 1 13 14 9 25 19 22 10 23 17 24 10 2 14 9 12 9 4 10 10 17 2 12 26 17 13 21 11 2 17 6 25 13 6 18 19 25 3 6 1 1 26 8 25 6 21 22 5 7 2 2 12 26 11 9 16 7 15 20 8 9 18 2 21 24 5 12 23 24 17 14 22 24 21 19 22 26 24 6 4 24 3 15 13 16 20 11 16 18 6 19 23 22 20 15 10 1 9 11 20 9 12 17 25 11 3 12 9 7 1 24 13 7 21 9 13 24 24 1 17 6 4 22 8 2 8 2 15 2 25 2 21 18 19 26 6 4 19 5 6 22 3 22 22 20 16 15 11 24 4 23 10 23 22 8 22 25 1 19 1 19 1 7 11 3 12 15 10 17 17 18 18 18 9 14 2 20 26 12 4 26 24 17 7 20 24 14 9 21 13 2 14 22 13 24 22 6 2 22 16 1 6 6 12 11 26 1 11 14 11 20 13 6 24 22 9 2 26 22 22 19 21 19 9 11 5 14 17 2 25 4 8 17 6 6 7 8 2 10 12 18 23 6 6 10 7 15 15 5 19 19 22 4 13 21 19 3 5 11 17 21 7 14 10 15 3 16 13 9 4 10 3 24 19 15 2 13 24 25 2 16 14 21 16 18 4 11 17 9 14 10 11 1 19 13 16 17 16 24 18 19 21 25 4 16 7 16 16 6 14 14 14 4 12 1 18 5 18 10 2 23 16 3 18 7 24 10 24 25 20 10 15 24 22 2 21 16 4 8 24 11 1 12 26 6 14 3 20 1 8 22 5 18 7 16 6 24 17 18 12 5 23 2 17 26 22 8 6 6 1 14 26 7 17 16 8 4 16 13 21 22 8 11 3 7 9 6 17 9 19 10 19 8 10 9 4 4 2 6 10 10 11 1 10 12 13 20 3 2 25 12 20 16 3 26 25 2 9 3 9 13 21 10 9 24 24 2 20 6 9 15 11 4 23 5 22 4 17 22 3 7 2 17 10 23 26 18 10 19 3 16 19 10 10 19 17 3 17 18 10 14 16 6 2 25 21 5 6 22 9 4 24 6 21 2 11 12 23 21 1 2 18 26 15 19 26 9 15 8 25 3 22 14 17 14 22 16 4 25 23 1 11 23 23 11 15 21 22 8 23 24 4 3 20 2 15 15 14 3 21 2 15 10 11 7 2 15 14 9 5 20 13 25 26 22 20 2 17 7 19 16 24 1 9 20 21 20 20 5 5 3 18 13 9 21 20 11 22 16 2 16 16 9 7 3 16 24 21 11 14 5 24 24 16 24 1 1 11 5 17 3 4 5 8 1 3 12 17 2 24 26 9 17 6 1 15 15 16 12 18 10 5 5 24 21 16 15 19 24 26 13 26 22 13 22 9 7 26 24 8 11 23 4 19 8 21 1 8 10 15 18 26 9 2 4 5 18 17 6 6 10 5 5 3 24 8 2 13 24 13 24 26 13 22 21 16 12 16 19 18 6 25 12 8 16 9 18 24 23 26 7 15 4 21 4 10 20 10 3 15 15 11 26 4 24 21 21 15 12 20 12 24 8 13 4 14 7 17 2 18 8 10 8 8 17 14 1 16 26 21 13 24 19 19 17 6 17 4 14 25 20 19 12 6 15 13 21 4 11 16 25 1 9 21 26 5 21 16 19 17 10 1 23 5 26 14 2 10 9 4 22 21 12 22 1 12 18 12 3 13 26 12 22 7 24 19 5 26 4 12 19 2 24 24 21 12 10 7 23 19 21 10 1 22 14 21 8 22 24 18 14 22 18 16 20 3 11 11 2 4 19 16 26 7 13 16 6 18 9 15 21 25 21 14 11 7 9 3 18 12 25 2 4 26 6 6 13 7 8 2 14 1 20 12 23 21 10 19 20 5 9 11 18 20 2 24 17 18 14 16 26 25 3 20 14 2 2 10 7 21 17 18 26 23 11 11 22 17 11 6 25 25 23 9 5 5 15 18 24 18 21 17 12 25 26 22 15 7 17 9 17 24 20 3 20 8 14 12 1 3 4 3 12 5 4 6 20 23 21 26 6 22 3 14 16 26 23 10 18 4 25 16 2 6 21 11 8 10 1 16 8 6 4 26 2 1 17 15 23 18 8 10 12 25 4 11 3 19 17 1 24 22 3 25 17 7 4 22 7 25 26 6 18 26 10 24 13 26 2 11 16 17 1 15 11 5 25 4 26 12 2 12 23 5 23 9 22 11 11 21 13 12 18 5 16 6 1 23 8 16 21 21 7 6 10 26 25 4 5 4 8 2 6 23 1 18 25 4 17 5 12 26 7 16 19 24 24 6 11 7 1 23 17 21 23 3 20 16 8 18 11 11 4 2 12 14 1 15 17 20 14 15 21 25 6 4 14 19 7 12 7 19 5 11 26 11 22 4 8 8 4 1 7 8 21 17 11 4 1 8 21 24 4 16 13 8 12 13 3 11 21 22 2 19 13 20 13 18 26 25 12 1 4 19 8 4 24 19 24 26 20 10 20 21 5 4 7 7 2 3 10 15 2 20 18 14 26 4 5 3 21 22 23 19 19 18 14 17 8 2 13 3 11 26 15 21 1 3 4 23 24 2 7 26 22 24 12 19 14 4 24 3 21 8 21 11 21 20 1 23 14 22 25 20 20 12 18 1 17 21 4 23 18 15 6 10 26 18 17 16 25 26 26 14 26 18 4 5 22 23 5 21 25 7 18 9 13 20 2 1 5 13 5 10 22 23 18 18 18 21 24 6 9 24 16 23 15 13 10 8 6 6 16 8 14 23 24 17 24 25 23 22 6 12 14 23 15 13 11 5 6 12 9 25 8 6 26 18 18 12 15 19 1 22 12 17 5 21 20 15 26 13 4 12 19 2 10 10 12 18 17 11 2 8 10 19 23 12 19 10 16 26 15 9 23 13 20 13 5 1 23 21 7 14 14 10 4 8 25 7 14 3 2 2 4 5 26 5 4 12 14 5 21 24 6 13 17 19 13 15 8 22 15 15 15 15 21 20 14 19 7 4 6 17 20 14 2 24 21 3 22 26 10 4 16 19 20 5 6 7 3 11 17 4 7 4 4 23 15 5 16 8 14 8 9 20 1 18 2 10 25 20 16 1 11 18 16 15 16 21 20 21 13 9 17 16 5 1 24 4 26 13 2 19 6 22 24 3 22 13 25 20 1 6 13 18 3 19 21 23 6 3 17 25 17 23 17 12 17 10 16 4 9 5 25 5 5 11 3 7 16 19 16 14 21 6 18 1 15 2 12 5 15 8 6 11 7 8 14 19 8 1 11 5 1 13 18 18 21 26 15 7 25 12 14 20 15 16 10 5 8 24 6 24 13 13 13 14 18 15 12 19 20 9 8 2 21 9 25 24 25 21 16 15 19 6 11 14 10 20 2 4 3 17 24 22 17 7 1 8 2 8 5 15 25 18 26 16 21 9 14 20 16 21 13 15 10 24 23 8 1 12 2 11 5 8 17 3 11 8 13 10 9 14 14 19 23 3 18 11 17 21 2 17 3 12 26 16 3 5 5 16 14 16 7 13 22 4 2 25 15 14 12 10 10 25 7 2 2 2 14 11 25 17 5 2 25 15 11 18 8 14 6 14 9 19 22 18 14 25 17 20 8 18 19 13 10 26 11 16 26 22 15 4 2 15 26 26 19 21 6 14 7 25 17 16 26 3 3 11 25 15 16 23 19 26 13 22 6 3 22 12 9 6 15 6 2 21 25 7 21 5 8 18 19 24 8 15 7 22 7 15 16 3 14 7 24 2 10 3 6 24 13 25 16 1 1 8 3 4 12 19 11 6 12 12 18 4 15 22 2 7 20 1 22 19 17 8 4 25 1 3 20 25 26 1 24 14 1 2 16 25 12 5 23 25 8 14 8 22 2 21 13 7 14 1 10 23 13 1 26 23 26 8 15 7 17 15 20 24 15 26 5 10 16 13 26 5 14 10 14 24 4 12 8 6 24 3 5 7 21 15 26 13 8 8 6 12 10 22 15 26 4 8 22 25 3 18 17 17 25 17 5 9 5 19 12 5 13 18 24 3 12 9 8 16 19 15 18 12 14 25 19 26 18 3 7 12 25 22 23 18 22 11 7 12 1 16 25 16 11 3 9 18 1 2 10 5 8 8 11 22 15 26 16 19 25 17 4 20 25 14 12 4 13 3 21 20 15 11 22 16 9 11 12 26 21 18 19 5 17 20 9 2 19 4 21 6 19 20 23 12 6 11 12 7 11 15 11 11 22 14 4 6 12 15 3 17 17 20 5 2 4 13 3 15 25 13 8 26 25 7 12 9 1 19 24 22 11 17 2 5 4 20 24 20 24 13 19 25 26 15 22 26 26 11 1 2 14 18 8 16 7 15 18 6 3 23 11 6 4 15 13 5 25 2 26 20 5 13 20 14 2 24 16 4 21 10 9 11 13 6 3 22 21 3 24 15 11 18 1 11 12 24 6 14 22 22 11 24 14 13 5 2 19 4 16 21 5 25 24 24 16 8 25 21 22 12 21 20 21 4 2 4 10 5 4 5 22 14 10 3 25 20 19 26 16 11 11 26 8 22 9 17 25 1 18 18 21 22 3 15 1 25 21 19 2 6 25 7 2 13 9 14 2 3 10 2 2 21 6 22 16 19.
1

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

RhonOjR0Sk3Bg

Plik zawierający ciągi znaków.

Plik dane2.txt
Plik TXT o rozmiarze 52.58 KB w języku polskim

Przetestuj działanie programu dla następującego fragmentu pliku dane2.txt:

Linia 1. ZAWISLAK KLHTDWLV. Linia 2. KRASZEWSKI VCLDKPHDVT. Linia 3. WARDA JNEQN. Linia 4. DRAB QENO. Linia 5. MOKRZYCKI ZBXEMLPXV. Linia 6. LAKOMY APZDBN. Linia 7. POWROZNIK EDLGDOCXZ. Linia 8. BABIARZ ONOVNEM. Linia 9. RACZKA ENPMXN. Linia 10. KREZEL XERMRY.

Specyfikacja problemu:

Dane:

  • szyfrogram – tablica łańcuchów znaków

  • klucz – liczba naturalna; wartość klucza szyfrującego

Wynik:

  • wynik – liczba naturalna

1

Język C++

31
Ćwiczenie 4
RN4GWL70LxzNT
Twoje zadanie: Program sprawdza, w ilu wierszach wystąpiło niepoprawne szyfrowanie. 1. #include
1

Język Python

31
Ćwiczenie 5
RFRsbyTF2gQ5v
Twoje zadanie: Program sprawdza, w ilu wierszach wystąpiło niepoprawne szyfrowanie. 1. klucz = 5 2. szyfrogram = [ 3. ["GLOSNIK", "LQTXSNP"], 4. ["ZNAK", "EHFP"], 5. ["KWIAT", "PBNFY"], 6. ["KUBEK", "PZGFP"], 7. ["PROGRAMOWANIE", "UWTLWFRTBFSNJ"], 8. ["NSADANAD", "SXFISDFI"], 9. ["QWDASG", "VBIFXL"], 10. ["DFLNAK", "IKQSFP"], 11. ["ADLKNDAK", "FIQPSDFP"], 12. ["ADLKSA", "FIQGFF"] 13. ]
1

Język Java

31
Ćwiczenie 6
RnM4xVISmK84x
Twoje zadanie: Program sprawdza, w ilu wierszach wystąpiło niepoprawne szyfrowanie. 1. public class Main { 2. public static void main (String [] args) { 3. int klucz = 5; 4. String [][] szyfrogram = { 5. {"GLOSNIK", "LQTXSNP"}, 6. {"ZNAK", "EHFP"}, 7. {"KWIAT", "PBNFY"}, 8. {"KUBEK", "PZGFP"}, 9. {"PROGRAMOWANIE", "UWTLWFRTBFSNJ"}, 10. {"NSADANAD", "SXFISDFI"}, 11. {"QWDASG", "VBIFXL"}, 12. {"DFLNAK", "IKQSFP"}, 13. {"ADLKNDAK", "FIQPSDFP"}, 14. {"ADLKSA", "FIQGFF"} 15. };

Odpowiedź dla danych z pliku dane2.txt:

Linia 1. 27.