Felhasználói eszközök

Eszközök a webhelyen


inf-prog-fszi:programozasi_gyakorlat_gyakorlofeladatai

Programozási gyakorlat gyakorlófeladatai

  1. Készítsünk egy párbeszéd alapú programot! Például a számítógép megkérdezi a felhasználótól a nevét, amire az válaszol, majd megkérdezi a felhasználó korát, stb. Emeltebb nehézségű feladat: egy párbeszéd alapú quest (küldetéses feladatokkal bíró) játék készítése.
  2. Cseresznyét szeretnénk vásárolni. Írjunk egy programot, amely billentyűzetről kérje be először azt, hogy mennyibe kerül egy kilogramm cseresznye, majd azt, hogy hány kilogramm cseresznyét szeretnénk venni. A program számolja ki, hogy ennyi cseresznyéért hány hrivenyt fogunk fizetni. A képernyő kimenete pl.:
    Egy kg cseresznye ara: 12
    Hány kg cseresznyét veszel: 3
    Ennyi cseresznye ára 36 hriveny.
  3. Készítsen programot az adott kifejezés kiszámítására megfelelő kezdőértékek megadásával:
    $\gamma=\displaystyle\frac{ \sin\left(\displaystyle\frac{\pi+3,\!1}{2t-1}\right)-\displaystyle\frac{1+\log_2\left(5,\!4+t\right)}{3+\sqrt{\left| \arccos\left( 1 - \displaystyle\frac{\sin\left( 1-t \right)}{t^4-1} \right) \right|} } }{ \sqrt[3]{\displaystyle\frac{t^5-2t^4+3t^2-1}{\displaystyle\frac{1}{e^{5t+1}}-t^{\cos \left(t\right)}+1 } } },$ $t=3.$ (Felelet: -0.07444367269165618)
  4. A húsvét vasárnap dátumát a níceai zsinat a következőképpen határozta meg: a tavaszi napéjegyenlőséget követő első holdtölte utáni első vasárnap. A dátum március 22-e és április 25-e között változhat. A dátum meghatározására alkalmas a következő algoritmus! Jelölje T az évszámot (1800 <= T <= 2099). Kiszámítjuk a következő osztási maradékokat:
    A = T / 19 maradéka
    B = T / 4 maradéka
    C = T / 7 maradéka
    D = ( 19 . A + 24 ) / 30 maradéka
    E = ( 2 . B + 4 . C + 6 . D + 5 ) / 7 maradéka
    Ezekből a húsvét vasárnap dátuma:
    H = 22 + D + E, ami márciusi dátum, ha H <= 31, különben áprilisban H – 31 -e.
    Két kivétel van:
    ha E = 6 és D = 29, akkor H = 50,
    ha E = 6 és D = 28 és A > 10, akkor H = 49.
    Készítsünk programot, ami bekér egy évszámot, és meghatározza, majd kiírja a húsvét vasárnap dátumát!
  5. Készítsünk programot, amely kiszámolja az első 100 drb. páratlan szám összegét (A ciklus vegyük egytől százig, majd a ciklusmagban vegyük a ciklusváltozó kétszeresét eggyel csökkentve - így megkapjuk a páratlan számokat. Az összeg kiszámolásához vezessünk be egy változót, amelyet a program elején kinullázunk, a ciklusmagban pedig mindig hozzáadjuk a ciklusváltozó kétszeresét eggyel csökkentve).
  6. Készítsünk programot, amely beolvas egy egész számot, majd elosztja 2-vel annyiszor, ahányszor lehet és közben felírja a számot a kettes számok szorzataként megszorozva egy olyan számmal, amely már nem osztható 2-vel. Például:
    Kerek egy egesz szamot: 120
    120 = 2*2*2*15
    Ha a szám egyszer sem osztható kettővel, akkor:
    Kerek egy egesz szamot: 17
    17 = 17
    Ahhoz, hogy a szám osztható-e kettővel használjuk a mod függvényt. Pl. X akkor osztható 2-vel, ha X mod 2 = 0. A szám elosztását a div függvénnyel végezzük el.
  7. Készítsünk programot, amely ki fogja kérdezni a matematikát (két szám összeadását, kivonását és szorzását az <1,10> intervallumból). A két számot és a műveletet a számítógép véletlenszerűen válassza ki. A program akkor fejeződjön be, ha a felhasználó 10 példát kiszámolt helyesen. Rossz válasz esetén kérdezze újra ugyanazt a példát. A program végén írjuk ki az eredményességet százalékokban.
  8. a) Készítsünk programot, amely bekér egy N természetes számot, majd kirajzol a képernyőre egymás mellé N-szer az „XO” betűket és a kiírás után a kurzort a következő sor elejére teszi.
    Például N=3-ra kiírja ezt a program:
    XOXOXO
    b) Egészítsük ki az előző programunkat úgy, hogy az előző kiírás alá írja ki N-szer az „OX” betűket is egymás mellé, majd a kurzort ismét a következő sor elejére tegye. (Az előző ciklus után - NE bele a ciklusba! - tegyünk egy hasonló ciklust, ami most XO helyett OX betűket ír ki.)
    Például N=3-ra kiírja ezt a program:
    XOXOXO
    OXOXOX
    c) Egészítsük ki a programunkat úgy, hogy az előző két sort N-szer ismételje meg a program. (Az előző két egymás utáni ciklust tegyük bele egy külső ciklusba.)
    Például N=3-ra kiírja ezt a program:
    XOXOXO
    OXOXOX
    XOXOXO
    OXOXOX
    XOXOXO
    OXOXOX
  9. Olvassunk be egész számokat 0 végjelig egy maximum 100 elemű tömbbe (a tömböt 100 eleműre deklaráljuk, de csak az elejéből használjunk annyi elemet, amennyit a felhasználó a nulla végjelig beír). A beolvasás után írjuk ki a számokat a beolvasás sorrendjében majd fordítva.
  10. Olvassunk be egy N egész számot (1 <= N <= 10), majd egy NxN-es kétdimenziós tömbbe generáljunk véletlen egész számokat 10-tol 99-ig.
    Írjuk ki a kigenerált tömböt, pl. N=6-ra:
    34 58 19 51 11 58
    85 50 11 51 13 33
    99 25 17 22 27 91
    12 34 87 42 65 70
    11 10 69 74 88 92
    30 34 74 75 54 47
    Tükrözzük a tömböt a bal felső sarokból a jobb alsó sarokba húzódó átlója szerint (tehát valójában az első oszlop felcserélődik az első sorral, a második oszlop a második sorral, stb.):
    34 85 99 12 11 30
    58 50 25 34 10 34
    19 11 17 87 69 74
    51 51 22 42 74 75
    11 13 27 65 88 54
    58 33 91 70 92 47
  11. Készítsünk programot, amely kiszámolja egy 20 elemű tömb véletlenszerű természetes számokból négyzetösszegét, majd kiírja az eredményt. (Az összeg kiszámolásához vezessünk be egy változót, amelyet a program elején kinullázunk, a ciklusmagban pedig mindig hozzáadjuk a ciklusváltozó négyzetre emelt értékét, tehát sorban az 1., 2., 3., 4., …, 20. sorszámú tömbelem négyzetét.)
  12. Készítsünk programot, amely kiszámolja egy 17 darab véletlen elemekből álló tömb páratlan indexű elemeinek a mértani közepét egy ciklus segítségével!
  13. Határozzuk meg egy véletlen elemekből álló tömb legnagyobb értékét!
  14. Határozzuk meg egy véletlen elemekből álló tömb legkisebb értékét!
  15. Egy véletlen elemekből álló tömbben találjuk meg az az összes 5-tel egyenlő elemet! Ha nem találtunk, akkor adjunk erről egy üzenetet a képernyőre!
  16. Egy véletlen elemekből álló rendezett tömbben találjuk meg a 10-el egyenlő elemet! Ha nincs ilyen elem, írjunk erről értesítést a képernyőre!
  17. Határozzunk meg egy véletlen elemekből álló tömbben, hogy, hány 5-nél nagyobb elem található!
  18. Egy véletlen elemekből álló tömbben határozzuk meg, hogy van-e 5-tel egyenlő elem!
  19. Gyűjtsük ki egy véletlen elemekből álló tömbből az összes 5-nél nagyobb, de 10-nél kisebb elemet!
  20. Válasszuk ki egy véletlen elemekből álló tömbből a tömbátlaghoz legközelebb álló elemet!
  21. Adott két névsor. Listázzuk ki a mindkét névsorban szereplő nevek listáját!
  22. Adott két egymást részben fedő névsor. Listázzuk ki az összevont névsort!
  23. Két rendezett véletlen elemekből álló tömbből készítsünk egy újabb tömböt úgy, hogy a rendezettség megmaradjon az eredményként kapott tömbben is!
  24. Egy véletlen elemekből álló tömböt rendezzünk buborékos módszerrel!
  25. Egy véletlen elemekből álló tömböt rendezzünk közvetlen kiválasztásos rendezési módszerrel!
  26. Egy véletlen elemekből álló tömböt rendezzünk egyszerű beillesztéses rendezési módszerrel!
  27. Egy véletlen elemekből álló tömböt rendezzünk maximum- és minimum-kiválasztással!
  28. Készítsünk programot, amely bekér egy mondatot, majd kiírja ugyanezt a mondatot fordítva.
    Például ha beírjuk „Szep napunk van ma.”, kiírja ezt: „.am nav knupan pezS”
  29. a) Készítsünk alprogramot egy 100 elemű tömb kigenerálására. Az alprogram paramétereként adjunk meg két számot (pl. X, Y), amelyek jelentsék azt, hogy a tömbbe az alprogram ebből a tartományból generál egész számokat (tehát olyan számokat, amelyek nagyobbak vagy egyenlők X-el és kisebb vagy egyenlők Y-nal). Az alprogram ne felejtse el megvizsgálni, hogy X <= Y, ha nem akkor cserélje ki X és Y értékét.
    Készítsünk egy másik alprogramot, amely kiírja ezt a 100 elemű tömböt vesszőkkel elválasztva a képernyőre.
    A főprogramban generáljuk ki a tömböt majd írassuk ki az elkészített eljárások segítségével.
    b) Az előző programunkat egészítsük ki. Készítsünk függvényt, amely a tömb egy megadott részéből (pl. 2. elemétől az 51. eleméig) kiválasztja a legkisebb elem indexét (pl. 42. elem) és ezt adja vissza. A függvénynek tehát két paramétere lesz, amely a tömb részének kezdetét és végét jelölik.
    A főprogramban a függvényünk segítségével válasszuk ki és írassuk ki a tömb 1.-10. eleme közöl a legkisebb elem indexét és értékét, majd ugyanezt a 11.-20. elemekre, 21.-30. elemekre, stb.
  30. Készítsünk függvényt, amely rekurzió segítségével meghatározza az N. Fibonacci számot. Az első Fibonacci szám: 0, a második: 1, a többit pedig úgy kapjuk meg, hogy összeadjuk az előtte levő két Fibonacci számot. Tehát a harmadik: 0+1=1, a negyedik: 1+1=2, az ötödik: 1+2=3, a hatodik: 2+3=5, stb.
  31. A 8×8-as sakktábla bal alsó sarkában áll egy huszár. Keressünk egy olyan huszárugrás-sorozatot, amely minden egyes pontot érint a sakktáblán pontosan egyszer!
  32. Készítsünk programot, amely kiír egy menüt:
    1 … nevsor kiirasa
    2 … uj diak hozzaadasa
    3 … diak torlese
    0 … kilepes a programbol
    majd a választott menüpont alapján végrehajtja az adott műveletet utána ismét kiírja ezt a menüt. A diákokról tároljuk a nevüket, születési évüket és a nemüket (fiú, lány). A diákokat a programban egy 1000 elemű tömbben tároljuk. A program elején a tömböt olvassuk be egy állományból (ha létezik már az állomány), majd a program végén mentsük ki állományba.
  33. Készítsünk programot, amely beolvas egy szöveges állományt, majd a beolvasott szöveget kiírja egy másik állományba úgy, hogy mindegyik karaktere után tesz egy szóközt.
  34. a) Készítsünk programot, amely a grafikus képernyőre kirajzol egy 8×8-as sakktáblát (ciklusok segítségével). Ügyeljünk a sakktábla mezőinek megfelelő kiszínezésére!
    b) Készítsünk programot, amely kirajzol a grafikus képernyőre egy céltáblát. A céltábla minden második körét fessük be kék, a többit piros színűre.

Források:
prog.ide.sk, vasvill.hu/kerese/tetelek

inf-prog-fszi/programozasi_gyakorlat_gyakorlofeladatai.txt · Utolsó módosítás: 2017/06/23 19:49 szerkesztette: beistvan