Vezérlési szerkezetek - Ciklusok
A ciklusok (más néven loopok) olyan programozási struktúrák, amelyek lehetővé teszik, hogy egy adott kódblokkot többször futtassunk.
A ciklusok használatával hatékonyan lehet ismétlődő feladatokat végrehajtani a programokban.
Pythonban két ciklust ismerünk: while és for ciklus
WHILE ciklus
A while ciklust akkor használjuk, ha nem tudjuk előre, hogy hányszor kell futtatni a kódblokkot, de van egy feltétel, ami alapján eldönthetjük, hogy folytatjuk-e a futtatást.
A while ciklust szokták elöltesztelő ciklusnak is hívni, mivel először megvizsgálja, hogy egy általunk megadott feltétel fennáll‑e, és ha igen, akkor lefutnak a ciklusban lévő parancsok, a folyamat pedig mindaddig ismétlődik, amíg a megadott feltétel fennáll.
Általános formája:
while feltétel:
A ciklus addig fut, amíg a feltétel igaz.
Példaként, írjunk egy while ciklust, amely a számokat írja ki 1-től 5-ig. A ciklus addig ismétlődik, amíg az i változó értéke eléri az 5-öt.
i = 1
while i <= 5:
print(i)
i += 1
A fenti példában az i változó értéke folyamatosan növekszik eggyel minden egyes cikluson belül, amíg el nem éri az 5-öt. A ciklusmagban található print() függvény kiírja az aktuális i értékét, majd az i értéke növekszik eggyel. A ciklus futása tehát 5-ször ismétlődik, mivel a ciklusfeltétel igaz minden egyes futás után, amíg az i értéke el nem éri az 5-öt.
A while ciklust sokféle módon lehet alkalmazni, azonban fontos, hogy vigyázzunk az olyan végtelen ciklusokkal, amelyek sosem állnak le, mert azok a program futását blokkolhatják. Egy végtelen ciklust akkor hozunk létre, ha a feltétel sosem válik hamisra.
Példák:
A program addig kérdezi a felhasználótól, hogy mondja-e még egyszer, hogy "Vidd ki a szemetet!", amíg a felhasználó nem válaszol "n"-nel.
folytatja = True
while folytatja:
print('Vidd ki a szemetet!')
valasz = input('Mondjam még egyszer? (i/n)')
if valasz == 'n':
folytatja = False
print('>> Program vége! <<')
A program addig kér a felhasználótól új számot, amíg az nincs 5 és 10 között.
szam = int(input('Adj meg egy számot 5 és 10 között! '))
while not 5 <= szam <= 10:
szam = int(input('Helytelen érték! Adj meg egy számot 5 és 10 között! '))
print('Rendben!')
Feladatok:
- Írj egy programot, amely kiírja a páros számokat 1 és 10 között!
- Írj egy programot, amely csökkenő sorrendben írja ki a számokat 1 és 10 között!
- Írj egy programot, amely kiírja a páratlan számokat csökkenő sorrendben 1 és 10 között!
- Írj egy programot, amely a felhasználó által meghatározott alkalommal írja ki a bekért szöveget!
- Írj egy programot, amely a felhasználótól páros számot kér be. Amennyiben a megadott szám páratlan, újra és újra megtörténik az adatbekérés mindaddig, amíg végül páros számot nem ad meg a felhasználó.
- Írj egy programot, amely összeadja az 1-től 10-ig terjedő számokat.
- Írj egy programot, amely addig ismétli a "Hello!" szöveget, amíg a felhasználó nem ír be egy "q" karaktert.
- Írj egy programot, amely megszámolja, hány számot ad meg a felhasználó, amíg nem ír be egy 0-t.
- Írj egy programot, amely addig kérdez egy kódot a felhasználótól, amíg az helyes nem lesz. Ha eltalálta, akkor írja ki, hogy "Eltaláltad!" ellenkező esetben írja ki, hogy "Nem talált!" és kérje újra a kódot.
Újabb feladatok:
- Felhasználói beviteli számok kiírása
Írj egy programot, amely folyamatosan kér be számokat a felhasználótól, és kiírja őket, amíg a felhasználó nem ír be egy negatív számot. A program végén írjuk ki, hogy “A program leállt.”
- Számtani sorozat összegzése
Írj egy programot, amely bekér a felhasználótól egy pozitív egész számot, és kiírja az első n szám összegét.
- Addig kérd be a számot, amíg pozitív egészet nem ír be a felhasználó.
- Ha pozitív egész számot írtak be, akkor számítsd ki az első n szám összegét. (n = a beírt szám)
- Az eredményt a következő formában írd ki: " Az első N szám összege : XXX "
- Számkitaláló játék
A játék addig megy, amíg ki nem találjuk a számot.
A program generáljon egy 1-50 közötti számot. A program kérje be a felhasználótól a tippet, majd mondja meg, hogy a gondolt szám kisebb vagy nagyobb. (Pl. A gondolt szám kisebb / nagyobb a tippnél!) Ha eltalálta, akkor a program a következőt írja ki: "Gratulálok! Eltaláltad!"
- Faktoriális számítás
Kérj be egy nem negatív egész számot és számold ki a faktoriálisát!
Az eredményt a következő formában írja ki a program: "A (bekért szám) faktoriálisa: (faktoriális)"
Faktoriális: 1-től a megadott számig az összes pozitív egész szám szorzata. (Pl: 4! = 1x2x3x4 = 24)
- Számok párba állítása
Kérj be egész számokat a felhasználótól, amíg 0-t nem ír be, és írd ki, hogy hány darab számot adott meg a felhasználó és ebből hány páros és hány páratlan szám volt.
A kiírás a következő formában legyen: "A megadott N darab számból a páratlanok száma: X, a párosa száma: Y."
- Minimum és maximum keresés
Addig kérjen be a program pozitív egész számokat, amíg a felhasználó nem ír be 0-t. A beírt számok közül keresd meg a minimumot és a maximumot és írasd ki!
A kiírás a következő formában legyen: "Beírt N darab szám közül a minimum: min, a maximum: max érték volt."
(N: a 0 megadásáig beírt számok darabszáma, min: a beírt legkisebb szám, max: a beírt legnagyobb szám)
- Kérj be számokat a felhasználótól, amíg 0-t nem ad meg, és írd ki, hogy az egyes számok oszthatók-e 3-mal vagy 5-tel.
- Kockadobás szimuláció
Írj egy programot, amely szimulál egy kockadobást! A felhasználó választhatja meg, hányszor akar dobni, és a program mindegyik dobás eredményét kiírja. A program számolja ki, hogy mennyi volt a kockadobások összege. A következő formában írja ki az eredmény1: "N darab kockadobás összege: XXX.", ahol N: a dobások száma, XXX: a dobások összege.
Megoldások
- Tanfolyam értékelés
Készíts egy python alkalmazást, amely lehetővé teszi a felhasználó számára, hogy értékeléseket adjon meg egy tanfolyamról. Az értékelések egy 1-5 skálán adhatók meg, ahol:
- Nagyon elégedetlen
- Elégedetlen
- Közepes
- Elégedett
- Nagyon elégedett
A felhasználó a „0” megadásával fejezheti be az értékelések beírását. A program a következő feladatokat végezze el:
-
Értékelések bekérése: A program olvassa be az értékeléseket, amíg a felhasználó „0”-t nem ad meg.
- A program ellenőrizze le, hogy helyes értékelést adott-e a felhasználó. (0 - 5 között)
- Ha nem ad meg a felhasználó értékelést (elsőre 0-t nyom), akkor a program figyelmeztessen, hogy nem adott meg a felhasználó érvényes értékelést.
-
Átlag számítása: A program számolja ki az értékelések átlagát, és kerekítse egész számra.
-
Legmagasabb értékelés: A program határozza meg a legmagasabb értékelést.
-
Értékelések száma: A program muatassa meg, hány értékelést adott meg a felhasználó.
-
Eredmények kiírása: A program végén írja ki a számított eredményeket, beleértve az átlagot, a legmagasabb értékelést és az értékelések számát.