„A programozás alapjai I. - 3. kisZh” változatai közötti eltérés
(Új oldal, tartalma: „{{Vissza|A programozás alapjai I.}} Ezen az oldalon gyűjtjük a A programozás alapjai I. tárgy gyakorlatain az elmúlt években előforduló kisZh feladatokat,…”) |
|||
14. sor: | 14. sor: | ||
= Feladatsorok = | = Feladatsorok = | ||
== 2015 == | |||
=== Sakkfigura === | |||
Írj programot, amelyben sakkfigurák pozícióit tárolod sor (1–8), oszlop (1–8) formában! Mindkettő egész szám. Adj meg ehhez saját összetett típust, amelyben a koordináták külön eltárolhatóak! | |||
*Írj egy függvényt, amely a paraméterként kapott pozíciót kiírja! Az oszlopokat jelöld az ábécé betűivel, 1=a, 2=b...; pl. ha a kapott pozíció a 3. oszlop 6. sor, akkor a kimenet: c6. | |||
*Írj függvényt, amely visszatér egy billentyűzetről beolvasott pozícióval! A felhasználó a kiírással megegyező formátumban fogja megadni (pl. c6). | |||
*Írj függvényt, amely két pozíciót kap, és megadja, hogy egy bástya léphet-e az egyik helyről a másikra! (A bástyák csak azonos oszlopon, azonos soron léphetnek. Feltételezhető, hogy nincs útban más figura.) | |||
*Írj főprogramot, amelyben a megírt függvények használatával beolvasol két pozíciót, kiírod őket, végül pedig szövegesen azt, hogy szabályos lenne-e a lépés egy bástya számára! Pl. „c6 d5” bemenet esetén a kimenet „c6 d5: szabálytalan”. | |||
Adj mindennek szerepe szerinti nevet a programban! | |||
=== Euró === | |||
Az előadáson láthattad, hogy a tizedes törtek a double típusban nem tárolhatók pontosan: pl. a 9,95 érték nem ábrázolható. Írj programot, amely egy banki szoftver része lehet! Ebben a pénzösszegek egész euróit és egész centjeit kell tárolni egy saját összetett típusban. | |||
*Írj függvényt, amely visszatér egy billentyűzetről beolvasott pénzösszeggel. | |||
*Írj függvényt, amely paraméterként két pénzösszeget kap, és megadja ezek összegét! 100 cent = 1 euró, a centbe nem kerülhet 99-nél nagyobb érték. | |||
*Írj függvényt, amely a paraméterként kapott pénzösszeget egész euróra (50 centtől fölfelé) kerekíti, és azt adja vissza! | |||
*Írj főprogramot, amelyben az előbb megírt függvények használatával beolvasol egy pénzösszeget (a), és kiírod a dupláját (a+a) euróra kerekítve! | |||
Adj mindennek szerepe szerinti nevet a programban! | |||
=== Koordináta-rendszer === | |||
A derékszögű koordinátarendszerben x (vízszintes) és y (függőleges) valós koordináták közösen határoznak meg egy pontot. A programodban ilyenek adatait kell tárolni. | |||
*Definiálj saját összetett típust, amely egy pont helyét tárolja! | |||
*Írj függvényt, amely paraméterként egy pontot kap, és értéke a pont origótól mért távolsága (Pitagorasz-tétel)! | |||
*Írj függvényt, amely kiírja egy pont koordinátáit, pl. 1.2; 3.4! | |||
*Írj paraméter nélküli függvényt, amely a felhasználótól beolvassa egy pont koordinátáit, és értéke a beolvasott pont! | |||
*Egészítsd ki mindezt egy főprogrammal, amelyben beolvasod egy pont adatait, aztán kiírod azokat! Utána írd ki az origótól való távolságát is, és végül azt, hogy közelebb van-e az origóhoz, mint 1 egység! | |||
Adj mindennek szerepe szerinti nevet a programban! | |||
=== Bolygók === | |||
Olyan programot kell írnod, amelyben bolygók keringési és forgási idejeit tárolod. Ezek földi nap, illetve óra mértékegységben lesznek megadva, pl. a Mars adatai: keringés: 686,971 földi nap, forgás: 24,6229 óra. Definiálj saját összetett típust, amely egy bolygó ezen adatait tárolja! | |||
*Írj függvényt, amely visszatér egy bolygó billentyűzetről beolvasott adataival! | |||
Tegyük fel, hogy az emberek 23–25 órás napokhoz (az alvás miatt), a növények pedig 200–700 napos évekhez tudnak alkalmazkodni (az évszakok miatt). *Írj függvényt, amely megadja egy bolygóról, hogy az emberek és a növények számára is lakható-e! | |||
*Írj függvényt, amely megadja a paraméterként átvett bolygóról, hogy hány napos ott egy évforduló, tehát hány ottani napból áll egy ottani év (keringés/forgás). | |||
*Írj főprogramot, amely a fent megírt függvényeket használva bekéri egy bolygó adatait, utána megvizsgálja, hogy lakható-e. Ha nem, akkor kiírja, hogy lakhatatlan; ha igen, akkor pedig azt, hogy az ottaniak hány naponta ünneplik a születésnapjukat! | |||
Adj mindennek szerepe szerinti nevet a programban! | |||
== 2014 == | == 2014 == | ||
=== Derékszögű === | === Derékszögű === |
A lap jelenlegi, 2015. november 23., 17:52-kori változata
Ezen az oldalon gyűjtjük a A programozás alapjai I. tárgy gyakorlatain az elmúlt években előforduló kisZh feladatokat, azok megoldásaival. A feladatok nehézsége iránymutatónak tekinthető, de az egyes félévek időbeosztása eltérhet. Ne ess kétségbe, ha ismeretlen, nehéz, „megoldhatatlan” feladatsort látsz.
A megoldásokról
Szóval hogyan kell tanulni a prog ZH-kra? „Sehogyan.” Ez nem egy „tanulható”, hanem egy „gyakorolható” tárgy.
– Czirkos Zoltán, InfoC tanácsok
Az oldalon nem gyűjtjük a feladatok megoldásait. A kisZh-k eleji beugrók rövidek, általában 10 – 15 sorban megoldhatóak. A programozás nem egy „magolható” tárgy, nincsenek típusfeladatok, s azok megoldásai. A programozás alapjai I., s A programozás alapjai II. tárgyak egy szemléletmódot szeretnének megtanítani, amit a régebbi feladatsorok böngészésével nem, csak azok önálló megoldásával lehet elsajátítani. Kicsit bővebben olvashatsz erről az idézet végén linkelt oldalon.
Amennyiben egy-egy itt látható feladat nehézséget okoz, böngészd át az eddigi előadások anyagát. Ha még mindig nem megy a megoldás, fordulj bátran a felsőbb évesekhez, s a tárgy oktatóihoz, gyakorlatvezetőihez a levlistákon, készséggel fognak segíteni.
További tanulási tippekért olvasd el a tárgy adatlapjának Tippek fejezetét.
Feladatsorok
2015
Sakkfigura
Írj programot, amelyben sakkfigurák pozícióit tárolod sor (1–8), oszlop (1–8) formában! Mindkettő egész szám. Adj meg ehhez saját összetett típust, amelyben a koordináták külön eltárolhatóak!
- Írj egy függvényt, amely a paraméterként kapott pozíciót kiírja! Az oszlopokat jelöld az ábécé betűivel, 1=a, 2=b...; pl. ha a kapott pozíció a 3. oszlop 6. sor, akkor a kimenet: c6.
- Írj függvényt, amely visszatér egy billentyűzetről beolvasott pozícióval! A felhasználó a kiírással megegyező formátumban fogja megadni (pl. c6).
- Írj függvényt, amely két pozíciót kap, és megadja, hogy egy bástya léphet-e az egyik helyről a másikra! (A bástyák csak azonos oszlopon, azonos soron léphetnek. Feltételezhető, hogy nincs útban más figura.)
- Írj főprogramot, amelyben a megírt függvények használatával beolvasol két pozíciót, kiírod őket, végül pedig szövegesen azt, hogy szabályos lenne-e a lépés egy bástya számára! Pl. „c6 d5” bemenet esetén a kimenet „c6 d5: szabálytalan”.
Adj mindennek szerepe szerinti nevet a programban!
Euró
Az előadáson láthattad, hogy a tizedes törtek a double típusban nem tárolhatók pontosan: pl. a 9,95 érték nem ábrázolható. Írj programot, amely egy banki szoftver része lehet! Ebben a pénzösszegek egész euróit és egész centjeit kell tárolni egy saját összetett típusban.
- Írj függvényt, amely visszatér egy billentyűzetről beolvasott pénzösszeggel.
- Írj függvényt, amely paraméterként két pénzösszeget kap, és megadja ezek összegét! 100 cent = 1 euró, a centbe nem kerülhet 99-nél nagyobb érték.
- Írj függvényt, amely a paraméterként kapott pénzösszeget egész euróra (50 centtől fölfelé) kerekíti, és azt adja vissza!
- Írj főprogramot, amelyben az előbb megírt függvények használatával beolvasol egy pénzösszeget (a), és kiírod a dupláját (a+a) euróra kerekítve!
Adj mindennek szerepe szerinti nevet a programban!
Koordináta-rendszer
A derékszögű koordinátarendszerben x (vízszintes) és y (függőleges) valós koordináták közösen határoznak meg egy pontot. A programodban ilyenek adatait kell tárolni.
- Definiálj saját összetett típust, amely egy pont helyét tárolja!
- Írj függvényt, amely paraméterként egy pontot kap, és értéke a pont origótól mért távolsága (Pitagorasz-tétel)!
- Írj függvényt, amely kiírja egy pont koordinátáit, pl. 1.2; 3.4!
- Írj paraméter nélküli függvényt, amely a felhasználótól beolvassa egy pont koordinátáit, és értéke a beolvasott pont!
- Egészítsd ki mindezt egy főprogrammal, amelyben beolvasod egy pont adatait, aztán kiírod azokat! Utána írd ki az origótól való távolságát is, és végül azt, hogy közelebb van-e az origóhoz, mint 1 egység!
Adj mindennek szerepe szerinti nevet a programban!
Bolygók
Olyan programot kell írnod, amelyben bolygók keringési és forgási idejeit tárolod. Ezek földi nap, illetve óra mértékegységben lesznek megadva, pl. a Mars adatai: keringés: 686,971 földi nap, forgás: 24,6229 óra. Definiálj saját összetett típust, amely egy bolygó ezen adatait tárolja!
- Írj függvényt, amely visszatér egy bolygó billentyűzetről beolvasott adataival!
Tegyük fel, hogy az emberek 23–25 órás napokhoz (az alvás miatt), a növények pedig 200–700 napos évekhez tudnak alkalmazkodni (az évszakok miatt). *Írj függvényt, amely megadja egy bolygóról, hogy az emberek és a növények számára is lakható-e!
- Írj függvényt, amely megadja a paraméterként átvett bolygóról, hogy hány napos ott egy évforduló, tehát hány ottani napból áll egy ottani év (keringés/forgás).
- Írj főprogramot, amely a fent megírt függvényeket használva bekéri egy bolygó adatait, utána megvizsgálja, hogy lakható-e. Ha nem, akkor kiírja, hogy lakhatatlan; ha igen, akkor pedig azt, hogy az ottaniak hány naponta ünneplik a születésnapjukat!
Adj mindennek szerepe szerinti nevet a programban!
2014
Derékszögű
A derékszögű koordinátarendszerben x (vízszintes) és y (függőleges) valós koordináták közösen határoznak meg egy pontot. A programodban ilyenek adatait kell tárolni.
- Definiálj összetett típust, amely egy pont helyét tárolja!
- Írj függvényt, amely paraméterként egy pontot kap, és értéke a pont origótól mért távolsága (Pitagorasz-tétel)!
- Írj függvényt, amely kiírja egy pont koordinátáit!
- Írj paraméter nélküli függvényt, amely a felhasználótól beolvassa egy pont koordinátáit, és értéke a beolvasott pont!
Egészítsd ki mindezt egy főprogrammal, amelyben beolvasod egy pont adatait, aztán visszaírod azokat a képernyőre! Utána írd ki az origótól való távolságát is, és végül azt, hogy közelebb van-e az origóhoz, mint 1 egység!
GPS
Egy programban GPS koordinátákkal adott földrajzi helyeket kell tárolni. Ez két valós szám: szélesség (-90° = déli sark, 0° = egyenlítő, +90° = északi sark) és hosszúság (-180° = legnyugatabb, 0° Greenwich, +180° = legkeletebb).
- Definiálj összetett típust, amely egy hely koordinátáit tárolja!
- Írj függvényt, amely kiírja egy hely koordinátáit!
- Írj függvényt, amely paraméterként egy helyet kap; értéke igaz, ha az északi féltekén van, amúgy hamis. Írj egy ugyanilyen függvényt, amely a keleti féltekére ad igazat, és a nyugatira hamisat.
- Írj paraméter nélküli függvényt, amely a felhasználótól beolvas egy koordinátapárt, és értéke a beolvasott hely!
Egészítsd ki mindezt egy főprogrammal, amelyben beolvasod egy hely adatait, utána visszaírod azokat a képernyőre, végül pedig kiírod, hogy az északi vagy a déli, és hogy a keleti vagy a nyugati féltekén van-e!
Lapszabászat
Egy lapszabászatban bútorlapokkal dolgoznak. A lapok szélességét (m), magasságát (m) és vastagságát (mm) jegyzik fel. A 18 mm-nél vékonyabb lapok ára 2800 Ft/m2, a 18 mm-esek és vastagabbak ára 3200 Ft/m2.
- Definiálj összetett típust, amely egy lap adatait tárolja!
- Írj függvényt, amely kiírja egy lap adatait!
- Írj paraméter nélküli függvényt, amely a felhasználótól beolvassa egy lap adatait, és értéke a beolvasott adat!
- Írj függvényt, amely paraméterként egy lapot kap, értéke pedig a lap ára forintban!
Egészítsd ki mindezt egy főprogrammal, amelyben beolvasod egy lap adatait, utána visszaírod azokat a képernyőre, és kiírod azt is, hogy hány forintba kerül!
BMI
Egy ember testtömeg-indexe a tömege (kg) osztva a testmagasságának (m) négyzetével. Pl. 63,2 kg, 1,71 m esetén a testtömeg-index 63,2/1,712 = 21,64. Átlagos testalkatúnak tekintjük a 18,5 és 25 közötti indexszel rendelkezőket.
- Definiálj összetett típust, amely egy ember tömegét és magasságát tárolja!
- Írj függvényt, amely egyetlen paramétereként egy ilyet kap, és visszatérési értéke igaz, ha átlagos testalkatú emberről van szó, amúgy hamis!
- Írj paraméter nélküli függvényt, amely a felhasználótól beolvassa egy ember adatait, és értéke a beolvasott adatpár!
- Írj egyparaméterű függvényt, amely kiírja egy ember adatait!
Egészítsd ki mindezt egy főprogrammal, amelyben beolvasod egy ember adatait, és visszaírod azokat a képernyőre! Végül írd ki, hogy a beolvasott adatok alapján átlagos testalkatúnak számít-e, vagy nem!