Algoritmus-leíró eszközök

 

Folyamatábra

A folyamatábra segítségével a program folyamatát részletesen ábrázolni tudjuk.

 

Minden folyamatábra egy START szimbólumot tartalmaz. A START a kezdőszimbólum, ebből pontosan egy van minden folyamatábrában.
A STOP a folyamatábra záró szimbóluma. Ebből elvileg csak egy van, de többet is lehet használni.
Az értékadás szimbóluma.
Ki: output. A megadott kifejezés eredménye kiíródik a képernyőre.
Be: input. A megadott változók értékeit a program sorban bekéri a billentyűzetről.
Feltételes elágazás. Ha a megadott feltétel igaz, akkor az IGAZ ágon kell továbbhaladni. Ha a feltétel hamis, akkor a HAMIS ágon. Mindig két ág van. A rombusz belsejébe egy egyértelműen eldönthető logikai kifejezést kell írni.
Számlálós ciklus. A ciklusváltozó (i) felveszi a kezdőértéket, amennyiben ez kisebb vagy egyenlő, mint a végérték, az ismétlés ágon kell haladni. Mielőtt visszatérnénk a szimbólumba, a ciklusváltozó értéke automatikusan 1-gyel nő. Az ismétlés ágon kell elhelyezni a ciklusmag utasításait. Amennyiben a ciklusváltozó értéke meghaladja a végértéket, a ciklus futása befejeződik, és a másik ágon folytatódik a program végrehajtása.

Nem csatlakozó folyamatok (nem szimbólum)

Folyamatok csatlakozási pontja (nem szimbólum)

Algoritmus megszakítása egy ponton
Algoritmus folytatása egy ponttól

vissza

Struktogram

Dobozolós módszer. Csak strukturált algoritmusok írhatók le segítségével. Hátrány, hogy előre kell dönteni a téglalap méretéről.

Az értékadás szimbóluma.
Input. A megadott változók értékeit a gép sorban bekéri a billentyűzetről.
Output. A megadott kifejezés eredménye kiíródik a képernyőre.
Feltételes elágazás. A megadott feltétel igaz értéke esetén a jobb oldali rész-blokkba zárt utasításblokk hajtódik végre. "Nem" esetén a bal oldali blokk utasításai hajtódnak végre. Az Igen és a Nem ágak felcserélhetők, ezért mindig jelölni kell, melyik melyik.
Számlálós ciklus.
Előltesztelős ciklus. Amíg a feltétel igaz, addig hajtja végre a ciklusmagot.
Hátultesztelős ciklus.

vissza

Leíró nyelv

Nincsenek szigorúan kötött szabályok, mivel nem egységes a kódrendszere. Nyelvi eszközökkel, mondatszerűen írjuk le a program-szerkezetet. Deklarációnál felsoroljuk, melyik változó, milyen típusú.

ALGORITMUS KEZD AKEZD
... ...
ALGORITMUS VÉGE AVÉGE
Értékadás v:=érték
Kiíratás ki: kifejezés
Beolvasás be: változólista
Elágazás HA feltétel AKKOR ... HVÉGE
Számlálós ciklus CIKLUS cv:=ké-től vé-ig ... CVÉGE
Előltesztelős ciklus

CIKLUS AMÍG feltétel ...

CVÉGE

Hátultesztelős ciklus

CIKLUS ...

AMÍG feltétel

 

Legfontosabb fogalmak:

folyamatábra, értékadás, input, output, számlálós ciklus, ciklusváltozó, struktogram, előltesztelős ciklus, hátultesztelős ciklus, leíró nyelv

Kérdések, feladatok:

Hasonlítsd össze a folyamatábra és a struktogram elemeit!

Melyik az a folyamatábra-szimbólum, amely csak egyszer fordul elő az ábrán?

Hogyan ábrázoljuk a ciklusokat folyamatábrával?

Hogyan működik a számlálós ciklus?

Mi a különbség az elől- és a hátultesztelős ciklusok között?

Struktogram esetén miből tudjuk, hogy értékadásról van szó?

Hogyan írjuk le leíró nyelvvel a feltételes elágazást?

Gyakorlati feladatok:
Feladat1: Egy osztályban 27 tanuló érettségizett. Olvassuk be a tanulók egyéni átlagát! Számítsuk ki úgy az osztályátlagot, hogy az 1,5-nél gyengébben teljesítőket kihagyjuk!
Megoldás folyamatábrával!
 
Feladat 2: Tetszőleges egyismeretlenes egyenlet megoldása: AX+B=0

Megoldás folyamatábrával!

DEKLARÁCIÓK
A,B,X: Valós
KEZD
  BE: A,B
  HA A=0 AKKOR
    KI: ’Hibás bemenő A’
  KÜLÖNBEN
    KI: ’X=’,-B/A
VÉGE.

 

Feladat 3: Két elem cseréje:

DEKLARÁCIÓK:
A,B,C: Típus
KEZD
  BE: A,B
  C:=A
  A:=B
  B:=C
VÉGE.

Feladat 4: Két szám legnagyobb közös osztója

Megoldás folyamatábrával!

A nagyobbik számot csökkenteni kell a kisebbikkel, és a kapott értékre át kell írni. Ezt addig kell folytatni, amíg egyenlő számot nem kapunk. Ez az érték a két szám legnagyobb közös osztója.

Pl.
27/21
27        21
6          21
6          15
6          9
6          3
3          3


DEKLARÁCIÓK
  A,B: Egész
KEZD
  BE: A,B
  HA (A<=0) OR (B<=0) AKKOR
    KI: ’Hibás bemenő adatok!’
  KÜLÖNBEN
    CIKLUS amíg A<>B
      HA A>B AKKOR
        A:=A-B
      KÜLÖNBEN
        B:=B-A
    CVÉGE
    KI: ’A közös nevezőjük:’, A
  HAVÉGE
VÉGE.

Feladat 5. Másodfokú egyenlet megoldása

Megoldás folyamatábrával!

Önálló feladatok : A megoldás folyamatábrával, struktogrammal és leírónyelven is elkészítendő.

  1. Adott A[n,m] matrix. keressük meg a mátrixnak azr az elemét, amelyik a legtöbb sorban előfordul.
  2. Készíts programot a háromszög területének kiszámítására, ha adott
    • a három oldal
    • két oldal és egy szög
    • egy oldal és két szög
  3. Határozd meg egy természetes szám osztóinak összegét.
  4. Egy bankszámlára egymás után érkeznek a befizetések előre nem tudjuk hány). Állapítsuk meg, honnan jött a legnagyobb befizetés. Mekkora volt az átlagos befizetés?