Lekcja 02 · Fundamenty
Model: pizza na imprezę klasy
Wraca pizza z lekcji 1. Teraz rozpisujemy kartę modelu i liczymy: kartka, Excel i funkcja w Pythonie — dane wchodzą jako argumenty.
Po tej lekcji
- Odpowiadasz na pytanie: ile pizz zamówić, z jawnymi założeniami.
- Wskazujesz w karcie, co jest daną, założeniem i parametrem.
- Liczysz to samo w Excelu i w funkcji Pythona; drugi wariant to drugie wywołanie.
Sytuacja i pytanie
Andrzejki klasy 3A. Skarbnik dzwoni do pizzerii po południu. Nie chodzi o „czy impreza będzie fajna”, tylko o jedną decyzję zakupową: ile całych pizz wpisać w zamówienie, żeby starczyło kawałków, a nie zostawić wychowawczyni z gołą zgadywanką.
Adresat: wychowawczyni i skarbnik. Jednostka wyniku: sztuki pizz (nie złote — ceny weźmiemy najwyżej w ćwiczeniu).
Karta modelu: dane, założenia, parametry
| Wielkość | Symbol | Wartość | Jednostka | Skąd się wzięła | Rodzaj |
|---|---|---|---|---|---|
| Uczniowie | U | 30 | osoby | lista klasy | dana |
| Opiekunowie (też jedzą) | O | 2 | osoby | organizacja imprezy | dana |
| Nie jedzą pizzy (dieta) | N | 5 | osoby | zgłoszenia | dana; można ruszyć jako parametr |
| Kawałki na jedzącą osobę | k | 3 | kawałki/osobę | umowa klasy | założenie / parametr |
| Kawałki w jednej pizzy | m | 8 | kawałki/szt. | oferta pizzerii | dana |
| Osoby, które jedzą | J | U+O−N | osoby | wzór | wynik pomocniczy |
| Kawałki potrzebne | K | J×k | kawałki | wzór | wynik pomocniczy |
| Pizze do zamówienia | P | sufit(K/m) | sztuki | zaokrąglenie w górę | wynik |
Założenia — na głos
- Opiekunowie jedzą na tych samych zasadach co uczniowie.
- Pięć osób na diecie nie bierze ani kawałka; ich miejsc przy stole nie „oddajemy” innym w tym modelu.
- Każda jedząca osoba bierze dokładnie k kawałków — ani mniej, ani więcej.
- Pizza przychodzi pokrojona na m równych kawałków; nie dzielimy pizzy na pół sztuki w zamówieniu.
- Nie modelujemy wegetarian, dopłat za dowóz ani tego, że ktoś się spóźni.
Przepis
J = U + O − N → K = J × k → P = sufit(K / m)
Sufit (zaokrąglenie w górę) jest tu obowiązkowy: pół pizzy w ofercie nie istnieje. W Pythonie bez biblioteki: (K + m - 1) // m. W Excelu: ZAOKR.GÓRA albo ROUNDUP.
Liczymy krok po kroku (wariant podstawowy: k = 3)
- J = 30 + 2 − 5 = 27 osób je.
- K = 27 × 3 = 81 kawałków potrzeba.
- 81 / 8 = 10,125, więc P = 11 pizz.
- 11 × 8 = 88 kawałków na stole. Zapas z sufitu: 88 − 81 = 7 kawałków. To nie „dokładnie się zgadza” — to reszta, którą wniosek ma nazwać.
Wniosek: Zamówcie 11 pizz, o ile 27 osób je, każda bierze 3 kawałki i pizza ma 8. Zostanie około 7 kawałków zapasu z zaokrąglenia w górę. Model nie widzi wege ani tego, że ktoś weźmie czwarty kawałek.
Excel — te same komórki co karta
Kolumna A: nazwy, kolumna B: liczby. B1=U, B2=O, B3=N, B4=k, B5=m.
=B1+B2-B3 → jedzą (J) =B6*B4 → kawałki (K) (gdy J jest w B6) =ZAOKR.GÓRA(B7/B5;0) → pizze (P)
Parametr k trzymaj w B4, nie wpisuj trójki w środku formuły. Wtedy wariant „2 kawałki na osobę” to zmiana jednej komórki.
Python — dane jako argumenty funkcji
Nie wpisujemy 30, 2, 5 w środku wzoru. Funkcja dostaje dane i parametry, a my wywołujemy ją drugi raz przy innym k.
def ile_pizz(uczniowie, opiekunowie, nie_jedza, kawalki_osoba, kawalki_pizza):
jedza = uczniowie + opiekunowie - nie_jedza
kawalki = jedza * kawalki_osoba
pizze = (kawalki + kawalki_pizza - 1) // kawalki_pizza
return pizze, jedza, kawalki
n, j, k = ile_pizz(30, 2, 5, 3, 8)
print("Jedzą:", j, "kawałki:", k, "pizze:", n)
# ten sam przepis, inny parametr:
n2, _, k2 = ile_pizz(30, 2, 5, 2, 8)
print("Gdy 2 kawałki na osobę:", k2, "kawałków →", n2, "pizz")
Przy k = 2: J nadal 27, K = 54, P = 7. Wniosek się zmienia — dlatego k jest parametrem, a nie „oczywistą trójką”.
Sprawdź się. 27 osób × 3 kawałki, pizza 8. Ile pizz?
Ćwiczenia samodzielne
- Policz pizze, gdy każdy je 2 kawałki (reszta danych ta sama).
- 4 wegetarian chce osobnych pizz (też 8 kawałków, 3 na osobę). Ile pizz wege i ile zwykłych, jeśli wege są w grupie „jedzą”, ale ich kawałki nie mogą iść z mięsem? Zapisz założenia.
- Pizzeria sprzedaje też pizzę 12-kawałkową. Przy 3 kawałkach na osobę i 27 jedzących: ile sztuk 12-kawałkowych? Porównaj koszt, jeśli 8-kawałkowa = 32 zł, 12-kawałkowa = 44 zł.
- Excel i Python dla wariantu z ćwiczenia 1 — te same trzy liczby.
Odpowiedzi (dopiero po samodzielnej pracy)
- Kawałki = 54, pizze = 7.
- Wege: 4×3=12 → 2 pizze. Zwykłe: 23×3=69 → 9 pizz. Razem 11, ale podział inny. Założenie: wege nie jedzą z mięsnej.
- 81/12 = 6,75 → 7 sztuk. 7×44=308 zł vs 11×32=352 zł. Przy tych cenach większa pizza taniej; sprawdź, czy 7×12 pokrywa 81 (84 tak).
- 54, 7, zapas 2 kawałki.