7.4 Zapas energii w wycinku

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

Zadanie 7.4 (3 pkt): ile energii musi być w magazynach na początku miesiąca, żeby nigdy jej nie zabrakło. Plik `zapotrzebowanie.txt` ma zapotrzebowanie w każdej godzinie (te same wiersze co `energia.txt`). Bilans od zera: w każdej godzinie dochodzi produkcja, odchodzi zapotrzebowanie. Najniższy stan bilansu to największy łączny niedobór, a zapas początkowy musi go pokryć, więc odpowiedź to ten niedobór zaokrąglony w górę do 1 MWh. Dla wycinka: 5713,29 MWh, czyli 5714.

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(",", "."))))
demand = []
with open("zapotrzebowanie_przyklad.txt") as f:
    f.readline()
    for line in f:
        demand.append(float(line.split("\t")[2].replace(",", ".")))

# 7.4 bilans magazynu godzina po godzinie, start od zera: najgłębszy spadek poniżej zera
# to energia, której zabrakłoby bez zapasu
from math import ceil

balance, lowest = 0, 0
for (day, hour, wind, solar), need in zip(hours, demand):
    balance = balance + wind + solar - need
    lowest = min(lowest, balance)
reserve = ceil(-lowest)  # z dokładnością do 1 MWh, w górę: mniej by nie wystarczyło

print("7.4", reserve, round(-lowest, 3))

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