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.

  • Programozási alapok
  • Saját feladat
  • Önellenőrzés
Anime tanuló a probléma, algoritmus és program feliratú tábla mellett.

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.

Anime tanuló az iskolabuszhoz siet.
A közlekedési helyzetből pontosan megfogalmazható számítási feladat készül.

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.

  1. Olvasd be a létszámot és a férőhelyet.
  2. Oszd el a létszámot a férőhellyel egész osztással.
  3. Ha marad utas, növeld az eredményt eggyel.
  4. Add meg a buszok számát.
83 utas, 40 férőhely
2teljes busz
3kimaradó utas
3szükséges busz
83 = 2 × 40 + 3. A maradék miatt még egy busz kell.

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ámBuszok
00
11
401
412
802

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?

Az algoritmus tulajdonságai a buszos példán
TulajdonságJelentésA buszos algoritmusban
Végesvéges számú lépés után befejeződikné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 kimeneteadatokból eredményt állít előlétszám, férőhely → buszok száma
Általánosegy feladatcsaládot old meg, nem egyetlen esetetbármilyen létszámra és férőhelyre működik
Helyesminden megengedett bemenetre jó eredményt ada 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).

Gyakori hiba

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.