Utasításokról részletesebben:

Az algoritmus vezérlése

 

Minden programnak két fo komponense van: az adatok és a rajtuk végzett muveletek. Az adatok adat-összetételi szabályokkal összetett adatokká tehetok. A muveletek is lehetnek összetettek. Elemi muveletekbol muvelet-összetételi ( muveletképzési ) szabályokkal összetett muveletek képezhetok.

Az algoritmusnak, mint muveletnek, az egyik legfontosabb komponense az az eloírás, amelyik megmondja, hogy az egyes elemi lépések végrehajtása után melyik elemi lépés végrehajtása következik. Ezt az eloírást az algoritmus vezérlésének nevezzük.

A vezérlési mód tehát azt fejezi ki, hogy egyszeru muveletekbol hogyan építünk fel összetett muveletet.

 

Négy fo vezérlési mód van:

bulletSzekvenciális vezérlés
bulletSzelekciós vezérlés
bullet
bulletEgyszeru
bulletTöbbszörös
bulletEset-kiválasztásos
bulletIterációs vezérlés
bullet
bulletKezdofeltételes
bulletVégfeltételes
bulletSzámlálós
bulletEljárás- és függvényhívás, mint vezérlés

  

Szekvenciális Vezérlés:

Véges sok adott muveletnek egy rögzített sorrendben történo végrehajtását írja elo. Az algoritmus tervezésénél a problémát részproblémákra bontjuk, és megadjuk, hogy a részalgoritmusokat hogy kell összerakni. A P probléma megoldása úgy áll össze, hogy rendre P1...Pn problémák megoldásait egymás után végre kell hajtani. Ha P probléma már nem bontható tovább, akkor már elemi- vagy levélszintrol beszélünk.


Az alábbi ábrán látható P11 probléma már elemi szintnek felel meg.

 

Szelekciós Vezérlés:

A szelekciós vezérléssel azt írjuk elo, hogy véges sok elore megadott muvelet közül melyiket hajtsuk végre egy adott feltétel alapján.

Egyszeru Szelekciós Vezérlés:

Csupán két alternatív muvelet van.

  1. F feltétel teljesülésekor A1, máskülönben A2 alternatíva hajtódik végre.

 

bullet

IF F THEN A1 ELSE A2;

  1. Ha F teljesül, akkor A1 kerül végrehajtásra. Ha nem teljesül, akkor a muvelet hatástalan.

IF F THEN A1;

Többszörös Szelekciós Vezérlés:

  1. F1, F2, ... ,Fn feltételek, melyeket balról jobbra értékelünk ki. Az elso igaz aktuális értéku Fi feltételhez tartozó Ai alternatíva fog végrehajtódni, ahol i=1...n. Ha nincs olyan ‘i’, amelyre Fi igaz, akkor a muvelet hatástalan.
  2. IF F1 THEN A1
    IF F2 THEN A2
    IF Fn THEN An
  3. Ha nincs olyan "i", amelyre Fi igaz,akkor a B alternatíva (az else ág ) fog végrehajtódni.

 

Eset-kiválasztásos Szelekciós Vezérlés

bullet
bulletK - Kifejezés ( szelektor kifejezés )

H1, H2, ..., Hn - Kiválasztó halmazok

A1, ..., An - Alternatívák

  1.  
  2. Eloször meghatározzuk a K kifejezés aktuális értékét, majd balról jobbra megkezdjük a kiértékelést. Ha a K kifejezés értéke a Hi halmazba esik ( i=1...n ), akkor az Ai alternatíva kerül végrehajtásra. Ha nincs ilyen "i", akkor a muvelet hatástalan.
  3.  
  4. Ha Hi nem teljesül, akkor a B - ELSE - ág hajtódik végre.
bullet
bullet
bullet
bullet
bullet
bullet

 CASE K OF
H1 : A1
H2 : A2
Hn : An
ELSE B
END;

Ismétléses Vezérlés

Olyan vezérlési eloírás, amikor egy adott muveletnek valamilyen feltételtol függo, ismételt végrehajtását írjuk elo. A vezérlés eredménye egy ciklus. Az adott muveletet a ciklusban ciklusmagnak nevezzük.

 

Feltételtol függoen a következo formák vannak:

  1. Kezdofeltételes ( WHILE DO )
  2. Végfeltételes ( REPEAT UNTIL )
  3. Számlálós ( FOR ciklus )

 

Kezdofeltételes ( WHILE - DO )
Legyen F logikai kifejezés ( feltétel ), M pedig egy tetszoleges muvelet.

Az F feltételbol és az M muveletbol megalkotott Kezdofeltételes Ismétléses Vezérlés azt jelenti, hogy:

 

  1. Kiértékeljük az F feltételt
  2. Ha F hamis, akkor befejezodött a muvelet, ha F igaz, akkor a 3. pont következik.
  3. Hajtsuk végre az M muveletet, utána az 1. pont jön.

 

 

Folyamatábra:

Nevezik még Felülrol Vezérelt,vagy felülszervezett ciklusnak

Végfeltételes Ismétléses Vezérlés( REPEAT - UNTIL )

Legyen adott F feltétel ( logikai kifejezés ), valamint M muvelet. Ezzel a vezérléssel a következo tevékenységet írjuk elo:

  1. Hajtsuk végre az M muveletet.
  2. Értékeljük ki az F feltételt.
  3. Ha F igaz, akkor befejeztük a muveletet. Ha F hamis, akkor vissza az 1. ponthoz.

 

Folyamatábrája:

 

Számlálásos Ismétléses Vezérlés ( FOR )

Ha egy olyan ismétléses vezérlést írunk elo, amikor a ciklusmagot végre kell hajtani egy intervallum minden elemére. Rendelkezésünkre áll egy speciális változó, a ciklusváltozó, amely az intervallum elemeit rendre felveszi.

Legyen M egy tetszoleges muvelet, "i" a ciklusváltozó, "a" és "b" az intervallum két végpontja.

A, b, i sorrendi típusúak, azaz csak Smallint, Longint, Int, vagyis Integer lehet.

Balról jobbra:

 

Jobbról balra:

 

 

Szabályok:
A ciklusváltozó sorrendi típusú (lokális változó, más célokra nem használjuk).

  1. Kezdőérték és végérték csak egyszer értékelodik ki.
  2. Nem szerepelhet értékadó utasítás bal oldalán a ciklusváltozó, ill. az intervallum végpontjaiban szereplo változó.
  3. Nem vehetnek részt olyan eljárásokban, függvényekben sem, ahol az értékük változhat.
  4. Ciklusváltozó nem vesz fel az intervallum bal végpontjánál kisebb, és a jobb végpontjánál nagyobb értéket.
  5. A ciklus lefutása után a ciklusváltozó értéke nincs definiálva.