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.