Ciklus

A HupWiki-ből...

Ciklus - iteráció

Az F művelet végrehajtása egy Fc műveletnek az egymás utáni ismételt végrehajtásával. Az ismételtetést egy fc feltétel szabályozza. Az iteráció másik elnevezése a ciklus (körfolyamat), ilyen értelemben szokás az fc feltételt ciklusfeltételnek, az Fc-t pedig ciklusmagnak nevezni. A feltétel jellegétől és az ellenrőzés módjától függen többfajta ciklus is értelmezhet. Ezekből a három itt legismertebb:

  • Elöltesztelő ciklus

A feltétel vizsgálata megelőzi a ciklusmag végrehajtását, ami csak akkor következik be, ha a feltétel igaz (tehát a kérdés az, hogy kell-e még ismételni). Ha az fc hamis, az F művelet készen van. Ilyen ciklusnál az ismétlések száma lehet 0 is, ez esetben az iteráció az üres tevékenységet képviseli.

 ______
|      |
|   F  |
|______|
    |
 ___|__
|     *|
|  fc  |
|______|
    |
 ___|__
|      |
|  Fc  |
|______|


  • Hátultesztelő ciklus

A feltétel vizsgálata követi a ciklusmag végrehajtását, ami csak akkor következik be, ha a feltétel hamis (tehát a kérdés az, hogy be lehet-e már fejezni). Ha az fc igaz, az F művelet készen van. Ilyen ciklusnál az ismétlések száma legalább 1.

 ______
|      |
|   F  |
|______|
    |
 ___|__
|      |
|  fc  |
|_____*|
    |
 ___|__
|      |
|  Fc  |
|______|


  • Növekményes ciklus

Egy intervallum minden elemén, egyesével végiglépkedve, minden értékre egyszer végrehajtja a ciklusmagot. A haladás iránya lehet:

  • a legkisebb értéktől a legnagyobbig növekvően
  • a legnagyobb értéktől a legkisebbig csökkenően

a közben felvett értékeket egy változó, a ciklusváltozó tárolja.

Jelölje Cv a ciklusváltozót, IKezd az intervallum legkisebb, IVeg pedig a legnagyobb értékét.

 ________________
|                |    
|         F      |
|________________|
          |
 _________|______
|               *|
|Cv:=IKezd,IVeg  |
|________________|
          |
 _________|______
|                |
|        Fc      |
|________________|


 __________________
|                  |
|         F        |
|__________________|
          |
 _________|________
|                * |
|Cv:=IKezd,IVeg,-1 |
|__________________|
          |
 _________|________
|                  |
|        Fc        |
|__________________|