Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save MrBlaise/7027356 to your computer and use it in GitHub Desktop.
Save MrBlaise/7027356 to your computer and use it in GitHub Desktop.
Emelt informatika érettségi 2008 október - Robot / Solution for Advanced Computer Science Matura 2008 october (Hungary)
#!/usr/bin/env python3
# Rostás Balázs - Emelt informatika érettségi 2008 október - Robot
def egyszerusitheto(szoveg):
karakterek = szoveg[:2]
if karakterek == "ED" or karakterek == "DE" or karakterek == "KN" or karakterek == "NK":
return True
if len(szoveg) <= 2:
return False
else:
return egyszerusitheto(szoveg[2:])
# 1. feladat:
fajlBe = open("program.txt", "r")
programSzam = int(fajlBe.readline())
programok = [ program.strip() for program in fajlBe ]
programok = [ list(program) for program in programok]
fajlBe.close()
print("1. feladat - program.txt beolvasása - KÉSZ!")
# 2. feladat:
# a.)
utSzam = int(input("\n2. feladat - Kérem az utasítássor sorszámát: "))
egyszProgram = ""
for char in programok[utSzam-1]:
egyszProgram += char
if egyszerusitheto(egyszProgram):
print("egyszerűsíthető")
else:
print("nem egyszerűsíthető")
# b.)
y = 0
x = 0
for utasitas in programok[utSzam-1]:
if utasitas == "E":
y += 1
elif utasitas == "D":
y -= 1
elif utasitas == "N":
x -= 1
else:
x += 1
print(abs(y),"lépést kell tenni az ED,", abs(x), "lépést a KN tengely mentén.")
# c.)
y = 0
x = 0
tavok = []
for utasitas in programok[utSzam-1]:
if utasitas == "E":
y += 1
elif utasitas == "D":
y -= 1
elif utasitas == "N":
x -= 1
else:
x += 1
tav = (abs(y)**2 + abs(x)**2)**0.5
tavok.append(tav)
tav = max(tavok)
sorszam = tavok.index(tav) + 1
print(sorszam, "{0:.3f}cm".format(tav))
# 3. feladat:
print("\n3. feladat:")
energia = 0
for sorszam, program in enumerate(programok):
for index in range(len(program)):
energia += 1
if index == 0:
energia += 2
elozoBetu = program[index]
elif program[index] != elozoBetu:
energia += 2
elozoBetu = program[index]
if energia <= 100:
print(sorszam+1, energia)
energia = 0
# 4. feladat:
fajlKi = open("ujprog.txt", "w")
for program in programok:
elozoBetu = program[0]
tavolsag = 0
program.append("0")
for utasitas in program[1:]:
tavolsag += 1
if utasitas != elozoBetu:
if tavolsag == 1:
print(elozoBetu, end="", file=fajlKi)
else:
print(tavolsag, elozoBetu, sep="", end="", file=fajlKi)
tavolsag = 0
elozoBetu = utasitas
print("\n", end="",file=fajlKi)
fajlKi.close()
print("\n4. feladat - ujprog.txt létrehozása - KÉSZ!")
# 5. feladat:
ujKod = input("\n5.feladat - Kérem adjon meg egy új formátumú utasítást, az átalakításhoz: ")
kiirando = ""
szam = ""
szamVolt = False
for char in ujKod:
if char.isdecimal():
szam += char
szamVolt = True
elif szamVolt:
kiirando += int(szam)*char
szam = ""
szamVolt = False
else:
kiirando += char
print(kiirando)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment