C A C nyelv utasításai
Ismétlés
Ismétlés
Ciklusutasítások A programozási nyelveken bizonyos utasítások automatikus ismétlést biztosító programszerkezetet iterációnak vagy ciklusnak (loop) nevezzük. Ez az ismétlés mindaddig tart, amíg az ismétlési feltétel igaznak bizonyul. A C nyelv háromféle ciklusutasítást tartalmaz, melyek formája: (A for utasítás esetén az opt index arra utal hogy a megjelölt kifejezések használata opcionális (nem muszáj megadni).)
Ciklusutasítások A ciklusokat csoportosíthatjuk a vezérlőfeltétel kiértékelésének helye alapján. Azokat a ciklusokat amelyeknél az utasítás a végrehajtása előtt került feldolgozásra a vezérlőfeltétel, előltesztelő ciklusnak nevezzük. Ezeknél a ciklus következő iterációja (ismétlődése) csak akkor hajtódik végre, ha a feltétel igaz (nem nulla). A while és a for előltesztelő ciklusok. Ezzel szemben a do ciklus legalább egyszer mindig lefut, hisz a vezérlő feltétel ellenőrzése az utasítás végrehajtása után történik. Ezt nevezzük hátultesztelő ciklusnak. Vannak esetek amikor szándékosan vagy véletlenül olyan ciklust hozunk létre melynek vezélőfeltétele soha nem lesz hamis. Ezeket a ciklusokat végtelen ciklusnak nevezzük.
A while ciklus A while ciklus mindaddig ismétli a hozzá tartozó utasítást (a ciklus törzsét) amíg a vizsgált kifejezés (vezérlőfeltétel) értéke igaz (nem nulla). A vizsgálat mindig megelőzi az utasítás végrehajtását. (előltesztelő ciklus)
A while ciklus szemléltetésére a blokkdiagramon
while ciklus - programok Írjunk programot ami bekér egy egész számot, és kiírja annyiszor hogy „hello”, amennyi a bekért szám értéke! Írjunk programot ami kiszámolja az első n egész szám összegét! (K:106.o) Írjunk programot ami a standard inputját átmásolja a standard outputra! (2_10.c) Írjunk programot, amely egész számokat olvas be a billentyűzetről mindaddig, amíg 0-t nem gépelünk, és közben minden beolvasott számról eldönti, hogy páros-e vagy páratlan! (2_16.c) Írjunk programot amely meghatározza két egész szám legnagyobb közös osztóját! (2_17a.c, 2_17b.c)
A for ciklus A for utasítást általában akkor használjuk, ha a ciklusmagban megadott utasítást adott számszor kívánjuk végrehajtani. A for utasítás valójában a while utasítás speciális alkalmazása, így a fenti for ciklus minden további nélkül átírható while cikklussá.
A for ciklus szemléltetésére a blokkdiagramon
A for ciklus - programok Írjunk programot ami kiírja az első 10 természetes számot és azok négyzetét. (2_9.c) Írjunk programot ami kiírja az első n egész szám összegét! (K: 110.o - a,b,c) 3. Írjunk programot, amely kiszámítja egy 0 és 12 közötti egész szám faktoriálisát!(Azért csak ekkoráét, mert a 12 faktoriálisa még tárolható egy unsigned long típusban.)(2_14.c) Írjunk programot, amely kiszámítja a jól ismert Fibonacci-sorozat n-edik elemének értékét, ahol n egy nem túl nagy természetes szám!(2_15a.c, 2_16b.c) Írjunk programot, ami megadja egy billentyűzetről beolvasott természetes szám prímtényezős felbontását. (2_19.c)
A do-while ciklus A do-while ciklus futása során mindig az utasítás végrehajtását követi a kifejezés kiértékelése. (hátultesztelő) Így a ciklus törzse legalább egyszer mindig végrehajtódik. Ha a kifejezés értéke igaz (nem 0) akkor új iteráció (ismétlődés) kezdődik, míg hamis (nulla) érték esetén a ciklus befejezi működését. 2_20.c, 2_23.c, K:112.old
A do-while ciklus szemléltetésére a blokkdiagramon
A do-while ciklus - programok Írjunk programot ami kiírja az első n egész szám összegét! (K:112.old) Írjunk programot, ami egész számokat kér be míg nullát nem gépelünk, majd kiírja az átlagukat. Írjunk programot ami megszámolja a beírt szövegben a kisbetűs karaktereket! (2_20.c) 2_23.c
A break és a continue utasítások Vannak esetek amikor egy ciklus szokásos működésébe közvetlenül be kell a avatkoznunk. Ilyen feladat például, amikor adott feltétel teljesülése esetén ki kell ugrani a ciklusból, vagy amikor a ciklus végrehajtását a következő iterációval (ismétlődéssel) kívánjuk folytatni. A legtöbb programozási nyelv a goto utasítás használatát javasolja. A C nyelv azonban rendelkezik külön utasításokkal ezen feladatok elvégzésére. A break és a continue utasítások segítségével kiléphetünk a ciklusból illetve a következő iterációra ugorhatunk a cikluson belül.
A break és a continue utasítások
A break és a continue - programok Írjunk programot, ami bekér egy egész számot, majd addig számol a bekért szám felétől visszafelé amíg nem talál egy egész osztót a számhoz. Írjunk programot, ami kiírja 1től 20ig a páros számokat úgy hogy átugorja a páratlan számokat. Írjunk programot, ami 1től kezdve kiír minden számot ami nem osztható 3mal. Írjunk programot ami addig kér be egész számokat, amíg a bekért szám nem osztható 17el. Használjunk végtelen ciklust.