{"id":"informator-maturalny-informatyka-2008/zad/6","paper_id":"informator-maturalny-informatyka-2008","number":"6","points":20,"ptype":"open","subject":"informatyka","category":"informator-maturalny","year":2008,"month":null,"level":null,"text":"Zadanie 6. (20 pkt)\nSzyfr Cezara to szyfr, którego nazwa pochodzi od Gajusza Juliusza Cezara, rzymskiego\nwodza i polityka. Cezar stworzył go do kodowania swojej korespondencji. Jest to dzisiaj\nklasyczny przykład szyfru przesuwnego z kluczem k = 3.\nJego zasada polega na zastąpieniu danej litery literą leżącą o k pozycji w prawo w stosunku\ndo litery kodowanej. Kodując literę a należy zapisać d, zamiast k zapiszemy n, ale zamiast y\nnależy zapisać b.\nPrzyjrzyj się poniższym tabelom. Zwróć uwagę, że zapisany w tabeli 1 alfabet jawny\nnie zawiera wszystkich liter alfabetu łacińskiego: brak w nim litery v.\ntabela 1. Alfabet jawny\na b c d e f g h i j\nk\nl\nm\nn\no\np\nq\nr\ns\nt\nu\nw x\ny\nz\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25\ntabela 2. Alfabet szyfrowy dla k=3\nd e f g h i j k l m n\no\np\nq\nr\ns\nt\nu\nw x\ny\nz\na\nb\nc\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25\nSzyfr Cezara można rozszerzyć na dowolny klucz k, gdzie k∈{1, 2, , 24}\nWykonaj poniższe polecenia posługując się wcześniej wybranym językiem programowania:\na) Napisz funkcję szyfrującą, która dla wprowadzonej litery l oraz klucza k - wyświetli\nzaszyfrowaną literę.\nb) Napisz funkcję deszyfrującą która wyświetli dla wprowadzonej zaszyfrowanej litery z\noraz klucza k - literę odszyfrowaną.\nc) Napisz procedurę (funkcję w C/C++), która wyświetli na ekranie tablicę jawnego alfabetu\n(patrz tabela 1.) oraz tablicę szyfrowego alfabetu dla dowolnego k∈{1, 2, ,24} (tablice\npowinny zostać wyświetlone w sposób umożliwiający sprawdzenie działania funkcji\nszyfrujących).\nd) Napisz program, który wykorzysta napisane wcześniej funkcje lub procedury:\n• do programu powinny być wprowadzone tylko małe litery (program nie musi być\nodporny na błędnie wprowadzone dane) do zakodowania;\n• program powinien być odporny na błędnie wprowadzoną wartość klucza;\n• układ wyświetlonych wyników powinien być zgodny z układem przedstawionym\nw poniższej ramce.\npodaj klucz szyfrowania k=6\npodaj literę do zaszyfrowania =y\nlitera zaszyfrowana to e\npodaj literę do zdeszyfrowania =g\nlitera zdeszyfrowana to a\nsprawdzenie\nalfabet jawny\na b c d e f g h i j k l m n o p q r s t u w x y z\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25\nalfabet szyfrowy\ng h i j k l m n o p q r s t u w x y z a b c d e f\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25\n47\nPamiętaj, że ocenie podlega też styl programowania (odpowiednie nazywanie zmiennych,\nstosowanie niezbędnych komentarzy, stosowanie wcięć w zapisie kodu).\nDo oceny oddajesz plik zawierający kompletny program\ntu wpisz nazwę pliku\n(z funkcjami i procedurą) napisany w wybranym przez Ciebie języku.","answer":null,"answer_text":null,"solution":null,"image":"img/informator-maturalny-informatyka-2008/zad-6.webp","solution_image":null,"topics":null,"page_from":46,"source":"ocr","answer_source":null,"answer_text_source":null,"solution_source":null,"text_source":"ocr","source_label":"Informatyka · Informator maturalny · 2008","subject_label":"Informatyka","category_label":"Informator maturalny","text_html":"<p>Zadanie 6. (20 pkt)<br>Szyfr Cezara to szyfr, którego nazwa pochodzi od Gajusza Juliusza Cezara, rzymskiego<br>wodza i polityka. Cezar stworzył go do kodowania swojej korespondencji. Jest to dzisiaj<br>klasyczny przykład szyfru przesuwnego z kluczem k = 3.<br>Jego zasada polega na zastąpieniu danej litery literą leżącą o k pozycji w prawo w stosunku<br>do litery kodowanej. Kodując literę a należy zapisać d, zamiast k zapiszemy n, ale zamiast y<br>należy zapisać b.<br>Przyjrzyj się poniższym tabelom. Zwróć uwagę, że zapisany w tabeli 1 alfabet jawny<br>nie zawiera wszystkich liter alfabetu łacińskiego: brak w nim litery v.<br>tabela 1. Alfabet jawny<br>a b c d e f g h i j<br>k<br>l<br>m<br>n<br>o<br>p<br>q<br>r<br>s<br>t<br>u<br>w x<br>y<br>z<br>1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25<br>tabela 2. Alfabet szyfrowy dla k=3<br>d e f g h i j k l m n<br>o<br>p<br>q<br>r<br>s<br>t<br>u<br>w x<br>y<br>z<br>a<br>b<br>c<br>1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25<br>Szyfr Cezara można rozszerzyć na dowolny klucz k, gdzie k∈{1, 2, , 24}<br>Wykonaj poniższe polecenia posługując się wcześniej wybranym językiem programowania:<br>a) Napisz funkcję szyfrującą, która dla wprowadzonej litery l oraz klucza k - wyświetli<br>zaszyfrowaną literę.<br>b) Napisz funkcję deszyfrującą która wyświetli dla wprowadzonej zaszyfrowanej litery z<br>oraz klucza k - literę odszyfrowaną.<br>c) Napisz procedurę (funkcję w C/C++), która wyświetli na ekranie tablicę jawnego alfabetu<br>(patrz tabela 1.) oraz tablicę szyfrowego alfabetu dla dowolnego k∈{1, 2, ,24} (tablice<br>powinny zostać wyświetlone w sposób umożliwiający sprawdzenie działania funkcji<br>szyfrujących).<br>d) Napisz program, który wykorzysta napisane wcześniej funkcje lub procedury:<br>• do programu powinny być wprowadzone tylko małe litery (program nie musi być<br>odporny na błędnie wprowadzone dane) do zakodowania;<br>• program powinien być odporny na błędnie wprowadzoną wartość klucza;<br>• układ wyświetlonych wyników powinien być zgodny z układem przedstawionym<br>w poniższej ramce.<br>podaj klucz szyfrowania k=6<br>podaj literę do zaszyfrowania =y<br>litera zaszyfrowana to e<br>podaj literę do zdeszyfrowania =g<br>litera zdeszyfrowana to a<br>sprawdzenie<br>alfabet jawny<br>a b c d e f g h i j k l m n o p q r s t u w x y z<br>1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25<br>alfabet szyfrowy<br>g h i j k l m n o p q r s t u w x y z a b c d e f<br>1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25<br>47<br>Pamiętaj, że ocenie podlega też styl programowania (odpowiednie nazywanie zmiennych,<br>stosowanie niezbędnych komentarzy, stosowanie wcięć w zapisie kodu).<br>Do oceny oddajesz plik zawierający kompletny program<br>tu wpisz nazwę pliku<br>(z funkcjami i procedurą) napisany w wybranym przez Ciebie języku.</p>","solutions":[]}