Előszó
Programozási tételekkel Programozási alapismeretek órán már találkozghattunk. Bár Algadaton kevésbé sematikus feladatokat oldunk meg, érdemes lehet legalább futólagosan megvizsgálni, hogy az egyes tételek hogyan is néznének ki Flowgorithmben.
Előljáróban három megjegyzést kell megejtenem:
- A FELTÉTEL és MŰVELET helyettesítő szövegként működnek. Ezek tartalma feladatonként változik.
- 1-től indexelünk, de a tömbök továbbra is 0-tól indexelődnek, ezért
- egy tömb
i. elemére való rákérdezésének ökölszabálya, hogy azi-1-edik elemre hivatkozunk
- egy tömb
- A Flowgorithm nem lusta kiértékeléssel dolgozik (helyette egy feltétel minden eleméről eldönti, hogy igaz-e), emiatt
- egy sima eldöntésnél például, ha az utolsó elem ami megfelelő, akkor hibával tér vissza a program, mivel az utolsó elemnél
i = i + 1, majd a ciklus vizsgálná, hogy erre azi + 1. elemre igaz-e a feltétel, azonban nincs ilyen indexű elem, kimentünk a tömbből - ennek orvoslására a ciklusainkat
i <= nhelyetti < n-ig futtatjuk,- emiatt viszont az utolsó elemet nem vizsgáljuk meg, ennek orvoslására
- az
iésnkapcsolat vizsgálata helyett a feltételt kérdezzük meg
- egy sima eldöntésnél például, ha az utolsó elem ami megfelelő, akkor hibával tér vissza a program, mivel az utolsó elemnél
Összegzés
Algoritmus
Változó
i: Egész
össz := 0
Ciklus i=1-től elemszám-ig
össz := össz + elemek[i]
Ciklus vége
Megszámolás
Algoritmus
Változó
i: Egész
db := 0
Ciklus i=1-től elemszám-ig
Ha T(elemek[i]) akkor db := db + 1
Ciklus vége
Maximumkiválasztás
Algoritmus
Változó
i: Egész
maxind := 1
Ciklus i=2-től elemszám-ig
Ha elemek[i] > elemek[maxind] akkor
maxind := i
Elágazás vége
Ciklus vége
Eldöntés
Algoritmus
Változó
i: Egész
i := 1
Ciklus amíg i <= elemszám és nem T(elemek[i])
i := i + 1
Ciklus vége
van := i <= elemszám
Mind eldöntés
Algoritmus
Változó
i: Egész
i := 1
Ciklus amíg i <= elemszám és T(elemek[i])
i := i + 1
Ciklus vége
mind := i > elemszám
Kiválasztás
Algoritmus
ind := 1
Ciklus amíg nem T(elemek[ind])
ind := ind + 1
Ciklus vége
Keresés
Algoritmus
ind := 1
Ciklus amíg ind <= elemszám és nem T(elemek[ind])
ind := ind + 1
Ciklus vége
van := ind <= elemszám
Másolás
Algoritmus
Változó
i: Egész
Ciklus i=1-től elemszám-ig
fvelemek[i] := f(elemek[i])
Ciklus vége
Kiválogatás
Algoritmus
Változó
i: Egész
db := 0
Ciklus i=1-től elemszám-ig
Ha T(elemek[i]) akkor
db := db + 1
kivindexek[db] := i
Elágazás vége
Ciklus vége