Emelt szintű programozási feladatok

Készítsd el a leírások alapján a működő programokat a tanult programnyelven.

 1. feladat
 2. feladat
 3. feladat
 4. feladat
 5. feladat
 6. feladat
 7. feladat
 8. feladat
 9. feladat
10. feladat
 11. feladat
 12. feladat
 13. feladat
 14. feladat
 15. feladat
 16. feladat
 17. feladat
 18. feladat
 19. feladat
 20. feladat



1. feladat (vissza a menühöz)

Sík felületek (pl. fürdőszobák, konyhák stb. padlózatának) burkolását Géza mester a felület nagyságánál 20%-kal több felületet lefedő burkolólap felhasználásával vállalja. Készítsen programot, mely billentyűzetről beolvassa egy helyiség alapterületét, valamint a választott (téglalap alakú) burkolólap szélességét és hosszúságát, majd megadja, hogy hány darab burkolólapra van szüksége Géza mesternek a munka elvégzéséhez! A szükséges darabszámot a program írja ki a képernyőre!


2. feladat (vissza a menühöz)

Egy sebességmérő műszer regisztrálja minden mellette elhaladó jármű sebességét km/h-ban. Az egyik irányba haladó járművek sebességét pozitív, a másik irányba (szembe) haladókét negatív értékként tárolja a műszer. Készítsen programot, amely lehetővé teszi, hogy a műszer által regisztrált adatokat billentyűzeten keresztül számítógépre vigyük! A sebességadatokat (max. 100 db) a seb nevű tömbben tároljuk. Az adatok megadásának végét a 0 értékkel jelöljük. A program az adatsor végére tárolja el ezt a „0” értéket is! Az adatok eltárolása után a program határozza meg, hogy milyen átlagsebességgel haladtak a járművek az egyik, illetve a másik irányba! A meghatározott eredményt (illetve eredményeket) írja ki a képernyőre!


3.feladat   (vissza a menühöz)

Egy légszennyezettség-mérő állomás óránként meghatározza a detektorába érkező porszemek számát. (Ez egy 0 és 65535 közé eső érték lehet.) A mérés eredményét feljegyzi egy éven keresztül a por(1..365, 0..23) tömbbe. A por() tömb (i,k)-adik eleme az év i-edik napján k és k+1 óra között mért pormennyiséget jelöli.
Készítsen programot, mely (műszer hiányában) véletlenszerű értékekkel tölti fel a por() tömböt! A feltöltött tömbben tárolt adatok alapján határozza meg, és írja képernyőre az év „legporosabb” napjainak sorszámait, és az adott napon észlelt összes por mennyiségét! Legporosabb napokon az olyan napokat értjük, amelyeken a mért összes pormennyiség a teljes mérési időszakban észlelt napi összes pormennyiségek maximumától legfeljebb 1%-kal tér el.


4.feladat (vissza a menühöz)

Készítsen programot, amely beolvassa egy nullára redukált másodfokú egyenlet valós együtthatóit, és a megoldóképlet alapján meghatározza a valós gyökök számát!
A meghatározás alapján a program a képernyőn jelenítse meg a „Nincs valós gyök!”, „Egy valós gyök van.”, „Két valós gyök van.” szövegek közül a megfelelőt.
(M j: A valós gyökök száma nulla, ha (b*b-4*a*c) < 0.
A valós gyökök száma egy, ha (b*b-4*a*c) = 0.
A valós gyökök száma kettő, ha (b*b-4*a*c) > 0
Feltehetjük, hogy az egyenlet valóban másodfokú, tehát a négyzetes tag a együtthatója nem 0,
b az elsőfokú tag együtthatója, c pedig a konstans tag.)


5. feladat (vissza a menühöz)

Készítsen programot lottóhúzás szimulálására! A program billentyűzetről olvassa be, hogy hány szám közül, mennyit kell kihúzni, majd írja a képernyőre a kihúzott számokat! Egy számot természetesen csak egyszer „húzhat” ki egy sorsolás alkalmával.
(Mj: véletlen számokat (random numbers) a legtöbb programozási nyelvben a random() vagy rnd() nevű függvénnyel lehet előállítani. Bővebb leírást az adott környezet help-jében találhat.)



6. feladat (vissza a menühöz)

Kísérlet sorozatot végzünk pénzfeldobással. Készítsen programot, amely billentyűzetről beolvassa és tárolja 15 feldobás eredményét (F=fej, I=írás), majd meghatározza és képernyőre írja a leghosszabb „fej” sorozat hosszát! A sorozat hosszán a benne szereplő feldobások darabszámát értjük!


7. feladat (vissza a menühöz)

Török szultán
A Török szultán születésnapján gyönyörű ajándékot kapott. Annyira megörült, hogy rögtön valami jót akart cselekedni. Leküldte hát 400 fős szolgaseregének első szolgáját a börtönbe. Meghagyta neki, hogy mind a 400 cella ajtaját nyissa ki. Lett is nagy riadalom. A börtönőrök rettegtek. Ha szabadon engedik a rabokat, és őfelsége kedve változik, fejüket veszi. Leült hát négyszáz őr a négyszáz nyitott cella elé. Teljesítették is a szultán parancsát, de a rabokat sem engedték szabadon. Igazuk lett. A szultán megharagudott, mert a következő ajándék nem tetszett. Leküldte a második szolgát. Azt parancsolta, minden második ajtót zárjon be. Kisvártatva meggondolta magát, és leküldte a harmadik szolgát, hogy minden harmadik ajtót nyissa ki, ha zárva van, és zárja be, ha nyitva van. Majd leküldte a negyedik szolgát, hogy minden negyedik ajtón változtasson. Aztán az ötödiket, hatodikat… és így tovább egészen addig, míg az utolsó, a 400. szolgának azt parancsolta: Menj le és a 400. cellát nyisd ki, ha zárva van, De ha nyitva lenne, akkor zárd be. Így is lett. Azzal a szultán nyújtózott egyet, és lefeküdt aludni.
A börtönparancsnok tudta, aznap már több parancs nem jön, és a szultán soha nem vonja vissza azokat a parancsait, amit előző nap adott. Szabadon engedte hát azokat, akiknek a cellája nyitva volt. Kiket is?
Az ön által ismert programnyelven készítsen programot mely, szimulálja a fenti eseményeket, és végül megadja mely cellák ajtaja lesz nyitva a végén!


8. feladat:  (vissza a menühöz)

Készítsen programot, mely eldönti, hogy a megadott matematikai kifejezés helyesen zárójelezett-e!
A szöveges kifejezésben a következő karakterek szerepelhetnek: 0..9, +, -, *, /, (, ). (Számok, elemi matematikai műveleti jelek, nyitó, ill. záró zárójel. Feltételezhetjük, hogy megfelelő a kifejezés, ezért nem kell ellenőrizni a beolvasáskor, hogy van-e illetéktelen karakter.)
A beolvasott kifejezésre a program a következő ellenőrzéseket végezze el!
    a) a zárójelpárok megvannak-e (ugyanannyi nyitó, mint záró zárójel)!
    b) A zárójelpárok megfelelően helyezkednek-e el! (Előbb nyit, azután zár.) (Figyelem, a zárójelek egymásba ágyazódhatnak!)
A program a kifejezés beolvasása után következő üzeneteket küldi:
    a) 'HIBA: Eltérő számú nyitó és zárójelek.’, vagy 'Egyező számú nyitó és zárójelek.'
    b) 'HIBA: Zárójelek rossz sorrendben.', vagy 'Megfelelő zárójel sorrend.'


9. feladat:  (vissza a menühöz)

Egy szöveges fájlban, szóközzel elválasztva soronként szerepel különböző cégek napi tőzsdei záró árfolyama egy hétre.
Készítsen programot az ön által ismert nyelven, mely megadja azt a céget, amelyik a hét folyamán a legnagyobb stabilitást mutatta! Azt a céget tekintjük stabilnak, amelynek a záróárfolyama a lehető legkevesebbet változik. Adja meg a ’stabilitásösszeget’ is, amely a szomszédos napok záróárfolyam-különbözet abszolút értékeinek összege.
Az alábbi adatok megtalálhatók az ecegarf.txt szöveges adatfájlban!
Minta:
1.nap 2.nap 3.nap 4.nap 5.nap 6.nap 7.nap CÉG
1500 1709 1839 1948 1923 1930 1944 AlfaBt.
3000 3291 3255 3365 3511 3497 3631 BetaKft.
1000 1279 1285 1375 1356 1347 1399 GammaRt.
14000 14208 14263 14359 14454 14532 14583 DeltaBt.
7000 6972 7037 6987 7135 7104 7133 EpszilonRt.
23000 23241 23234 23373 23359 23442 23392 ZétaKft.
1800 1918 1925 1997 2127 2249 2327 ÉtaGnbh.



10. feladat:  (vissza a menühöz)

Adott egy kizárólag alapműveleteket (+,-,*,/,=), számokat és zárójeleket tartalmazó kifejezés. Vezessünk be egy „s” számot, amely a zárójelek állapotát figyeli. Kezdőértéke legyen nulla. Balról jobbra haladva egyesével megvizsgáljuk a kifejezésben előforduló jeleket. Amennyiben zárójelet találunk, kiértékeljük. Minden zárójelnyitásnál növeljük, zárásnál csökkentsük „s” értékét.
Készítsen programot, mely eldönti, hogy helyesen zárójelezett-e a megadott kifejezés!
Akkor helyesen zárójelezett, ha bármely pillanatban igaz, hogy s>=0, és a végén s=0.
A kifejezésben előforduló egyéb karaktereket nem kell ellenőrizni.


11. feladat:  (vissza a menühöz)

A FAT fájlrendszer fontos eleme, hogy az adatokat ún. clusterekben (klászter) tárolja el. A cluster mérete 512 Bájt (= 1 szektor) és kettő valamilyen hatványának, szorzata. Általában KiloBájtban adják meg. A cluster lehet pl. 4 szektor (=4*512 Bájt= 2 KB), 8, 16 stb., de nem lehet 3, 5, 6 stb. szektoros. A FAT tehát minden fájt feldarabol cluster méretű szeletekre, eltárolja, majd bejegyzi egy táblázatba, hogy hova is tette a lemezen. Ha a fájl csak több clusterben fér el, azokat nem feltétlenül egymás mellett helyezi el. A táblázatból bármikor vissza tudja állítani az eredeti sorrendet. Egy clusterbe egyidejűleg csak egy fájl írhat. Ha nem tölti ki teljesen, akkor az a terület más célra nem használható. Egy 100 bájtos fájl is lefoglal tehát 2 KB-ot, ha ekkora a cluster.
Készítsen programot, mely megadja a cluster mérete, illetve a – maximum 15 – fájl mérete alapján az általuk lefoglalt terület méretét! A fájlok mérete bájtban van megadva.
Az egyszerűség kedvéért a legkisebb cluster méret 1 KB legyen.


12. feladat:  (vissza a menühöz)

Egy középiskolai végzős osztályba maximum 35 fő jár. Az érettségi tantárgyak négy kötelező valamint egy szabadon választott tantárgy.
Készítsen programot, amely beolvassa egy szövegfájlból (vizsga.txt) a diákok neveit, szabadon választott érettségi vizsgatantárgyaikat és meghatározza minden fakultatív vizsgatárgyhoz az érettségizők névsorát. Az eredményt a képernyőre írassa ki!
A szövegfájlban minden diák neve és tantárgya egy sorban pontosvesszővel (;) elválasztva szerepel. A fájl annyi sorból áll, amennyi diák szerepel benne.


13. feladat:  (vissza a menühöz)

Készítsen programot, amely beolvassa egy kocka e él hosszát, valamint egy papírlap a és b oldalhosszait, majd meghatározza, hogy a kocka elkészíthető-e az a*b méretű téglalap alakú papírból! Ha a kocka elkészíthető, a program jelenítse meg az „ELKÉSZÍTHETŐ”, ha nem, akkor a „NEM KÉSZÍTHETŐ EL” szöveget a képernyőn! A két szöveg közül természetesen csak az egyiket szabad megjeleníteni!
Definíció: Egy kockát egy téglalap alakú papírból elkészíthetőnek nevezünk, ha a papír rövidebb oldala legalább 3*e, a hosszabb oldala pedig legalább 4*e hosszúságú.


14. feladat:  (vissza a menühöz)

Statisztikai kísérlet sorozatot végzünk kockadobással. Készítsen programot, amely billentyűzetről beolvassa és tárolja 50 dobás eredményét (egy dobás eredmény az 1, 2, 3, 4, 5, 6 számok valamelyike), majd meghatározza, és képernyőre írja az előforduló leghosszabb „szigorúan monoton csökkenő” rész sorozat hosszát! A sorozat hosszán a benne szereplő dobások darabszámát értjük!


15. feladat:  (vissza a menühöz)

Egy elektronikus céltábla a lövedék becsapódási helyének koordinátáit adja vissza, oly módon, hogy a derékszögű koordinátarendszer origója a tábla középpontja, a tengelyeken a skála pedig az origótól mért távolság milliméterben. A becsapódási adatok alapján a lövés pontértékét úgy számoljuk, hogy a középponttól való távolságot (milliméterben) kivonjuk 1000-ből és maradékosan osztjuk 100-zal. Amennyiben az így számított pontszám negatív lenne, nulla pontot adunk!
Az origótól mért távolság képlete:

ahol d a távolság, a becsapódás koordinátái pedig x és y.
Készítsen programot, amely kiszámítja egy lövés pontértékét! A becsapódási koordinátákat a billentyűzetről olvassa be, a pontértéket a képernyőre írja ki!


16. feladat:  (vissza a menühöz)

Egy madármegfigyelő állomáson a vonuló gólyákat tanulmányozzák. Tíz napon keresztül rögzítik az állomás fölött elvonuló gólyák számát. Adja meg a napok sorszámát az átvonuló madarak darabszáma szerint növekvő sorrendben, oly módon, hogy az egyes számok külön sorba kerüljenek, kivéve az olyan napoknál, ahol az észlelések száma megegyezik, az ilyen esetekben a számok egy sorba kerüljenek, egymástól szóközzel elválasztva!
Például:
Bemenet:
34 32 32 63 64 64 64 23 12 8

Kimenet:
10
9
8
2 3
1
4
5 6 7
Készítsen programot a fenti feladat megoldására! A bemenő adatokat a billentyűzetről olvassa be, az eredményt a képernyőn jelenítse meg!
A megjelenítésnél az egy sorba kerülő számok (azonos észlelési számhoz tartozó napsorszámok) sorrendje a soron belül tetszőleges.


17. feladat:  (vissza a menühöz)

Egy évben 52 alkalommal van lottóhúzás. Minden héten 90 szám közül húznak ki 5 különbözőt.
Készítsen programot, amely véletlenszerűen generálja és a megfelelő változóban a memóriában tárolja egy év 52 húzásának eredményét!
Vizsgálja a húzások eredményeit!
Határozza meg, hogy melyik számot hány alkalommal húzták ki az 52 hét során!
Készítsen listát a képernyőre, mely az egyes számokat tartalmazza a kihúzásuk száma szerint csökkenő sorrendben! A lista egy elemének formátuma a következő legyen: [lottószám; kihúzások száma]. Egy sorba 6 listaelem kerüljön, kivéve az esetleges utolsó sort, ahol ennél kevesebb is szerepelhet! Azon számokat, amelyeket az év során egyszer sem sorsoltak ki, ne szerepeltesse a listában!
A következő példa csak a kimeneti formátum bemutatására szolgál, a benne szereplő adatok nem képeznek egy adott húzássorozathoz tartozó helyes megoldást:
[3;7][12;7][45;6][32;6][23;6][14;6]
[73:6][82;5][77;5][9;5][67;5][18;4]
[53:3][90;1][38;1][72;1]


18. feladat:  (vissza a menühöz)



19. feladat:  (vissza a menühöz)




20. feladat:  (vissza a menühöz)