4.3 Zbiornik w wycinku
Matura próbna grudzień 2022 - Matura z informatyki: arkusze krok po kroku (Python)
Zadanie 4.3 (4 pkt): 1 stycznia rano w zbiorniku jest 5000 l. Każdego dnia najpierw deszcz trafia do zbiornika, potem rodzina zużywa 190 l (w środę 260 l, plus 300 l w dzień podlewania). Gdy wody brakuje, zbiornik się opróżnia, a brakująca część idzie z wodociągu. Ile dni brakowało wody i ile litrów pobrano z wodociągu? Dla wycinka: 68 dni, 13338 l.
from datetime import date
days = [] # (data, litry zebranej wody)
with open("ekodom_przyklad.txt") as f:
f.readline() # wiersz nagłówkowy
for line in f:
text, water = line.split("\t")
day = date(int(text[6:10]), int(text[3:5]), int(text[0:2])) # dd.mm.rrrr
days.append((text, day, int(water)))
def garden(day, dry):
# podlewanie od 1.04 do 30.09 w 5., 10., 15., ... dniu bez opadów
return date(day.year, 4, 1) <= day <= date(day.year, 9, 30) and dry > 0 and dry % 5 == 0
# 4.3 symulacja: rano deszcz trafia do zbiornika, potem zużycie; brak wody = wodociąg
tank = 5000
short_days, from_mains, dry = 0, 0, 0
for text, day, water in days:
tank = tank + water
dry = dry + 1 if water == 0 else 0
use = 260 if day.weekday() == 2 else 190 # weekday(): 0 = poniedziałek, 2 = środa
if garden(day, dry):
use = use + 300
if tank < use:
short_days = short_days + 1
from_mains = from_mains + use - tank
tank = 0
else:
tank = tank - use
print("4.3", short_days, from_mains)Ł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.