Programozási alapok › Probléma, algoritmus és program
9–10. osztály · kiegészítő lecke
Probléma, algoritmus és program
Egy osztálykirándulás buszigényét számolod ki: pontosítod a feladatot, lépésekre bontod a megoldást, majd kipróbálsz egy rövid programot.

A lecke végére
- megadod a bemeneti adatokat és a kívánt eredményt
- egyértelmű, véges lépéssort írsz
- különböző bemenetekkel teszteled a programot
Amit már tudsz
- pozitív egész számokkal végzel alapműveleteket
- ismered a bemenet és kimenet fogalmát
Pontosítsd a problémát
Egy buszra 40 utas fér. Hány busz kell 83 résztvevőnek? A bemenet a résztvevők száma és a férőhely. Az eredmény a szükséges buszok egész száma. A férőhely legyen pozitív, a létszám legalább nulla.

Tervezd meg az algoritmust
Az algoritmus véges, egyértelmű lépésekből álló eljárás egy feladatosztály megoldására. A hatékonyság fontos minőségi szempont; egy lassú, de helyes eljárás is lehet algoritmus.
- Olvasd be a létszámot és a férőhelyet.
- Oszd el a létszámot a férőhellyel egész osztással.
- Ha marad utas, növeld az eredményt eggyel.
- Add meg a buszok számát.
Valósítsd meg programként
A program egy vagy több algoritmus megvalósítása egy programozási nyelven. A futtatáshoz fordításra, értelmezésre vagy ezek kombinációjára lehet szükség; a részletek nyelvenként és környezetenként eltérnek.
Ez a Python 3-példa rögzített bemenettel indul. Az egész osztás jele //, a maradékképzésé %.
letszam = 83ferohely = 40buszok = letszam // ferohelyif letszam % ferohely != 0: buszok += 1print(buszok)Várt kimenet: 3. Az utasítások önmagukban nem igazolják a helyességet: próbákra is szükség van.
Tesztelj határesetekkel
Próbáld ki más létszámokkal
A férőhely maradjon 40. Futtatás előtt jósolj eredményt a 0, 1, 40, 41 és 80 létszámra. Utána hasonlítsd össze a program kimenetével.
Előbb próbáld meg, utána ellenőrizd
| Létszám | Buszok |
|---|---|
| 0 | 0 |
| 1 | 1 |
| 40 | 1 |
| 41 | 2 |
| 80 | 2 |
Felidézés: melyik lépés tartozik a probléma megértéséhez, és melyik a teszteléshez?
Mitől algoritmus az algoritmus?
| Tulajdonság | Jelentés | A buszos algoritmusban |
|---|---|---|
| Véges | véges számú lépés után befejeződik | négy lépés, utána kész |
| Egyértelmű | minden lépés pontosan meghatározott | „egész osztás”, „ha marad utas” – nincs „körülbelül” |
| Van bemenete és kimenete | adatokból eredményt állít elő | létszám, férőhely → buszok száma |
| Általános | egy feladatcsaládot old meg, nem egyetlen esetet | bármilyen létszámra és férőhelyre működik |
| Helyes | minden megengedett bemenetre jó eredményt ad | a tesztek a határeseteken is jók |
Ellenőrizd a munkádat
Nézd át a tesztjeidet és a programot, és válaszolj a kérdésekre a leírás visszaolvasása nélkül.
- Pontosan meg tudod nevezni a bemenetet, a kimenetet és a feltételeket (például a férőhely pozitív)?
- Az algoritmusod minden lépése egyértelmű, és véges sok lépés után befejeződik?
- A program a 0, 1, 40, 41 és 80 létszámra is a várt eredményt adja?
- Ki tudod mondani, mit csinál a
//és a%jel? - Ki tudsz találni egy olyan bemenetet, amelyre még nem tesztelted a programot?
A felidézés kérdésének megoldása
A probléma megértéséhez az 1. lépés tartozik: a bemenet (létszám, férőhely), a kimenet (buszok száma) és a feltételek (pozitív férőhely, nemnegatív létszám) pontos megfogalmazása. A teszteléshez a 4. lépés: előre megjósolt eredmények összevetése a program kimenetével, különösen a határeseteken (0, pontosan 40, eggyel több, mint 40).
Sokan csak egy „szép” bemenettel (például 83) próbálják ki a programot. A hibák többnyire a határeseteken bújnak meg: pontosan tele busz, egyetlen utas, nulla utas. Mindig ezeket is teszteld!
A témát a Programozási alapok oldalon folytathatod.

