Keresés Kategóriák Kedvencek

Programozás Pascalban: Eljárások használata - 14. rész, Rekurzív alprogramok - 1

Készítette: FlamingClaw
2010. május 18. 12:28:15 - 3183 megtekintés
  • Ebben a tippben a rekurzió fogalmát tisztázzuk, illetve azt, hogy milyen elvárásoknak kell megfelelnie egy rekurzív rutinnak. Rekurzív eljárásokat készítünk, és megfigyeljük hogyan működnek.
  • Amire szükségünk lesz

    Pascal
  • Rekurzív alprogramok - 1

    Az alprogramokat rutinnak is szokás nevezni. Egy alprogramot rekurzívnak nevezzük, ha saját magát hívja meg. Kétféle rekurzió létezik: közvetett és közvetlen. A közvetlen az, amikor a rutin közvetlenül saját magát hívja meg, tehát önrekurzió. Ilyenkor az eljárás deklarációs részében az eljárás a saját azonosítójára hivatkozik és újból betöltődik a verembe.
    A közvetett rekurziónál a rutin közvetve hívja meg saját magát egy másik rutinon keresztül (kölcsönös rekurzió).
    Egy feladat akkor rekurzív, ha a feladat megoldásához vezető lépések során találunk egy egyszerűbb esetet, melynek során a megoldás magától értetődik. Vagy ha találunk egy olyan ismételt egyszerűsítési folyamatot, amelynek alapján eljuthatunk a legegyszerűbb esethez. Minden egyes lépésnél felfételezzük, hogy a következő lépésnek megvan a megoldása.
    Egy rekurzív feladathoz szükséges valami, ami a hívások során állandóan változik és elvileg elérhet egy küszöböt. Be kell állítanunk egy leállító (bázis) feltételt, ha ezt elérte, nem történik több rekurzív hívás. Végtelen rekurziót nem lehet előállítani, mert előbb-utóbb megtelik a verem. Kell még egy olyan utasítás, ami ezt a „valamit” a küszöb felé viszi. Minden rekurzív feladatnak létezik iteratív megoldása is.
  • Címkék:

    programozás pascal rekurzió rekurzív eljárások alprogramok
shillie - 12 éve, 6 hónapja

Nekem nagyon bejön ez a pascal szívesen tanulom. Most elkezdtem mellette a C#-ot tanulni,mert továbbtanulásnál szinte biztos hogy kérni fogják hogy valamilyen C nyelvet tudjak, és ezt ajánlották. Egyelőre még nagyon az elején tartok és lassan haladok mert elég bonyolult nekem. Sajnálom hogy nem jut időd videókat készíteni bár megértem hogy a munka fontosabb...

FlamingClaw - 12 éve, 6 hónapja

A Free pascal jóval meghaladja elődje képességeit, itt több mindent fel lehetne említeni, mint például, a több platformos tulajdonság (linux, windows, mac, stb), több standard modul, és még lehetne sorolni, ja, és a mai napig fejlesztik, sőt, rá alapul a Lazarus fejlesztői környezet is... Szóval, nem hátrány ha a Free pascalt használod. Én használom a Free pascalt is és a Turbo Pascalt is a Delphi és a Lazarus mellett, mikor melyik kell, vagy ha rajtam mullik akkor még mindig context-en keresztül csinálom meg amit kell. Nekem bejött. Bár mostanság nincs időm videókat készíteni, pedig lenne még miről, új munkahely kevesebb szabadidő, így egyik majdnem kizárja a másikat...

shillie - 12 éve, 6 hónapja

Hello,
nagyon jók a videóid szinte mindent amit tudok pascalbol azt a videóidból tanultam meg, ugyanis a suliban nem igazán magyarázzák el az anyagot csak leadják szóval köszönöm. Én free pacalban írom meg a programokat (illetve ConText- ben írom meg a forráskódot mert abban átláthatóbb valamint számtalan előnye van), az lenne a kérdésem hogy a FreePascal mennyiben külömbözik a Turbo Pascaltol?