4.3 Najdłuższy deszcz w wycinku

Matura pokazowa marzec 2022 - Matura z informatyki: arkusze krok po kroku (Python)

Zadanie 4.3 (2 pkt): pada deszcz, gdy temperatura i opad są większe od zera. Najdłuższy nieprzerwany ciąg takich pomiarów: liczba godzin, data i godzina początku i końca oraz suma opadu (1 pkt za daty, 1 pkt za sumę). Licznik `run` i suma `run_sum` zerują się przy każdym innym pomiarze. Dla wycinka: 10 godzin, od 21.02.2019 22:00 do 22.02.2019 07:00, opad 11,2.

rows = []  # (dzień, godzina, temperatura, opad)
with open("brenna_przyklad.txt") as f:
    f.readline()  # wiersz nagłówkowy
    for line in f:
        moment, temp, precip = line.strip().split("\t")
        day, hour = moment.split()  # "01.01.2019 00:00"
        rows.append((day, hour, float(temp.replace(",", ".")), float(precip.replace(",", "."))))

# 4.3 deszcz: temperatura i opad większe od zera; inny pomiar przerywa ciąg
best, best_start, best_end, best_sum = 0, "", "", 0
run, run_sum = 0, 0
for k, (day, hour, temp, precip) in enumerate(rows):
    if temp > 0 and precip > 0:
        run = run + 1
        run_sum = round(run_sum + precip, 1)
        if run > best:
            first = rows[k - run + 1]
            best, best_start, best_end, best_sum = run, first[0] + " " + first[1], day + " " + hour, run_sum
    else:
        run, run_sum = 0, 0

print("4.3", best, best_start, best_end, best_sum)

Ładowanie interaktywnego edytora... Jeśli się nie pojawi, włącz JavaScript.

Wszystkie lekcje kursu Matura z informatyki: arkusze krok po kroku·Zaloguj się, aby zapisać postęp na koncie.