Király Gyula: Programozás Quick-Basic nyelven

 

13. lecke

CIKLUSOK-3.

 

C., Tesztelős ciklusok 

A tesztelős ciklusokat akkor alkalmazzuk, ha előre nem tudjuk megmondani, hányszor kell azokat lefuttatni. Ezek a ciklusok ugyanis addig futnak, amíg valamilyen feltétel igaz (vagy nem igaz).

A futáshoz szükséges feltételek meglétét ezért minden futás előtt vagy után meg kell vizsgálni. Ha a ciklusmag előtt tesztelünk, akkor elöltesztelős, ha a ciklusmag után, akkor hátultesztelős ciklusról beszélünk.

 

1.      ELÖLTESZTELŐS CIKLUSOK

A ciklus formája:

Ciklus amíg a feltétel IGAZ

     Ciklusmag

Ciklus vége

 

Az utasítás formája:

DO WHILE feltétel

Utasítások (ciklusmag)

LOOP

 

A ciklusmagban szereplő utasítások addig hajtódnak végre, amíg a feltétel igaz (hamissá nem válik).

 

A ciklust működtethetjük addig is, amíg a kezdetben megadott feltétel hamis.

A ciklus formája:

     Ciklus amíg a feltétel HAMIS

         Ciklusmag

     Ciklus vége

 

Az utasítás formája:

                        DO UNTIL feltétel

                                    Utasítások (ciklusmag)

                        LOOP

 

A ciklusmagban szereplő utasítások addig hajtódnak végre, amíg a feltétel igazzá nem válik.

 

2.      HÁTULTESZTELŐS CIKLUSOK

A ciklus formája:

     Ciklus

         Ciklusmag

     Amíg a feltétel IGAZ

     Ciklus vége

 

Az utasítás formája:

                        DO

                                    Utasítások (ciklusmag)

                        LOOP WHILE feltétel

 

A ciklusmag addig hajtódik végre, amíg a feltétel igaz (hamissá nem válik).

 

A másik módszer:

A ciklus formája:

            Ciklus

         Ciklusmag

     Amíg a feltétel HAMIS

     Ciklus vége

  

Az utasítás formája:

                        DO

                                    Utasítások (ciklusmag)

                        LOOP UNTIL

 

A ciklusmag addig hajtódik végre, amíg a feltétel hamis (igazzá nem válik).

 

1.      feladat

Írassuk ki a számokat 20-tól 40-ig a képernyő bal oldalára!

            Megoldás:

Ez egy elöltesztelős ciklus UNTIL alkalmazásával. A 2. sorban megadtam a ciklusváltozó kezdőértékét. A 3. sorban a hamis feltételt: i nagyobb mint 40. Ezután kiíratom a ciklusváltozó értékét, majd hozzáadok 1-et. A LOOP hatásával a vezérlés újra a 3. sorra kerül, ahol a program megvizsgálja, hogy az 1-gyel megnövelt érték nagyobb-e 40-nél. Ha nem nagyobb, vagyis a feltétel hamis, újra végrehajtódik a ciklus. A folyamat addig ismétlődik, míg az i egyenlő lesz 41-gyel, ekkor az i >40 feltétel igaz lesz, ebben az esetben már a program nem hajtja végre a ciklusmag utasítását.

 

  

2. feladat

Oldjuk meg az előbbi problémát WHILE alkalmazásával!

            Megoldás:

A program egészen addig működik, amíg igaz az, hogy i értéke kisebb vagy egyenlő 40-nel. Ha a ciklusváltozó értéke meghaladja a 40-et, vagyis a feltétel hamissá válik, a program befejeződik.

 

3.      feladat

Kérjünk be két tetszőleges számot, adjuk össze őket, majd a végén kérdezzük meg, legyen-e vége!

            Megoldás hátultesztelős ciklussal:

Az egész műveletet egy ciklusba foglaltam, amely csak akkor fejeződik be, ha az utolsó kérdésre nem "i" vagy "I" a válasz. Amíg ugyanis "i" a válasz, addig a LOOP WHILE értelmében a ciklus újra és újra végrehajtódik.

 

4.      feladat

Készítsük el a következő körgyűrűt ábrázoló grafikát!

            Megoldás:

Grafikus üzemmódban megadom a kör sugarának r kezdőértékét. Ezután következik egy ciklus, amelyben az r értékét eggyel növelve addig rajzoltatok köröket, míg r értéke nagyobb nem lesz 100-nál.

A megoldás hátultesztelő ciklus, addig, míg a megadott feltétel r > 100 hamis.

 

5.      feladat

Másodperc-számláló készítése. Készítsünk olyan programot, amely egy percen keresztül 0-tól 60-ig kiírja a számokat a képernyő közepére, pirossal!

            Megoldás:

            A program a képernyő 12-ik sorába, a 36. oszlopba számokat ír ki 1 másodperces eltéréssel, egészen addig, amíg igaz az a feltétel, hogy a mp-ek száma kevesebb 61-nél. A SLEEP 1 utasítás alkalmas arra, hogy a program 1 másodpercre felfüggessze futását, így a számok 1 másodperces időközönként követik egymást.

 

 

GYAKORLÓ FELADATOK:

1.      Írasd ki a számokat 50-től 100-ig tesztelős ciklus segítségével!

 2.      Rajzolj a képernyőre piros körlapot, amelynek közepén 40 pixeles üres rész van, és a sugara 150 pixel!

 3.      Készítsd el a másodperc számlálót úgy, hogy 60-tól 0-ig számoljon!

 

 (Ugrás a Gyakorló Feladatok megoldásához)

Vissza a Tartalomhoz