Lekcja 05 · Modele
Model: autobusy na wycieczkę
Ten sam szkielet co pizza: ile „porcji” potrzeba, ile mieści się w jednym pojeździe, zaokrąglenie w górę. Inna historia, ta sama matematyka. Pół autobusu nie istnieje.
Po tej lekcji
- Wypełniasz kartę: kto jedzie, kto nie zajmuje miejsca, ile miejsc w pojeździe.
- Zapisujesz J = U − R − C + O oraz A = sufit(J / M).
- Liczysz to samo w Excelu i w funkcji Pythona; wniosek ma warunek.
Sytuacja i pytanie
Klasa 3A jedzie do muzeum. Sekretariat musi jutro podpisać zlecenie dla przewoźnika. Pytanie nie brzmi „czy wycieczka ma sens”, tylko: ile autokarów zamówić, żeby każdy, kto naprawdę wsiada, miał fotel.
Adresat: sekretariat / wychowawca. Jednostka: sztuki pojazdów.
Karta modelu: dane, założenia, parametry
| Wielkość | Symbol | Wartość | Jednostka | Skąd się wzięła | Rodzaj |
|---|---|---|---|---|---|
| Uczniowie na liście | U | 32 | osoby | dziennik | dana |
| Opiekunowie (jadą z klasą) | O | 2 | osoby | karta wycieczki | dana |
| Uczniowie jadący z rodzicami | R | 6 | osoby | zgłoszenia | dana |
| Chorzy w dniu wyjazdu | C | 0 / 2 / 4 | osoby | nie zmierzone | parametr |
| Miejsca w jednym autokarze | M | 50 | miejsca | oferta firmy | dana; wariant 25 to inna oferta |
| Osoby wsiadające do autokaru | J | U−R−C+O | osoby | wzór | wynik pomocniczy |
| Autokary do zamówienia | A | sufit(J/M) | sztuki | zaokrąglenie w górę | wynik |
Założenia — na głos
- Opiekunowie zajmują miejsca w autokarze (nie jadą osobnym autem).
- Sześć osób z rodzicami nie wsiada — ich fotele zostają wolne dla reszty.
- Chorzy nie jadą i nie zajmują miejsc. Liczby C nie znamy, więc liczymy trzy warianty.
- Bagaż, instrumenty i pudełka z kanapkami nie zabierają foteli. To założenie — w ćwiczeniu je złamiemy.
- Wszyscy wsiadający mieszczą się „po równo”; nie modelujemy, kto chce siedzieć z kim.
Przepis
J = U − R − C + O = 32 − 6 − C + 2 = 28 − C A = sufit(J / M)
Przy M = 50 nawet pełne 28 osób mieści się w jednym pojeździe. Model staje się ciekawszy, gdy oferta ma 25 albo 40 miejsc — wtedy sufit zaczyna skakać.
Liczymy trzy wartości parametru C (M = 50)
| C (chorzy) | J (jadą) | J / 50 | A (autobusy) |
|---|---|---|---|
| 0 | 28 | 0,56 | 1 |
| 2 | 26 | 0,52 | 1 |
| 4 | 24 | 0,48 | 1 |
Przy pięćdziesięciu miejscach decyzja jest twarda: jeden autokar we wszystkich trzech wariantach. To też jest wynik — parametr C tu nie wywraca zamówienia.
Inna oferta: M = 25, C = 0 → J = 28 → A = 2. Wniosek musi umieć powiedzieć obie historie.
Wniosek (oferta 50 miejsc): Jeden autokar wystarczy, o ile miejsc jest 50, jedzie najwyżej 28 osób, bagaż nie zabiera foteli i sześć osób naprawdę jedzie z rodzicami. Przy 25 miejscach i braku chorych potrzeba dwóch.
Excel
B1=32, B2=2, B3=6, B4=2 (chorzy), B5=50. B7=B1-B3-B4+B2, B8=ZAOKR.GÓRA(B7/B5;0) (albo ROUNDUP). Żeby zobaczyć trzy wartości C, skopiuj blok albo zrób tabelę wierszy.
Python — dane jako argumenty funkcji
Wzór siedzi w funkcji. Liczby wchodzą od zewnątrz; drugi wariant to drugie wywołanie, nie kopia kodu.
def ile_autobusow(uczniowie, opiekunowie, z_rodzicami, chorzy, miejsca):
jada = uczniowie - z_rodzicami - chorzy + opiekunowie
if jada <= 0:
return 0, jada
autobusy = (jada + miejsca - 1) // miejsca
return autobusy, jada
a, j = ile_autobusow(32, 2, 6, 2, 50)
print("Jadą:", j, "autobusy:", a)
# ten sam przepis, inne parametry:
a2, j2 = ile_autobusow(32, 2, 6, 0, 25)
print("25 miejsc, C=0 →", j2, "osób,", a2, "autobusy")
Sprawdź się. 51 osób i 50 miejsc. Ile autobusów?
Ćwiczenia samodzielne
- Policz A dla miejsc = 25 i C = 0, 2, 4 (kartka + Excel albo Python).
- Zmień założenie: bagaż zabiera 8 miejsc (miejsca efektywne 42). Ile autobusów przy C = 0?
- Napisz wniosek dla sekretariatu przy miejscach = 40 i C = 2.
- Dla chętnych: pętla po C w [0, 1, 2, 3, 4] i wydruk tabeli.
Odpowiedzi (dopiero po samodzielnej pracy)
- J = 28, 26, 24 → A = 2, 2, 1.
- J = 28, 28/42 → A = 1.
- J = 26, A = 1. „Jeden autokar, o ile 40 miejsc i jedzie 26 osób.”
- Porównaj z arkuszem.