Napisz program szyfrujący i deszyfrujący tekst przy użyciu szyfru Cezara. Za jego pomocą zaszyfruj i zdeszyfruj łańcuch znaków zapisany w zmiennej tekst. Przetestuj jego działanie dla alfabetu szyfrowego utworzonego na podstawie łańcucha znaków SYNESTEZJA oraz wiadomości EMANCYPACJA 1678!.
Twój program powinien szyfrować i deszyfrować wyłącznie litery alfabetu łacińskiego. Jeśli w tekście do szyfrowania lub odszyfrowania są małe litery, przekształć je na wielkie. Jeśli w tekście są znaki inne niż litery, należy je pominąć w szyfrowaniu oraz deszyfrowaniu (w łańcuchu znaków powinny pojawić się w niezmienionej formie).
Specyfikacja problemu
Dane:
tekst – łańcuch znaków składający się z wielkich liter alfabetu łacińskiego, spacji, cyfr oraz znaków interpunkcyjnych
klucz – łańcuch znaków składający się z wielkich liter alfabetu łacińskiego
Wynik:
utworzony za pomocą klucza klucz alfabet oraz zaszyfrowany, a następnie odszyfrowany z użyciem klucza klucz łańcuch znaków tekst
Reaj73en7YgDI
Wymyśl pytanie na kartkówkę związane z tematem materiału.
Wymyśl pytanie na kartkówkę związane z tematem materiału.
Polecenie 2
Zapoznaj się z prezentacją i porównaj z nią kod swojego programu.
R19O4JdeJebDX1
zz
Polecenie 3
Zmodyfikuj ḟunkcje szyfruj oraz deszyfruj tak, by pierwszej literze alfabetu odpowiadała ostatnia litera nowego alfabetu, drugiej – przedostatnia itd.
RMfB4zA3CIxMb
Wybierz jedno nowe słowo poznane podczas dzisiejszej lekcji i ułóż z nim zdanie.
Wybierz jedno nowe słowo poznane podczas dzisiejszej lekcji i ułóż z nim zdanie.
Zmodyfikowana funkcja szyfrująca:
Linia 1. string szyfruj otwórz nawias okrągły string tekst przecinek string nowy podkreślnik alfabet przecinek string alfabet zamknij nawias okrągły otwórz nawias klamrowy.
Linia 2. for otwórz nawias okrągły int i znak równości 0 średnik i otwórz nawias ostrokątny tekst kropka size otwórz nawias okrągły zamknij nawias okrągły średnik i plus plus zamknij nawias okrągły otwórz nawias klamrowy.
Linia 3. if otwórz nawias okrągły tekst otwórz nawias kwadratowy i zamknij nawias kwadratowy zamknij nawias ostrokątny znak równości apostrof a apostrof ampersant ampersant tekst otwórz nawias kwadratowy i zamknij nawias kwadratowy otwórz nawias ostrokątny znak równości apostrof z apostrof zamknij nawias okrągły otwórz nawias klamrowy.
Linia 4. tekst otwórz nawias kwadratowy i zamknij nawias kwadratowy minus znak równości 32 średnik.
Linia 5. zamknij nawias klamrowy.
Linia 6. if otwórz nawias okrągły wykrzyknik otwórz nawias okrągły otwórz nawias okrągły tekst otwórz nawias kwadratowy i zamknij nawias kwadratowy zamknij nawias ostrokątny znak równości apostrof A apostrof ampersant ampersant tekst otwórz nawias kwadratowy i zamknij nawias kwadratowy otwórz nawias ostrokątny znak równości apostrof Z apostrof zamknij nawias okrągły zamknij nawias okrągły zamknij nawias okrągły otwórz nawias klamrowy.
Linia 7. continue średnik.
Linia 8. zamknij nawias klamrowy.
Linia 9. for otwórz nawias okrągły int j znak równości 0 średnik j otwórz nawias ostrokątny alfabet kropka size otwórz nawias okrągły zamknij nawias okrągły średnik j plus plus zamknij nawias okrągły otwórz nawias klamrowy.
Linia 10. if otwórz nawias okrągły tekst otwórz nawias kwadratowy i zamknij nawias kwadratowy znak równości znak równości alfabet otwórz nawias kwadratowy j zamknij nawias kwadratowy zamknij nawias okrągły otwórz nawias klamrowy.
Linia 11. tekst otwórz nawias kwadratowy i zamknij nawias kwadratowy znak równości nowy podkreślnik alfabet otwórz nawias kwadratowy nowy podkreślnik alfabet kropka size otwórz nawias okrągły zamknij nawias okrągły minus 1 minus j zamknij nawias kwadratowy średnik.
Linia 12. break średnik.
Linia 13. zamknij nawias klamrowy.
Linia 14. zamknij nawias klamrowy.
Linia 15. zamknij nawias klamrowy.
Linia 16. return tekst średnik.
Linia 17. zamknij nawias klamrowy.
Linia 1. string deszyfruj otwórz nawias okrągły string tekst przecinek string nowy podkreślnik alfabet przecinek string alfabet zamknij nawias okrągły otwórz nawias klamrowy.
Linia 2. for otwórz nawias okrągły int i znak równości 0 średnik i otwórz nawias ostrokątny tekst kropka size otwórz nawias okrągły zamknij nawias okrągły średnik i plus plus zamknij nawias okrągły otwórz nawias klamrowy.
Linia 3. if otwórz nawias okrągły tekst otwórz nawias kwadratowy i zamknij nawias kwadratowy zamknij nawias ostrokątny znak równości apostrof a apostrof ampersant ampersant tekst otwórz nawias kwadratowy i zamknij nawias kwadratowy otwórz nawias ostrokątny znak równości apostrof z apostrof zamknij nawias okrągły otwórz nawias klamrowy.
Linia 4. tekst otwórz nawias kwadratowy i zamknij nawias kwadratowy minus znak równości 32 średnik.
Linia 5. zamknij nawias klamrowy.
Linia 6. if otwórz nawias okrągły wykrzyknik otwórz nawias okrągły otwórz nawias okrągły tekst otwórz nawias kwadratowy i zamknij nawias kwadratowy zamknij nawias ostrokątny znak równości apostrof A apostrof ampersant ampersant tekst otwórz nawias kwadratowy i zamknij nawias kwadratowy otwórz nawias ostrokątny znak równości apostrof Z apostrof zamknij nawias okrągły zamknij nawias okrągły zamknij nawias okrągły otwórz nawias klamrowy.
Linia 7. continue średnik.
Linia 8. zamknij nawias klamrowy.
Linia 9. for otwórz nawias okrągły int j znak równości 0 średnik j otwórz nawias ostrokątny nowy podkreślnik alfabet kropka size otwórz nawias okrągły zamknij nawias okrągły średnik j plus plus zamknij nawias okrągły otwórz nawias klamrowy.
Linia 10. if otwórz nawias okrągły tekst otwórz nawias kwadratowy i zamknij nawias kwadratowy znak równości znak równości nowy podkreślnik alfabet otwórz nawias kwadratowy nowy podkreślnik alfabet kropka size otwórz nawias okrągły zamknij nawias okrągły minus 1 minus j zamknij nawias kwadratowy zamknij nawias okrągły otwórz nawias klamrowy.
Linia 11. tekst otwórz nawias kwadratowy i zamknij nawias kwadratowy znak równości alfabet otwórz nawias kwadratowy j zamknij nawias kwadratowy średnik.
Linia 12. break średnik.
Linia 13. zamknij nawias klamrowy.
Linia 14. zamknij nawias klamrowy.
Linia 15. zamknij nawias klamrowy.
Linia 16. return tekst średnik.
Linia 17. zamknij nawias klamrowy.
Linia 1. kratka include otwórz nawias ostrokątny iostream zamknij nawias ostrokątny.
Linia 2. kratka include otwórz nawias ostrokątny string zamknij nawias ostrokątny.
Linia 3. using namespace std średnik.
Linia 5. string utworzAlfabet otwórz nawias okrągły string klucz przecinek string alfabet zamknij nawias okrągły otwórz nawias klamrowy.
Linia 7. string nowy podkreślnik alfabet znak równości cudzysłów cudzysłów średnik.
Linia 9. for otwórz nawias okrągły int i znak równości 0 średnik i otwórz nawias ostrokątny klucz kropka size otwórz nawias okrągły zamknij nawias okrągły średnik i plus plus zamknij nawias okrągły otwórz nawias klamrowy.
Linia 10. if otwórz nawias okrągły klucz otwórz nawias kwadratowy i zamknij nawias kwadratowy zamknij nawias ostrokątny znak równości apostrof a apostrof ampersant ampersant klucz otwórz nawias kwadratowy i zamknij nawias kwadratowy otwórz nawias ostrokątny znak równości apostrof z apostrof zamknij nawias okrągły otwórz nawias klamrowy.
Linia 11. klucz otwórz nawias kwadratowy i zamknij nawias kwadratowy znak równości klucz otwórz nawias kwadratowy i zamknij nawias kwadratowy minus 32 średnik.
Linia 12. zamknij nawias klamrowy.
Linia 13. bool czyIstnieje znak równości false średnik.
Linia 14. for otwórz nawias okrągły int j znak równości 0 średnik j otwórz nawias ostrokątny nowy podkreślnik alfabet kropka size otwórz nawias okrągły zamknij nawias okrągły średnik j plus plus zamknij nawias okrągły otwórz nawias klamrowy.
Linia 15. if otwórz nawias okrągły klucz otwórz nawias kwadratowy i zamknij nawias kwadratowy znak równości znak równości nowy podkreślnik alfabet otwórz nawias kwadratowy j zamknij nawias kwadratowy zamknij nawias okrągły otwórz nawias klamrowy.
Linia 16. czyIstnieje znak równości true średnik.
Linia 17. break średnik.
Linia 18. zamknij nawias klamrowy.
Linia 19. zamknij nawias klamrowy.
Linia 20. if otwórz nawias okrągły wykrzyknik czyIstnieje zamknij nawias okrągły otwórz nawias klamrowy.
Linia 21. nowy podkreślnik alfabet plus znak równości klucz otwórz nawias kwadratowy i zamknij nawias kwadratowy średnik.
Linia 22. zamknij nawias klamrowy.
Linia 23. zamknij nawias klamrowy.
Linia 25. for otwórz nawias okrągły int i znak równości 0 średnik i otwórz nawias ostrokątny alfabet kropka size otwórz nawias okrągły zamknij nawias okrągły średnik i plus plus zamknij nawias okrągły otwórz nawias klamrowy.
Linia 26. bool czyIstnieje znak równości false średnik.
Linia 27. for otwórz nawias okrągły int j znak równości 0 średnik j otwórz nawias ostrokątny nowy podkreślnik alfabet kropka size otwórz nawias okrągły zamknij nawias okrągły średnik j plus plus zamknij nawias okrągły otwórz nawias klamrowy.
Linia 28. if otwórz nawias okrągły alfabet otwórz nawias kwadratowy i zamknij nawias kwadratowy znak równości znak równości nowy podkreślnik alfabet otwórz nawias kwadratowy j zamknij nawias kwadratowy zamknij nawias okrągły otwórz nawias klamrowy.
Linia 29. czyIstnieje znak równości true średnik.
Linia 30. break średnik.
Linia 31. zamknij nawias klamrowy.
Linia 32. zamknij nawias klamrowy.
Linia 33. if otwórz nawias okrągły wykrzyknik czyIstnieje zamknij nawias okrągły otwórz nawias klamrowy.
Linia 34. nowy podkreślnik alfabet plus znak równości alfabet otwórz nawias kwadratowy i zamknij nawias kwadratowy średnik.
Linia 35. zamknij nawias klamrowy.
Linia 36. zamknij nawias klamrowy.
Linia 38. return nowy podkreślnik alfabet średnik.
Linia 39. zamknij nawias klamrowy.
Linia 41. string szyfruj otwórz nawias okrągły string tekst przecinek string nowy podkreślnik alfabet przecinek string alfabet zamknij nawias okrągły otwórz nawias klamrowy.
Linia 42. for otwórz nawias okrągły int i znak równości 0 średnik i otwórz nawias ostrokątny tekst kropka size otwórz nawias okrągły zamknij nawias okrągły średnik i plus plus zamknij nawias okrągły otwórz nawias klamrowy.
Linia 43. if otwórz nawias okrągły tekst otwórz nawias kwadratowy i zamknij nawias kwadratowy zamknij nawias ostrokątny znak równości apostrof a apostrof ampersant ampersant tekst otwórz nawias kwadratowy i zamknij nawias kwadratowy otwórz nawias ostrokątny znak równości apostrof z apostrof zamknij nawias okrągły otwórz nawias klamrowy.
Linia 44. tekst otwórz nawias kwadratowy i zamknij nawias kwadratowy minus znak równości 32 średnik.
Linia 45. zamknij nawias klamrowy.
Linia 46. if otwórz nawias okrągły wykrzyknik otwórz nawias okrągły otwórz nawias okrągły tekst otwórz nawias kwadratowy i zamknij nawias kwadratowy zamknij nawias ostrokątny znak równości apostrof A apostrof ampersant ampersant tekst otwórz nawias kwadratowy i zamknij nawias kwadratowy otwórz nawias ostrokątny znak równości apostrof Z apostrof zamknij nawias okrągły zamknij nawias okrągły zamknij nawias okrągły otwórz nawias klamrowy.
Linia 47. continue średnik.
Linia 48. zamknij nawias klamrowy.
Linia 49. for otwórz nawias okrągły int j znak równości 0 średnik j otwórz nawias ostrokątny alfabet kropka size otwórz nawias okrągły zamknij nawias okrągły średnik j plus plus zamknij nawias okrągły otwórz nawias klamrowy.
Linia 50. if otwórz nawias okrągły tekst otwórz nawias kwadratowy i zamknij nawias kwadratowy znak równości znak równości alfabet otwórz nawias kwadratowy j zamknij nawias kwadratowy zamknij nawias okrągły otwórz nawias klamrowy.
Linia 51. tekst otwórz nawias kwadratowy i zamknij nawias kwadratowy znak równości nowy podkreślnik alfabet otwórz nawias kwadratowy nowy podkreślnik alfabet kropka size otwórz nawias okrągły zamknij nawias okrągły minus 1 minus j zamknij nawias kwadratowy średnik.
Linia 52. break średnik.
Linia 53. zamknij nawias klamrowy.
Linia 54. zamknij nawias klamrowy.
Linia 55. zamknij nawias klamrowy.
Linia 56. return tekst średnik.
Linia 57. zamknij nawias klamrowy.
Linia 59. string deszyfruj otwórz nawias okrągły string tekst przecinek string nowy podkreślnik alfabet przecinek string alfabet zamknij nawias okrągły otwórz nawias klamrowy.
Linia 60. for otwórz nawias okrągły int i znak równości 0 średnik i otwórz nawias ostrokątny tekst kropka size otwórz nawias okrągły zamknij nawias okrągły średnik i plus plus zamknij nawias okrągły otwórz nawias klamrowy.
Linia 61. if otwórz nawias okrągły tekst otwórz nawias kwadratowy i zamknij nawias kwadratowy zamknij nawias ostrokątny znak równości apostrof a apostrof ampersant ampersant tekst otwórz nawias kwadratowy i zamknij nawias kwadratowy otwórz nawias ostrokątny znak równości apostrof z apostrof zamknij nawias okrągły otwórz nawias klamrowy.
Linia 62. tekst otwórz nawias kwadratowy i zamknij nawias kwadratowy minus znak równości 32 średnik.
Linia 63. zamknij nawias klamrowy.
Linia 64. if otwórz nawias okrągły wykrzyknik otwórz nawias okrągły otwórz nawias okrągły tekst otwórz nawias kwadratowy i zamknij nawias kwadratowy zamknij nawias ostrokątny znak równości apostrof A apostrof ampersant ampersant tekst otwórz nawias kwadratowy i zamknij nawias kwadratowy otwórz nawias ostrokątny znak równości apostrof Z apostrof zamknij nawias okrągły zamknij nawias okrągły zamknij nawias okrągły otwórz nawias klamrowy.
Linia 65. continue średnik.
Linia 66. zamknij nawias klamrowy.
Linia 67. for otwórz nawias okrągły int j znak równości 0 średnik j otwórz nawias ostrokątny nowy podkreślnik alfabet kropka size otwórz nawias okrągły zamknij nawias okrągły średnik j plus plus zamknij nawias okrągły otwórz nawias klamrowy.
Linia 68. if otwórz nawias okrągły tekst otwórz nawias kwadratowy i zamknij nawias kwadratowy znak równości znak równości nowy podkreślnik alfabet otwórz nawias kwadratowy nowy podkreślnik alfabet kropka size otwórz nawias okrągły zamknij nawias okrągły minus 1 minus j zamknij nawias kwadratowy zamknij nawias okrągły otwórz nawias klamrowy.
Linia 69. tekst otwórz nawias kwadratowy i zamknij nawias kwadratowy znak równości alfabet otwórz nawias kwadratowy j zamknij nawias kwadratowy średnik.
Linia 70. break średnik.
Linia 71. zamknij nawias klamrowy.
Linia 72. zamknij nawias klamrowy.
Linia 73. zamknij nawias klamrowy.
Linia 74. return tekst średnik.
Linia 75. zamknij nawias klamrowy.
Linia 77. int main otwórz nawias okrągły zamknij nawias okrągły otwórz nawias klamrowy.
Linia 78. string alfabet znak równości cudzysłów ABCDEFGHIJKLMNOPQRSTUVWXYZ cudzysłów średnik.
Linia 79. string tekst znak równości cudzysłów EMANCYPACJA 1678 wykrzyknik cudzysłów średnik.
Linia 80. string klucz znak równości cudzysłów SYNESTEZJA cudzysłów średnik.
Linia 81. klucz znak równości utworzAlfabet otwórz nawias okrągły klucz przecinek alfabet zamknij nawias okrągły średnik.
Linia 83. string zaszyfrowany podkreślnik tekst znak równości szyfruj otwórz nawias okrągły tekst przecinek klucz przecinek alfabet zamknij nawias okrągły średnik.
Linia 84. cout otwórz nawias ostrokątny otwórz nawias ostrokątny cudzysłów Zaszyfrowany tekst dwukropek cudzysłów otwórz nawias ostrokątny otwórz nawias ostrokątny zaszyfrowany podkreślnik tekst otwórz nawias ostrokątny otwórz nawias ostrokątny endl średnik.
Linia 86. string odszyfrowany podkreślnik tekst znak równości deszyfruj otwórz nawias okrągły zaszyfrowany podkreślnik tekst przecinek klucz przecinek alfabet zamknij nawias okrągły średnik.
Linia 87. cout otwórz nawias ostrokątny otwórz nawias ostrokątny cudzysłów Odszyfrowany tekst dwukropek cudzysłów otwórz nawias ostrokątny otwórz nawias ostrokątny odszyfrowany podkreślnik tekst otwórz nawias ostrokątny otwórz nawias ostrokątny endl średnik.
Linia 89. return 0 średnik.
Linia 90. zamknij nawias klamrowy.