2026. június 25., csütörtök

A leghosszabb hőségriadó

Kedves diákjaim!  Nézzünk egy másik időjáráselemzésre példát. A kapott adatok alapján számolunk.
---------
def feladat_megoldasa(fajlnev=None):
    if fajlnev is None:
        # Kapott adatok
        adatok = [
            {'datum': '2026-01-01', 'homerseklet': 12},
            {'datum': '2026-01-02', 'homerseklet': 15},
            {'datum': '2026-01-03', 'homerseklet': 31},
            {'datum': '2026-01-04', 'homerseklet': 33},
            {'datum': '2026-01-05', 'homerseklet': 29},
            {'datum': '2026-02-01', 'homerseklet': 18},
            {'datum': '2026-02-02', 'homerseklet': 22},
            {'datum': '2026-02-03', 'homerseklet': 26},
            {'datum': '2026-02-04', 'homerseklet': 35},
        ]
    else:
        adatok = []
        try:
            with open(fajlnev, 'r', encoding='utf-8') as forras:
                for sor in forras:
                    elemek = sor.strip().split()
                    if elemek:
                        ev, honap, nap, homerseklet = elemek
                        adatok.append({
                            'datum': f"{ev}-{honap}-{nap}",
                            'homerseklet': int(homerseklet)
                        })
        except FileNotFoundError:
            print("A megadott fájl nem található.")
            return

    if not adatok:
        print("Nincs feldolgozható adat.")
        return

    osszeg = 0
    for adat in adatok:
        osszeg += adat['homerseklet']
    atlag = osszeg / len(adatok)
    print(f"1. A teljes időszak átlaghőmérséklete: {atlag:.2f} °C")

    min_adat = adatok[0]
    max_adat = adatok[0]
    for adat in adatok:
        if adat['homerseklet'] < min_adat['homerseklet']:
            min_adat = adat
        if adat['homerseklet'] > max_adat['homerseklet']:
            max_adat = adat

    print(f"2. Leghidegebb nap: {min_adat['datum']} ({min_adat['homerseklet']} °C)")
    print(f"   Legmelegebb nap: {max_adat['datum']} ({max_adat['homerseklet']} °C)")

    maximum_egymas_utani = 0
    aktualis_egymas_utani = 0

    for adat in adatok:
        if adat['homerseklet'] > 30:
            aktualis_egymas_utani += 1
            if aktualis_egymas_utani > maximum_egymas_utani:
                maximum_egymas_utani = aktualis_egymas_utani
        else:
            aktualis_egymas_utani = 0

    print(f"3. A leghosszabb hőségriadó (egymást követő napok >30°C): {maximum_egymas_utani} nap volt")

    havi_maximumok = {}
    for adat in adatok:
        honap = adat['datum'].split('-')[1]
        if honap not in havi_maximumok or adat['homerseklet'] > havi_maximumok[honap]:
            havi_maximumok[honap] = adat['homerseklet']

    print("4. Havi maximum hőmérsékletek:")
    for honap, ertek in sorted(havi_maximumok.items()):
        print(f"   {honap}. hó: {ertek} °C")

    with open('statisztika.txt', 'w', encoding='utf-8') as cel:
        cel.write(f"Atlag: {atlag:.2f}\n")
        cel.write(f"Max_egymas_utani: {maximum_egymas_utani}\n")

feladat_megoldasa()
------------
1. A teljes időszak átlaghőmérséklete: 24.56 °C
2. Leghidegebb nap: 2024-01-01 (12 °C)
   Legmelegebb nap: 2024-02-04 (35 °C)
3. A leghosszabb hőségriadó (egymást követő napok >30°C): 2 nap volt
4. Havi maximum hőmérsékletek:
   01. hó: 33 °C
   02. hó: 35 °C
----------------
Futtatás; https://onecompiler.com/python#draft-tdxd

Nincsenek megjegyzések:

Megjegyzés küldése