1 # ----------------------------------------------------------------------------------------------2 # 2024.10.22 emelt szintű digitális kultúra érettségi programozási feladat3 # ----------------------------------------------------------------------------------------------4 autok = [] # mátrix (listák listája)5 # ----------------------------------------------------------------------------------------------6 # 1. Olvassa be és tárolja el a további feldolgozáshoz a jeladas.txt állomány tartalmát!7 # ----------------------------------------------------------------------------------------------8 fbe = open('jeladas.txt','r')9 for sor in fbe:10 adatsor = sor.strip().split('\t')11 adatsor[1:] = map(int, adatsor[1:])12 autok.append(adatsor)13 fbe.close()14 # ----------------------------------------------------------------------------------------------15 # 2. Állapítsa meg, hogy milyen időpontban történt a legutolsó jeladás, és írja a képernyőre16 # az időpontot, valamint az utoljára jelet adó autó rendszámát!17 # ----------------------------------------------------------------------------------------------18 print('2. feladat:')19 utolso_adat = autok[-1]20 ora = utolso_adat[1]21 perc = utolso_adat[2]22 rendszam = utolso_adat[0]23 print(f'Az utolsó jeladás időpontja {ora}:{perc}, a jármű rendszáma {rendszam}')24 # ----------------------------------------------------------------------------------------------25 # 3. Írja ki a bemeneti állományban elsőként szereplő jármű rendszámát, valamint azt, hogy26 # milyen időpontokban adott jelzést! Az időpontokat óra:perc formátumban, szóközzel27 # elválasztva, egy sorban jelenítse meg!28 # ----------------------------------------------------------------------------------------------29 print('3. feladat:')30 elso = autok[0]31 print(f'Az első jármű: {elso[0]}')32 print('Jeladásainak időpontjai:', end = ' ')33 for auto in autok:34 if auto[0] == elso[0]:35 print(f'{auto[1]}:{auto[2]}', end = ' ')36 print()37 # ----------------------------------------------------------------------------------------------38 # 4. Kérje be a felhasználótól egy időpont óra és perc értékét, és adja meg, hogy hány jeladás39 # történt az adott időpontban! Ha nem történt jeladás, akkor 0-t írjon ki!40 # ----------------------------------------------------------------------------------------------41 print('4. feladat:')42 ora = int(input('Kérem, adja meg az órát: ')) # 643 perc = int(input('Kérem, adja meg a percet: ')) # 5444 jeladasok_szama = 045 for auto in autok:46 if auto[1] == ora and auto[2] == perc:47 jeladasok_szama += 148 print(f'A jeladások száma: {jeladasok_szama}')49 # ----------------------------------------------------------------------------------------------50 # 5. Állapítsa meg, hogy mennyi az adatok szerint a legnagyobb sebesség, amellyel egy jármű51 # a jeladáskor haladt, illetve adja meg az összes autó rendszámát, ami haladt ilyen52 # sebességgel! Amennyiben egy jármű többször is haladt a legnagyobb sebességgel, akkor a 53 # rendszámát többször is megjelenítheti. A rendszámokat egy sorban, szóközzel elválasztva 54 # jelenítse meg a minta szerint!55 # ----------------------------------------------------------------------------------------------56 print('5. feladat:')57 # max_sebesseg = max(autok, key = lambda auto:auto[-1])[-1]58 max_sebesseg = 059 for auto in autok:60 if auto[-1] > max_sebesseg:61 max_sebesseg = auto[-1] 62 print(f'A legnagyobb sebesség km/h: {max_sebesseg}') # 15463 print('A járművek:', end = ' ')64 for auto in autok:65 if auto[-1] == max_sebesseg:66 print(auto[0], end = ' ')67 print()68 # ----------------------------------------------------------------------------------------------69 # 6. Kérje be a felhasználótól egy jármű rendszámát, és jelenítse meg a jármű jeladásainak70 # időpontját és az adott rendszámú autó távolságát az útszakasz kezdetétől! A bevezető71 # példában az első jármű esetén a 6:04-kor a jármű távolsága az útszakasz kezdetétől 0,0 km,72 # míg 6:14-kor 15,8 km, mivel a jármű az eltelt 10 perc (10/60 óra) alatt 95 km/h-val haladt.73 # A kimenetet a mintának megfelelőn alakítsa ki, a távolságot minden esetben egy74 # tizedesjegyre kerekítve írja ki km mértékegységben! Ha nem szerepel a bekért rendszámmal75 # jármű, akkor azt egy rövid mondatban jelezze a felhasználónak!76 # ----------------------------------------------------------------------------------------------77 def eltelt_ido(elozo, au):78 return (au[1] * 60 + au[2]) - (elozo[0] * 60 + elozo[1])79 80 print('6. feladat:')81 rendszam = input('Kérem, adja meg a rendszámot: ') # ZVJ-63882 elso = True83 for auto in autok:84 if auto[0] == rendszam:85 if not elso:86 ido = eltelt_ido(elozo_jeladas, auto)87 tavolsag += elozo_jeladas[-1] * (ido / 60) # s = v * t (fizika)88 else:89 tavolsag = 0.090 elso = False91 elozo_jeladas = (auto[1], auto[2],auto[3])92 print(f'{auto[1]}:{auto[2]} {tavolsag:.1f} km')93 if elso:94 print('Nincs ilyen rendszám!')95 # ----------------------------------------------------------------------------------------------96 # 7. Készítsen egy ido.txt szöveges állományt, amelynek mindegyik sorában egy-egy jármű 97 # rendszáma, illetve első és utolsó jeladásának óra és perc értéke szerepeljen! 98 # Az állományban minden jármű pontosan egyszer forduljon elő tetszőleges sorrendben!99 # ----------------------------------------------------------------------------------------------100 fki = open('ido.txt','w')101 rendszamok = set()102 for auto in autok:103 rendszamok.add(auto[0])104 for rendszam in rendszamok:105 elso = True106 for auto in autok:107 if auto[0] == rendszam:108 if elso:109 sor = rendszam + ' ' + str(auto[1]) + ' ' + str(auto[2])110 elso = False111 else:112 vege = ' ' + str(auto[1]) + ' ' + str(auto[2])113 sor += vege114 print(sor, file = fki)115 fki.close()116 117