A programozás alapjai I. - 2. kisZh
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
2014
Mátrix 1.
A SCH mátrix 208 ablaka összesen 832 külön kivilágítható pontot, pixelt tartalmaz. Ezeknek hatalmas fényerőt kell produkálniuk, ezért élettartamuk véges. A szervezők a filmek lejátszása után arra kíváncsiak, melyek azok a pixelek, amelyeket az átlagnál nagyobb terhelés érte.
A C programod bemenetként a felvillanó pixelek sorszámait kapja, ahol a legelső pixel a 0. számú. Ezek össze-vissza vannak, és egy pixel többször is felvillanhat. A bemenet végét egy negatív szám jelzi. Ha ezt megkapta, írja ki a képernyőre azon pixelek sorszámait, amelyek többször villantak fel, mint amennyiszer az összes pixel átlagosan (beleértve azokat is, amelyek egyáltalán nem)! A program ne végezzen felesleges műveletet!
A bemenet formátuma:
5 3 9 2 4 6 7 8 0 9 4 2 5 45 87 830 831 2 4 5 ...még sok szám... -1
A kimenet formátuma:
4. pixel, 37 felvillanás 9. pixel, 39 felvillanás
Mátrix 2.
A SCH mátrix 208 ablaka összesen 832 külön kivilágítható pontot, pixelt tartalmaz. Ezeknek hatalmas fényerőt kell produkálniuk, ezért élettartamuk véges. A szervezők a filmek lejátszása után arra kíváncsiak, melyik az a pontosan egy pixel, amelyiknek a legtöbbet kellett világítania.
A C programod bemenetként a felvillanó pixelek sorszámait kapja, és mellettük a felvillanás hosszát másodpercben. A legelső pixel az 1. számú. A sorszámok össze-vissza érkeznek, egy pixel többször is szerepelhet. A bemenet végét a 0 0 jelzi. Ha ezt megkapta a program, írja ki a képernyőre annak a pixelnek a számát, amely a legtöbbet világított, és azt is, hogy ez hány másodperc! A program ne végezzen felesleges műveletet!
A bemenet formátuma:
3 1.2 4 0.7 3 2.9 5 0.4 6 0.2 3 6.9 0 0
A kimenet formátuma:
Legtöbbet világító: 3. pixel, 11.000000 sec
Bubik 1.
„Péntek éjjel eltűnt az összes Bubi bringa a városból.” SCH QPA feladat keretében kellett ezeket a versenyzőknek a koli elé vinniük. A szervezők kíváncsiak arra, hogy melyik csapat tudott a legtöbb bubival odatekerni a koli elé.
Az adatok kiértékeléséhez egy programot kell írnod. A program bemenetén számpárokat kap (csapat sorszáma 1-től 95-ig, hozott bringák száma). A bemenet végét a -1 -1 számpár jelöli. A beérkező biciklik csapatonként össze-vissza sorrendben lesznek; egy csapat akár többször is hozhat biciklit.
19 3 4 2 18 4 19 5 -1 -1
A kimenet annak a csapatnak a sorszáma és hozott bringáinak száma kell legyen, amelyik a versenyszámot a legtöbb bubival megnyeri:
19. csapat, 8 bicikli
Bubik 2.
„Péntek éjjel eltűnt az összes Bubi bringa a városból.” SCH QPA feladat keretében kellett ezeket a versenyzőknek a koli elé vinniük. A szervezők kíváncsiak arra, hogy melyik csapat, hány %-át hozta az összes odahordott biciklinek.
Az adatok kiértékeléséhez egy programot kell írnod. A program bemenetén számpárokat kap (csapat sorszáma 1-től 95-ig, hozott bringák száma). A bemenet végét a 0 0 számpár jelöli. A beérkező biciklik csapatonként össze-vissza sorrendben lesznek; egy csapat akár többször is hozhat biciklit.
19 3 4 2 18 4 19 5 0 0
A kimenet első sora az összes biciklik száma, majd egy lista csapatonként a %-okkal. Amelyik csapat nem hozott bringát, az ne szerepeljen a kimenetben!
Összesen 14 bicikli. 4. csapat, 14.285714% 18. csapat, 28.571429% 19. csapat, 57.142857%