In the event of technical difficulties with Szkopuł, please contact us via email at [email protected].
If you would like to talk about tasks, solutions or technical problems, please visit our Discord servers. They are moderated by the community, but members of the support team are also active there.
W tym zadaniu Twój program powinien realizować algorytm szyfrowania i odszyfrowywania danych, który był już używany w czasach Juliusza Cezara. Szyfrowanie tekstu polega na szyfrowaniu kolejnych jego liter (pozostałe znaki pozostawiamy bez zmian). Każda litera zostaje zamieniona w -tą następną w alfabecie ( jest stałą szyfru), przy czym jeżeli taka nie istnieje (wychodzimy za z), to odliczanie jest kontynuowane z powrotem od a. Szyfrowanie zachowuje wielkość liter (tj. małe przechodzą na małe, a wielkie na wielkie). Zakładamy, że w tekście występują jedynie litery alfabetu angielskiego (małe i wielkie).
Dla przykładu, jeżeli , to małe litery tekstu przechodzą na małe litery szyfru według poniższej tabelki:
litera | a | b | c | d | e | f | g | h | i | j | k | l | m | n | o | p | q | r | s | t | u | v | w | x | y | z |
szyfr | f | g | h | i | j | k | l | m | n | o | p | q | r | s | t | u | v | w | x | y | z | a | b | c | d | e |
Wielkie litery tekstu przechodzą na wielkie litery szyfru zgodnie z tą samą regułą.
Napisz program, który wczyta tekst do zaszyfrowania lub odszyfrowania i stałą i zaszyfruje lub odszyfruje ten tekst, w zależności od polecenia.
Pierwszy wiersz wejścia zawiera jedną liczbę 1 lub 2. Liczba 1 oznacza "szyfruj", a liczba 2 - "odszyfruj". Drugi wiersz wejścia zawiera stałą (). Trzeci i ostatni wiersz wejścia zawiera tekst, złożony wyłącznie z liter (małych bądź dużych) i/lub znaków interpunkcyjnych (bez odstępów). Tekst będzie zawierał co najmniej jeden znak i co najwyżej znaków.
Pierwszy i jedyny wiersz wyjścia powinien zawierać tekst po zaszyfrowaniu bądź odszyfrowaniu.
Dla danych wejściowych:
1 5 Szyfr_Cezara_jest_skuteczny!
poprawną odpowiedzią jest:
Xedkw_Hjefwf_ojxy_xpzyjhesd!
a dla danych wejściowych:
2 5 Xedkw_Hjefwf_ojxy_xpzyjhesd!
poprawnym wynikiem jest:
Szyfr_Cezara_jest_skuteczny!
natomiast dla danych wejściowych:
1 24 xyz
poprawnym wynikiem jest:
vwx