Személyes eszközök
Keresés

 

A InfoWiki wikiből

(Változatok közti eltérés)
(Új oldal, tartalma: „<cim cim3="WHILE ciklusok gyakorlása" cim2="Gyakorlat anyaga" cim1="Magasszintű Programozási Nyelvek I." prev="mp2/gyak03" back="mp2/Nyitolap" next="mp2/gya...”)
Aktuális változat (2009. szeptember 26., 10:47) (lapforrás)
a
 
32. sor: 32. sor:
</prog>
</prog>
-
<prog cim="Kiss Gauss feladat">
+
<prog cim="Kis Gauss feladat">
Határozzuk meg a 1..100 közötti számok összegét, és írjuk ki a képernyőre.
Határozzuk meg a 1..100 közötti számok összegét, és írjuk ki a képernyőre.
</prog>
</prog>

Aktuális változat



WHILE ciklusok gyakorlása

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.

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.

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
Kis Gauss feladat

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

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).

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,...

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.

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)


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
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.

Prímszámok listázása

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

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)
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.


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
A lap eredeti címe: „http://wiki.ektf.hu/wiki/Mp2/gyak04
Nézetek
nincs sb_44.200.40.97 cikk