Created
October 17, 2013 10:38
-
-
Save MrBlaise/7022736 to your computer and use it in GitHub Desktop.
Emelt informatika érettségi 2005 október - Vigenére Tábla / Solution for Advanced Computer Science Matura 2005 october (Hungary)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python3 | |
# Rostás Balázs - Emelt informatika érettségi 2005 október - Vigenére Tábla | |
import string | |
# 1. feladat: | |
while True: | |
szovegBe = input("Kérem adjon meg egy maximum 255 karakter hosszú szöveget: ") | |
if len(szovegBe) > 255: | |
print("A megadott szöveg túl hosszú! Próbálja újra!\n") | |
elif len(szovegBe) == 0: | |
print("Nem adott meg szöveget! Próbálja újra!\n") | |
else: | |
break | |
# 2. feladat: | |
szovegBe = szovegBe.upper() | |
magyarKarakter = {"Ő":"O", "Ú":"U", "É":"E", "Á":"A", "Ű":"U", "Ö":"O", "Ü":"U", "Ó":"O", "Í":"I"} | |
for char in szovegBe: | |
if char in magyarKarakter.keys(): | |
szovegBe = szovegBe.replace(char, magyarKarakter[char]) | |
if char in string.punctuation or char in string.digits or char == " ": | |
szovegBe = szovegBe.replace(char, "") | |
# 3. feladat: | |
print("\nA nyíltszöveg:\n",szovegBe,"\n", sep="") | |
# 4. feladat: | |
while True: | |
kulcsSzo = input("Kérem adjon meg egy maximum 5 karakteres kulcsszót: ") | |
if len(kulcsSzo) > 5: | |
print("A megadott kulcsszó több mint 5 karakter! Próbálja újra!\n") | |
elif len(kulcsSzo) == 0: | |
print("Nem adott meg kulcsszót! Próbálja újra!\n") | |
else: | |
break | |
kulcsSzo = kulcsSzo.upper() | |
# 5. feladat: | |
szamlalo = 0 | |
while (len(kulcsSzo) < len(szovegBe)): | |
if szamlalo == len(kulcsSzo): | |
szamlalo = 0 | |
kulcsSzo = kulcsSzo + kulcsSzo[szamlalo] | |
szamlalo += 1 | |
print("\nA kulcsszöveg:\n"+str(kulcsSzo)+"\n") | |
# 6. feladat: | |
vTabla = [] | |
fajlBe = open("Vtabla.dat", "r") | |
for line in fajlBe: | |
vTabla.append(line.strip("\n")) | |
fajlBe.close() | |
kodoltKi = "" | |
oszlopSzam = [] | |
sorSzam = [] | |
for char in szovegBe: | |
oszlop = 0 | |
while (char != vTabla[oszlop][0]): | |
oszlop += 1 | |
oszlopSzam.append(oszlop) | |
for char in kulcsSzo: | |
sor = 0 | |
while (char != vTabla[0][sor]): | |
sor += 1 | |
sorSzam.append(sor) | |
for char in range(len(szovegBe)): | |
sor, oszlop = sorSzam[char], oszlopSzam[char] | |
kodoltKi = kodoltKi + vTabla[oszlop][sor] | |
# 7. feladat: | |
print("A kódolt szöveg:\n" + str(kodoltKi)) | |
fajlKi = open("kodolt.dat", "w") | |
fajlKi.write(kodoltKi) | |
fajlKi.close() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment