Zmodyfikuj podaną funkcję rotN tak, aby realizowała ona odwrotnościowy szyfr Cezara dla ciągu x złożonego z cyfr. Pamiętaj, że okres tego szyfru będzie wynosił 10. Działanie programu przetestuj dla x = 12341234.
Specyfikacja problemu:
Dane:
x - ciąg znaków
Wynik:
wartość logiczna
R1QSk3RDd8XX9
Przykładowe rozwiązanie zadania:
Linia 1. def rotN otwórz nawias okrągły wartosc zamknij nawias okrągły dwukropek.
Linia 2. wynik znak równości list otwórz nawias okrągły wartosc zamknij nawias okrągły.
Linia 3. for i in range otwórz nawias okrągły len otwórz nawias okrągły wynik zamknij nawias okrągły zamknij nawias okrągły dwukropek.
Linia 4. wynik otwórz nawias kwadratowy i zamknij nawias kwadratowy znak równości str otwórz nawias okrągły otwórz nawias okrągły otwórz nawias okrągły int otwórz nawias okrągły wynik otwórz nawias kwadratowy i zamknij nawias kwadratowy zamknij nawias okrągły plus 5 zamknij nawias okrągły procent 10 zamknij nawias okrągły zamknij nawias okrągły.
Linia 5. return cudzysłów cudzysłów kropka join otwórz nawias okrągły wynik zamknij nawias okrągły.
Linia 7. x znak równości cudzysłów 12341234 cudzysłów.
Linia 8. print otwórz nawias okrągły rotN otwórz nawias okrągły rotN otwórz nawias okrągły x zamknij nawias okrągły zamknij nawias okrągły znak równości znak równości x zamknij nawias okrągły.
31
Ćwiczenie 2
Napisz program, który dla dwóch łańcuchów znaków (tekstu jawnego jawny oraz szyfrogramu tajny) znajdzie wartość, o jaką zostały przekształcone poszczególne znaki. Proces szyfrowania wygląda następująco:
Linia 1. 1 kropka W tekście jawnym zamień litery małe na wielkie przecinek a wielkie na małe kropka.
Linia 2. 2 kropka Zapisz tekst jawny od końca kropka.
Linia 3. 3 kropka Przekształć wszystkie znaki tekstu jawnego o naturalną liczbę N kropka.
Specyfikacja problemu:
Dane:
jawny - tekst jawny, ciąg znaków
zaszyfrowany - tekst zaszyfrowany, ciąg znaków
Wynik:
liczba całkowita; wartość klucza
R69IxE9e2xaa9
Przykładowe rozwiązanie zadania:
Linia 1. def znajdzKlucz otwórz nawias okrągły jawny przecinek zaszyfrowany zamknij nawias okrągły dwukropek.
Linia 2. wartosc znak równości ord otwórz nawias okrągły zaszyfrowany kropka upper otwórz nawias okrągły zamknij nawias okrągły otwórz nawias kwadratowy 0 zamknij nawias kwadratowy zamknij nawias okrągły minus ord otwórz nawias okrągły jawny kropka upper otwórz nawias okrągły zamknij nawias okrągły otwórz nawias kwadratowy len otwórz nawias okrągły jawny zamknij nawias okrągły minus 1 zamknij nawias kwadratowy zamknij nawias okrągły.
Linia 3. if wartosc zamknij nawias ostrokątny 0 dwukropek.
Linia 4. return wartosc.
Linia 5. else dwukropek.
Linia 6. return 26 plus wartosc.
Linia 8. print otwórz nawias okrągły znajdzKlucz otwórz nawias okrągły cudzysłów KwAdRaT cudzysłów przecinek cudzysłów aHyKhDr cudzysłów zamknij nawias okrągły zamknij nawias okrągły.