6.3 Symulacja produkcji
Matura maj 2023 - Matura z informatyki: arkusze krok po kroku (Python)
Zadania 6.3 i 6.4 (po 3 pkt): co dzień rano dostawa trafia do zapasu, potem powstaje konfitura z dwóch owoców, których jest najwięcej, w proporcji 1:1 z całego mniejszego zapasu. Reszta czeka w chłodni do jutra. Lista `stock` to zapas, `stock.index(min(stock))` wskazuje owoc, którego dziś się nie bierze. Program wypisuje dwa pierwsze dni (jak przykład z arkusza: 211 kg i 393 kg konfitury malinowo-truskawkowej) i wyniki dla pliku przykładowego.
deliveries = []
with open("owoce_przyklad.txt") as f:
f.readline() # wiersz nagłówkowy
for line in f:
day, raspberries, strawberries, currants = line.split("\t")
deliveries.append((day, int(raspberries), int(strawberries), int(currants)))
# 6.3 i 6.4 symulacja: zapas po porannej dostawie, konfitura z dwóch owoców, których jest najwięcej
JAMS = {(0, 1): "malinowo-truskawkowe", (0, 2): "malinowo-porzeczkowe", (1, 2): "truskawkowo-porzeczkowe"}
stock = [0, 0, 0] # maliny, truskawki, porzeczki w przetwórni
times = {name: 0 for name in JAMS.values()}
kilograms = {name: 0 for name in JAMS.values()}
for day, raspberries, strawberries, currants in deliveries:
stock[0] += raspberries
stock[1] += strawberries
stock[2] += currants
smallest = stock.index(min(stock)) # tego owocu dziś nie bierzemy
pair = tuple(k for k in range(3) if k != smallest)
used = min(stock[pair[0]], stock[pair[1]]) # proporcja 1:1, cały mniejszy zapas
if day in ("01.05.2020", "02.05.2020"):
print(day, "zapas:", stock, JAMS[pair], used, "kg")
stock[pair[0]] -= used
stock[pair[1]] -= used
times[JAMS[pair]] += 1
kilograms[JAMS[pair]] += used # 1 kg konfitury = po 1 kg obu owoców
print(times)
print(kilograms)Ł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.