fel
le

WHILE ciklus

Logikai ciklusok készítése, használata. A feladatok során a megszámlálás, eldöntés, összegzés, minimum és maximum kiválasztás tételeket lehet használni. A módszereket (algoritmusok) a gyakorlatvezető ismerteti.

#1   5 db helló

Írassuk ki a képernyőre ötször, hogy "Hello Pityuka!". A program könnyen módosítható kell legyen akár 50 kiíráshoz is.

#2   Számok kiírása

Írassuk ki a képernyőre a számokat 1..10 között.

Lehetséges módosítások:

  • csak a páros számokat írassuk ki
  • a program induláskor kérje be, hány számot akarunk látni, és annyit írjunk ki

#3   Kiss Gauss feladat

Határozzuk meg a 1..100 közötti számok összegét, és írjuk ki a képernyőre.

#4   Számtani sorozat

Korában szerepelt az a feladat, hogy 3 bekért számról döntsük el, hogy számtani sorozatot alkot-e (a szomszédos elemek különbsége állandó-e). Ugyanezen feladatot írjuk meg 10 darab számra is (de a megoldás könnyedén átalakítható kell legyen több számra is).

#5   Fibonacci sorozat

Írassuk ki a képernyőre a híres Fibonacci sorozat első 10 elemének értékét. A Fibonacci sorozat első eleme 0, második 1, a további elemeket mindíg úgy kapjuk meg, hogy az előző két elemet össze kell adni. Tehát a sorozat első elemei az alábbiak: 0,1,2,3,5,8,13,...

Megj.: Rekúrzív sorozatnak nevezzük azokat a sorozatokat, ahol a sorozat következő elemeinek kiszámításához a korábban már kiszámolt elemeket kell felhasználni. Ilyen értelemben rekúrzív sorozat a korábban említett Fibonacci-számsorozat is.

#6   Rekurzív számsorozat

Definiáljuk az alábbi módon egy számsorozatot: az első két eleme legyn 3,7. A következő elemeket az alábbiak szerint kell kiszámítani:

  • a páros sorszámú elemek esetén az előző két sorozatbeli elem különbségének kétszerese
  • páratlan sorszámú elemek esetén a két sorozatbeli elem összegének fele (egész számmá alakítva)

#7   Osztók

Kérjünk be egy egész számot, és irassuk ki a képernyőre a szám összes osztóját.

Lehetséges módosítások:

  • maguk az osztók nem érdekesek, csak az osztók darabszáma (a végén kiírva)
  • az osztók darabszáma alapján döntsük el, hogy a beírt szám prímszám-e vagy sem

#8   Legnagyobb közös osztó

Allapitsuk meg ket billentyűzetről bekért számról, hogy mi a legnagyobb kozos osztojuk! A legnagyobb olyan szám, amely mindket szamot osztja. Ezen erteket meghatarozhatjuk keresessel (ciklus), vagy az Euklideszi algoritmussal is.

#9   Relatív prímek

Allapitsuk meg két billentyűzetről bekért számról, hogy relativ primek-e! Akkor relativ primek, ha a legnagyobb közös osztójuk az 1.

#10   Prímtényezős felbontás

Állítsuk elő (és írjuk ki) egy szám prímtényezős felbontását! Pl: 360=2*2*2*3*3*5!

#11   Prímszámok listázása

Írassuk ki a képernyőre a prímszámokat 1..1000 között.

#12   Legnagyobb prímszám

Állapitsuk meg, hogy egy adott intervallumba eső számok közül melyik a legnagyobb primszám! Az intervallum alsó es felső határának értékét kérjük be billentyűzetről! Próbáljunk keresni idő-hatékony megoldásokat!

#13   Ellenőrzött adatbevitel

A program kérjen be egy pozitív páros számot, és írassa ki annak háromszorosát a képernyőre. Amennyiben nem megfelelő számot írna be a program kezelője, úgy ismételjük meg az adatbekérést mindaddig, amíg a beírt szám megfelelő nem lesz.

#14   Számok összege

Addig kérjünk be számokat billentyűzetről, amíg azok összege el nem éri a 100-at. A végén írjuk ki a képernyőre a számok összegét.

Lehetséges módosítások:

  • a bekérést hagyjuk abba, ha elérjük a 100 összeget, de legfeljebb 10 db számot
  • csak a pozitív számokat vegyük figyelembe az összegképzés során
  • írjuk ki a legkisebb és legnagyobb értéket amelyet beírtak
  • határozzuk meg, volt-e a beírt értékek között páros szám (igen/nem)
#15   Tetszőleges számtani sorozat

Írjunk olyan programot, amely bekéri egy tetszőleges számtani sorozat első elemét, és a differenciát! Ezek után kiírja a képernyőre a számtani sorozat első 20 elemét, az elemeket egymástól vesszővel elválasztva, egy sorban!

#16   Tetszőleges mértani sorozat

Írjunk olyan programot, amely bekéri egy tetszőleges mértani sorozat első elemét, és a kvócienst! Ezek után kiírja a képernyőre a mértani sorozat első 20 elemét, és az elemek összegét!

#17   Hatványok

Írjunk olyan programot, amely kiírja a képernyőre tetszőleges N szám (billentyűzetről bekérve) első 16 db hatványának értékét.

#18   Négyzetszámok

Határozzuk meg az első n négyzetszám összeget! Az n értékét kérjük be billentyűzetről!

#19   Számsorozat összege

Írjunk olyan programot, amely egy összegző ciklussal kiszámolja és kiírja az alábbi számtani sorozat első 20 elemének összegét: 3,5,7,9,11,stb.! Ellenőrizzük le az eredményt a számtani sorozat összegképlete segítségével!

#20   Csillaghullás

Van 20 db csillag, és két játékos. A játékosok felváltva játszanak, mindegyikük levehet legalább 1, legfeljebb 3 db csillagot. Az veszít, akinek az utolsó csillagot kell levennie, vagyis a nyerni akaró játékosnak el kell érnie, hogy 1 db csillag maradjon fenn, és a másik játékos következzen.

Írjunk olyan programot, amely képes human vs. human üzemmódban levezérelni a játékot, induláskor bekéri a két játékos nevét, majd mindíg kiírja melyik játékos következik, bekéri hány csillagot akar levenni a játékos, betartatja a szabályokat, és elvégzi a műveletet. A végén eredményt hirdet.

Írjunk olyan programot, amely képes human vs. computer üzemmódban levezérelni a játékot, induláskor megkérdezi a human player nevét, majd megkérdezi ki kezdjen. A játékos amikor következik, bekéri hány csillagot akar levenni. Amikor a computer következik, vagy véletlen számok segítségével meghatározza a leveendő csillagok számát, vagy a nyerő stratégiát követi (amennyiben van rá lehetőség).

Megjegyzés: van nyerő stratégia, amikor a következő lépés leveendő csillagainak számát nem tippeljük, hanem előrelátóan határozzuk meg. Dolgozzuk ki a stratégiát, és a computer következő lépését ez alapján próbáljuk meghatározni.

#21   Számkitalálós

A klasszikus 'kitaláltam egy számot' játék. Első változata human vs. computer, vagyis a játékos kitalál egy számot 1..100 között, a computer tippelget. A játékos megadja, hogy 'talált', vagy 'nem', a kitalálandó szám ennél 'nagyobb' vagy 'kisebb'. A computer próbáljon meg ügyesen tippelni, vagyis ha egyszer a 30-ra azt mondta a human player, hogy ez ennél nagyobb legyen, akkor ne akarja pl a 24-t megkérdezni, mivel a kitalálandó szám ennél is nagyobb lesz. A computer ügyeljen arra, hogy ne lehessen 'becsapni', vagyis ha a player hibás választ adna egyik kérdésre, és félrevezetné a computer-t, akkor azt idővel vegyük észre.

Ennek fordítottja, amikor a computer talál ki egy véletlen értéket 1..100 között, és a player tippelget. Ne vezessük félre, és ha eltalálta, akkor ismerjük ezt be, és dícsérjük meg.

Hernyák Zoltán
2013-03-16 15:14:48