From 7db9676df97576a59a72f007d3f417dae1d0ea7b Mon Sep 17 00:00:00 2001 From: Szymon P Date: Thu, 20 Nov 2025 21:08:18 +0100 Subject: [PATCH] zadanie na lab --- .../laby/szyfr_cezara.py | 57 +++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 uczelnia/1_semestr/wprowadzenie_do_informatyki/laby/szyfr_cezara.py diff --git a/uczelnia/1_semestr/wprowadzenie_do_informatyki/laby/szyfr_cezara.py b/uczelnia/1_semestr/wprowadzenie_do_informatyki/laby/szyfr_cezara.py new file mode 100644 index 0000000..5bd32ce --- /dev/null +++ b/uczelnia/1_semestr/wprowadzenie_do_informatyki/laby/szyfr_cezara.py @@ -0,0 +1,57 @@ +def cypher(text, offset): + n_text = "" + for char in text: + if char.isalpha() and char.islower(): + pos = ((ord(char) - ord('a') + offset) % 26) + ord('a') + n_text += chr(pos) + if char.isalpha() and char.isupper(): + pos = ((ord(char) - ord('A') + offset) % 26) + ord('A') + n_text += chr(pos) + return n_text + +def decypher(text, offset): + n_text = "" + for char in text: + if char.isalpha() and char.islower(): + pos = ((ord(char) - ord('a') - offset) % 26) + ord('a') + n_text += chr(pos) + if char.isalpha() and char.isupper(): + pos = ((ord(char) - ord('A') - offset) % 26) + ord('A') + n_text += chr(pos) + return n_text + +def force_decypher(text): + n_text = "" + print("Możliwe wyniki: ") + for offset in range(1, 26): + print("Przesunięcie", offset, ":") + for char in text: + if char.isalpha() and char.islower(): + pos = ((ord(char) - ord('a') + offset) % 26) + ord('a') + n_text += chr(pos) + if char.isalpha() and char.isupper(): + pos = ((ord(char) - ord('A') + offset) % 26) + ord('A') + n_text += chr(pos) + print(n_text) + n_text = "" + print("------") + +if __name__ == "__main__": + tryb = input("Wybierz tryb:\ns - szyfrowanie\nd - deszyfrowanie\nf - siłowe odszyfrowanie\n") + offset = 3 + match tryb: + case "s": + text = input("Podaj słowo do zaszyfrowania: ") + print("Słowo przed zaszyfrowaniem: ", text) + print("Aktualne przesunięcie: ", offset) + print("Zaszyfrowane słowo: ", cypher(text, offset)) + case "d": + text = input("Podaj słowo do odszyfrowania: ") + print("Słowo przed odszyfrowaniem: ", text) + print("Aktualne przesunięcie: ", offset) + print("Odszyfrowane słowo: ", decypher(text, offset)) + case "f": + text = input("Podaj słowo do odszyfrowania: ") + force_decypher(text) + case _: + print("Niepoprawny wybór!")