6.2 Najmniejsza średnia masa

Matura maj 2025 - Matura z informatyki: arkusze krok po kroku (Python)

Zadanie 6.2 (1 pkt): obszar o najmniejszej średniej masie ładunku. Dwa słowniki zbierają sumę i liczbę ładunków dla każdego obszaru (w arkuszu: tabela przestawna albo ŚREDNIA.JEŻELI), `min(..., key=...)` wybiera obszar z najmniejszym ilorazem.

from datetime import date, timedelta

loads = []
with open("martianeum_przyklad.txt", encoding="utf-8") as f:
    next(f)  # pierwszy wiersz to nagłówek
    for line in f:
        day, area, mass, share = line.rstrip("\n").split("\t")
        # liczby z przecinkiem dziesiętnym: zamiana na kropkę przed float
        loads.append((date.fromisoformat(day), area, float(mass.replace(",", ".")), float(share.replace(",", "."))))

# 6.1 masa minerału = masa ładunku * zawartość / 100, tylko gdy zawartość >= 1%
total_mass = sum(mass for day, area, mass, share in loads)
mined = sum(mass * share / 100 for day, area, mass, share in loads if share >= 1)

# 6.2 średnia masa ładunku dla obszaru: suma i licznik w słownikach
sums, counts = {}, {}
for day, area, mass, share in loads:
    sums[area] = sums.get(area, 0) + mass
    counts[area] = counts.get(area, 0) + 1
lightest = min(sums, key=lambda area: sums[area] / counts[area])

print("6.1", round(total_mass, 1), round(mined, 4))
print("6.2", lightest)

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