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

Meteorológiai elemzés

Kedves diákjaim!  Nézzünk egy időjáráselemzésre példát, egy meteorológiai állomás óránként rögzíti a hőmérsékletet. A fileban az egyes állomások napi átlaghőmérsékletei találhatók.
------------
# Adatok feldolgozása

file_content = """3 5
12.5 14.0 11.2 15.1 13.0
10.0 9.5 8.2 11.0 9.8
14.2 15.5 16.0 14.8 15.2
"""

lines = [line.strip() for line in file_content.strip().splitlines() if line.strip()]

elso_sor = lines[0].split()
allomasok_szama = int(elso_sor[0])
napok_szama = int(elso_sor[1])

matrix = []
for sor in lines[1:]:
    adatok = [float(x) for x in sor.split()]
    if adatok:
        matrix.append(adatok)

# 2. Átlaghőmérséklet
osszeg = sum(sum(sor) for sor in matrix)
osszes_adat = allomasok_szama * napok_szama
atlag = osszeg / osszes_adat
print(f"2. feladat: A teljes időszak átlaghőmérséklete: {atlag:.2f} °C")

# 3. Legnagyobb hőingadozás
max_ingadozas = -1
legingadozobb_allomas = -1

for i in range(allomasok_szama):
    ingadozas = max(matrix[i]) - min(matrix[i])
    if ingadozas > max_ingadozas:
        max_ingadozas = ingadozas
        legingadozobb_allomas = i + 1

print(f"3. feladat: A legnagyobb hőingadozás a(z) {legingadozobb_allomas}. állomáson volt ({max_ingadozas:.2f} °C).")

# 4. Állandó hőmérsékletű napok
allando_napok = []
for nap_index in range(napok_szama):
    napi_homersekletek = [matrix[allomas_index][nap_index] for allomas_index in range(allomasok_szama)]
    if len(set(napi_homersekletek)) == 1:
        allando_napok.append(nap_index + 1)

print("4. feladat: Állandó hőmérsékletű napok (állomástól függetlenül):", end=" ")
if allando_napok:
    print(", ".join(map(str, allando_napok)))
else:
    print("Nem volt ilyen nap.")

# 5. Legmelegebb nap
legmelegebb_nap = -1
legmagasabb_napi_atlag = float("-inf")

for nap_index in range(napok_szama):
    napi_osszeg = sum(matrix[allomas_index][nap_index] for allomas_index in range(allomasok_szama))
    napi_atlag = napi_osszeg / allomasok_szama
    if napi_atlag > legmagasabb_napi_atlag:
        legmagasabb_napi_atlag = napi_atlag
        legmelegebb_nap = nap_index + 1

print(f"5. feladat: A legmelegebb nap a(z) {legmelegebb_nap}. volt, {legmagasabb_napi_atlag:.2f} °C napi átlaggal.")
---------------
A teljes időszak átlaghőmérséklete: 12.67 °C
 A legnagyobb hőingadozás a(z) 1. állomáson volt (3.90 °C).
Állandó hőmérsékletű napok (állomástól függetlenül): Nem volt ilyen nap.
 A legmelegebb nap a(z) 4. volt, 13.63 °C napi átlaggal.
-----------------
Új ismeretek;
Mátrixok, ciklusok egymásba ágyazása,
az algoritmus komoly logikai gondolkodást igényel.
List comprehension speciális használata:
Beépített függvények kombinálása: A set() adatszerkezet használata.
---------------
Futtatás; https://onecompiler.com/python#draft-tdxd

Nincsenek megjegyzések:

Megjegyzés küldése