FANDOM


import math

print('1. feladat: Adatok beolvasása.\n')
programok = []
programok_szama = 0
forras = open('program.txt')
programok_szama = int(forras.readline().strip())
for sor in forras:
    programok.append(sor.strip())
forras.close()

#2a
utasitas_sorszam = int(input('2. feladat: Kérem az utasítássor sorszámát: '))-1
utasitas = programok[utasitas_sorszam]
egyszerusitheto = 0
for i in range(len(utasitas)-1):
    if utasitas[i] == 'E' and utasitas[i+1] == 'D':
        egyszerusitheto = 1
        break
    elif utasitas[i] == 'D' and utasitas[i+1] == 'E':
        egyszerusitheto = 1
        break
    elif utasitas[i] == 'K' and utasitas[i+1] == 'N':
        egyszerusitheto = 1
        break
    elif utasitas[i] == 'N' and utasitas[i+1] == 'K':
        egyszerusitheto = 1
        break  
if egyszerusitheto:
    print('\nAz utasítás egyszerűsíthető.\n')
else:
    print('\nAz utasítás nem egyszerűsíthető.\n')

#2b, 2c
KN = 0 #x
ED = 0 #y
tavolsag = []
for index, elem in enumerate(utasitas):
    if elem == 'E':
        ED += 1
    if elem == 'D':
        ED -= 1
    if elem == 'K':
        KN += 1
    if elem == 'N':
        KN -= 1
    tavolsag.append([index+1, round(math.sqrt((KN)**2 + (ED)**2), 3)])
print(abs(ED), 'lépést kell tenni az ED,', abs(KN), 'lépést a KN tengely mentén.')
tavolsag_max_lepes = sorted(tavolsag, key=lambda x: x[1], reverse=True)[0][0]
tavolsag_max = sorted(tavolsag, key=lambda x: x[1], reverse=True)[0][1]
print('\n', tavolsag_max_lepes, '. lépés során volt a legtávolabb, ez a táv: ', tavolsag_max, ' cm', sep="")

print('\n3. feladat')

def energia(x):
    energia_m = 2 + len(x)
    for i in range(len(x)-1):
        if x[i] != x[i+1]:
            energia_m += 2
    return energia_m

for index, elem in enumerate(programok):
    if energia(elem) <= 100:
        print(index+1, energia(elem))

print('\n4. feladat: fájlba írás')

def uj_utasitas(x):
    lanc = []
    ki = []
    kimenet = []
    lanc.append(x[0])
    for elem in x[1:]:
        if elem == lanc[-1]:
            lanc.append(elem)
        else:
            ki.append("".join(lanc))
            lanc = []
            lanc.append(elem)
    ki.append("".join(lanc))
    for sor in ki:
        if len(sor) == 1:
            kimenet.append(sor)
        else:
            kimenet.append(str(len(sor)))
            kimenet.append(sor[0])
        
    return "".join(kimenet)

kimenet = open('ujprog.txt', 'w')
for elem in programok:
    print(uj_utasitas(elem), file=kimenet)
kimenet.close()

print('\n5. feladat')

def regi_utasitas(x):
    ki = []
    i = 0
    while i != len(x):
        if x[i].isdigit() == True:  #utolso elem nem lehet szam
            ki.append(int(x[i])*x[i+1])
            i += 2
        else:
            ki.append(x[i])
            i += 1
    return "".join(ki)

uj_formatum = input('új formátumú program: ')
print('a program régi formátuma:', regi_utasitas(uj_formatum))