Felhasználói eszközök

Eszközök a webhelyen


inf-prog-fszi:programozasi_gyakorlat_gyakorlofeladatai

Különbségek

A kiválasztott változat és az aktuális verzió közötti különbségek a következők.

Összehasonlító nézet linkje

inf-prog-fszi:programozasi_gyakorlat_gyakorlofeladatai [2017/06/23 19:49] (aktuális)
beistvan létrehozva
Sor 1: Sor 1:
 +===== Programozási gyakorlat gyakorlófeladatai =====
  
 +
 +  - 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.
 +  - 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. ​
 +  - 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)
 +  - 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!
 +  - 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).
 +  - 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.
 +  - 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.
 +  - 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
 +  - 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.
 +  - 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
 +  - 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.)
 +  - 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!
 +  - Határozzuk meg egy véletlen elemekből álló tömb legnagyobb értékét!
 +  - Határozzuk meg egy véletlen elemekből álló tömb legkisebb értékét!
 +  - 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!
 +  - 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!
 +  - Határozzunk meg egy véletlen elemekből álló tömbben, hogy, hány 5-nél nagyobb elem található!
 +  - Egy véletlen elemekből álló tömbben határozzuk meg, hogy van-e 5-tel egyenlő elem!
 +  - 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!
 +  - Válasszuk ki egy véletlen elemekből álló tömbből a tömbátlaghoz legközelebb álló elemet!
 +  - Adott két névsor. Listázzuk ki a mindkét névsorban szereplő nevek listáját!
 +  - Adott két egymást részben fedő névsor. Listázzuk ki az összevont névsort! ​
 +  - 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!  ​
 +  - Egy véletlen elemekből álló tömböt rendezzünk buborékos módszerrel!
 +  - Egy véletlen elemekből álló tömböt rendezzünk közvetlen kiválasztásos rendezési módszerrel!
 +  - Egy véletlen elemekből álló tömböt rendezzünk egyszerű beillesztéses rendezési módszerrel!
 +  - Egy véletlen elemekből álló tömböt rendezzünk maximum- és minimum-kiválasztással!
 +  - 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"
 +  - 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.
 +  - 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. 
 +  - A 8x8-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!
 +  - 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.
 +  - 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.
 +  - a) Készítsünk programot, amely a grafikus képernyőre kirajzol egy 8x8-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