7.3 Najdłuższy wzrost w wycinku

Matura próbna grudzień 2024 - Matura z informatyki: arkusze krok po kroku (Python)

Zadanie 7.3 (3 pkt): najdłuższy przedział, w którym produkcja z wiatru cały czas rosła, z datą i godziną początku i końca. Przykład z arkusza: dla 120, 111, 124, 125, 120 przedział to godziny 2-4, czyli zaczyna się w godzinie najniższej wartości, od której rośnie. Dlatego przy braku wzrostu nowy przedział startuje w bieżącej godzinie (`start = i`). Przedział może przejść przez północ. Dla wycinka: od 2024-04-09 11:00 do 2024-04-09 23:00.

hours = []  # (data, godzina, wiatr, fotowoltaika)
with open("energia_przyklad.txt") as f:
    f.readline()  # wiersz nagłówkowy
    for line in f:
        day, hour, wind, solar = line.split("\t")
        # liczby w pliku mają przecinek dziesiętny
        hours.append((day, int(hour), float(wind.replace(",", ".")), float(solar.replace(",", "."))))

# 7.3 najdłuższy przedział ciągłego wzrostu: start = godzina, od której produkcja rośnie
start, best = 0, (0, 0)
for i in range(1, len(hours)):
    if hours[i][2] <= hours[i - 1][2]:  # brak wzrostu: nowy przedział zaczyna się tutaj
        start = i
    if i - start > best[1] - best[0]:
        best = (start, i)
first, last = hours[best[0]], hours[best[1]]

print("7.3", f"{first[0]} {first[1]}:00", f"{last[0]} {last[1]}:00")

Ł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.