Kedves Diákjaim! Ez a feladat az emelt szintű érettségik egyik legnehezebb részét, az összetett szövegfeldolgozást és az időintervallum-számítást kombinálja.
A Feladat: Állomásfőnök egy vasúti statisztikai adatok alapján a vonatok érkezési és indulási idejét formátumban, például: Célállomás;Óra:Perc;Óra:Perc.Írj egy Python programot, amely az alábbi lépések szerint elemzi az adatokat:
Tárold el az adatokat egy megfelelő adatszerkezetben (pl. szótárakat tartalmazó listában).
Keresés: Határozd meg azt a járatot, amelyik a legtöbb időt töltötte az állomáson!
Szűrés: Írd ki egy új hosszuk.txt nevű fájlba azoknak a vonatoknak a célállomását és az állomáson töltött idejét (percben), amelyeknél ez az idő meghaladja a 45 percet!
-----------
adatok = []
# Adatok: célállomás; érkezés; indulás
V_sorok = [
"Budapest;08:10;08:35",
"Szeged;09:00;09:50",
"Debrecen;10:15;10:40",
"Pécs;11:20;12:30",
"Győr;13:05;13:20",
"Miskolc;14:10;15:05",
"Eger;16:00;16:40",
"Kecskemét;17:25;18:15"
]
for sor in V_sorok:
cel, erkezes, indulas = sor.strip().split(';')
e_ora, e_perc = map(int, erkezes.split(':'))
i_ora, i_perc = map(int, indulas.split(':'))
erkezett_percben = e_ora * 60 + e_perc
indult_percben = i_ora * 60 + i_perc
if indult_percben < erkezett_percben:
indult_percben += 24 * 60
tart_ido = indult_percben - erkezett_percben
adatok.append({
'celallomas': cel,
'ido': tart_ido
})
# Maximumkeresés
max_ido = -1
max_cel = ""
for vonat in adatok:
if vonat['ido'] > max_ido:
max_ido = vonat['ido']
max_cel = vonat['celallomas']
print(f"A legtöbbet várakozó vonat célállomása: {max_cel}, idő: {max_ido} perc.")
# Szűrés és kiírás
with open('hosszuk.txt', 'w', encoding='utf-8') as ki_fajl:
for vonat in adatok:
if vonat['ido'] > 45:
ki_fajl.write(f"{vonat['celallomas']};{vonat['ido']}\n")
print("A szűrt lista kiírása megtörtént a hosszuk.txt fájlba.")
--------------
Eredmény; A legtöbbet várakozó vonat célállomása: Pécs, idő: 70 perc.
A szűrt lista kiírása megtörtént a hosszuk.txt fájlba.
--------------
Futtatás; https://onecompiler.com/python#draft-tdxd
Nincsenek megjegyzések:
Megjegyzés küldése