A KöMaL 2024. májusi informatika feladatai
Kérjük, ha még nem tetted meg, olvasd el a versenykiírást.
Feladat típusok elrejtése/megmutatása:
I-jelű feladatokA beküldési határidő 2024. június 17-én LEJÁRT. |
I. 627. Egy állatmenhelyen közösségi szolgálatot végeznek a diákok, ami nélkülözhetetlen a telep működéséhez. A munkára jelentkező diákok mindegyike egy időszakot jelöl meg a feladat elvégzésére.
Készítsünk programot i627 néven, amely a megadja a telep vezetőjének azt a leghosszabb időszakot, amelynek minden napjára van munkára vállalkozó és egy olyan napot, amely ebbe az időszakba esik és aznapra a legtöbb jelentkező van.
A program standard bemenetének első sorában a jelentkező diákok száma \(\displaystyle N\) (\(\displaystyle 1\le N\le 1000\)) és a munkára meghirdetett napok száma (\(\displaystyle 1\le M\le 365\)) szerepel. Az ezt követő \(\displaystyle N\) sorban az egyes vállalkozó diákok munkakezdési és -befejezési napjának sorszáma (\(\displaystyle 1\le Kezd\le Veg\le 365\)) található.
Példa bemenet: | Példa Kimenet: | 5 50 15 23 23 35 5 15 42 49 20 30 |
31 23 |
---|
A program a standard kimenet első sorába írja ki a leghosszabb, jelentkezővel lefedett időszak napjainak számát, amikor minden napra van diákmunka-vállaló. A második sorba írja ki annak a napnak a sorszámát, amely ebbe az időszakba esik és aznapra a legtöbb munkára vállalkozó jelentkezett. Ha több ilyen nap van, akkor ezek közül az elsőt adjuk meg.
Beküldendő egy tömörített i627.zip állományban a program forráskódja és rövid dokumentációja, amely megadja, hogy a forrásállomány melyik fejlesztői környezetben fordítható.
(10 pont)
I. 628. Egy \(\displaystyle N\times M\) képpontból álló terület képpontjainak módosítását megoldhatjuk úgy, hogy egyszerűen felülről lefelé soronként, egy soron belül balról jobbra haladunk, és egymás után beállítjuk a képpontok értékét. A képpontok módosításának sorrendje lehet más is. Egy videómegjelenítő a területek képpontjainak módosításakor lólépésben halad az alábbi algoritmus szerint:
- A bal felső sarokban lévő képpontól indul.
- Amennyiben az aktuális képpontból sikerül lólépésben egy még nem módosított képpontot találnia, akkor odalép, megváltoztatja, majd folytatja a műveletsort ebből a képpontból. Az adott helyről lólépéssel elérhető képpontokat az óramutató járásával egyező irányban vesszük sorra (lásd a mintát).
- Amennyiben az aktuális helyről nem érhető el lólépésben egyetlen, még nem módosított képpont sem, akkor az aktuális helyről kiindulva balról jobbra, illetve soronként fentről lefelé haladva megkeresi az első, még nem módosított képpontot, azt módosítja, majd folytatja a műveletsort a 2. lépés szerint. Ha keresés közben a terület utolsó sorának utolsó képpontja sem megfelelő, akkor az első sor második képpontjával folytatja a keresést.
Készítsünk programot i628 néven, amely \(\displaystyle N\) sor és \(\displaystyle M\) oszlop esetén megadja a terület pixeleinek módosítási sorrendjét az alábbi minta szerint.
A program a standard bemenet első sorából olvassa be \(\displaystyle N\) és \(\displaystyle M\) értékét (\(\displaystyle 2\le N\), \(\displaystyle M\le 50\)), és a standard kimenet \(\displaystyle N\) sorába írja ki, hogy az adott sorban lévő képpontok a módosítás sorrendjében hányadik lépésnél kerülnek sorra. Egy soron belül M oszlopban jelenítsük meg a sorrendet jelző számokat a minta szerint szóközökkel elválasztva úgy, hogy minden kiírt szám azonos számú karakterhelyet foglaljon el.
Példa:
Bemenet | Kimenet |
---|---|
7 13 |
1 28 83 86 3 30 67 60 5 32 39 22 7 84 87 2 29 66 59 4 31 38 47 6 13 24 91 82 85 78 73 68 61 48 33 40 23 8 21 88 77 72 65 58 53 44 37 46 49 12 25 14 81 89 79 74 69 62 55 52 41 34 17 20 9 76 71 64 57 54 43 36 45 50 11 26 15 18 90 80 75 70 63 56 51 42 35 16 19 10 27 |
Beküldendő egy tömörített i628.zip állományban a program forráskódja és rövid dokumentációja, amely megadja, hogy a forrásállomány melyik fejlesztői környezetben fordítható.
(10 pont)
I. 629. Két, egymásra merőleges harmonikus rezgés eredőjeként a rezgéseket végző test pályája egy érdekes alakzat, a Lissajous-görbe lesz. A mozgó test koordinátáit az idő múlásával leíró függvények:
\(\displaystyle x(t)=A_{x}\cdot\sin(k\cdot\omega\cdot t)\qquad\text{és}\qquad y(t)={A_{y}\cdot\sin(n\cdot\omega\cdot t+\varphi)}. \)
A képletek jelölései: \(\displaystyle A_x\) és \(\displaystyle A_y\) az \(\displaystyle x\) és \(\displaystyle y\) irányú maximális kitérés (amplitúdó), \(\displaystyle \omega\) egy alap körfrekvencia, a két merőleges irányú rezgés körfrekvenciája ennek \(\displaystyle k\)-szorosa, illetve \(\displaystyle n\)-szerese (\(\displaystyle k\), \(\displaystyle n\) pozitív egész), végül \(\displaystyle \varphi\) a fáziseltérés szöge a két rezgés között.
- Nyissunk meg egy táblázatkezelő munkafüzetet és az A1 cellától kezdve illesszük be az l‑adatok.txt, tabulátorokkal tagolt, UTF-8 kódolású szövegfáljt. Mentsük a munkafüzetet lissa néven a program alapértelmezett fájlformátumában. A megoldásban saját függvény vagy makró nem használható.
- A C6 cellába számoljuk ki függvény segítségével a B6 cella fokban megadott szögértékét radiánban.
- A feliratokat, igazításokat, mértékegységeket és a szegélyezést alakítsuk a minta szerint.
- Alkossuk meg a fentiek alapján a B9:C309 tartomány celláiban egy másolható képlet segítségével a rezgő test helyzetét az A oszlopban megadott időpontban.
- Készítsünk a B9:C309 tartomány adatai alapján a minta szerint \(\displaystyle Pont(XY)\) típusú diagramot. A diagramnak ne legyen címe, tengelyfeliratai és jelmagyarázata, a háttere legyen világossárga, a vonal színe legyen sötétkék, vastagsága 1,5 pont. Ellenőrizzük, hogy az alapadatok megváltoztatása megfigyelhető-e a diagramon!
- Az alábbi alapadatokkal készítsünk \(\displaystyle \varphi=0^{\circ}\), \(\displaystyle \varphi=3^{\circ}\), \(\displaystyle \varphi=6^{\circ}\), \(\displaystyle \ldots{}\), \(\displaystyle \varphi=66^{\circ}\) és \(\displaystyle \varphi=69^{\circ}\) fáziseltérésekkel diagramokat, ezeket mentsük képként, és készítsünk folyamatosan ismétlődő animált GIF képet belőle fázisforgás.gif néven.
\(\displaystyle A_{x}=2\) | \(\displaystyle A_{y}=2\) | \(\displaystyle \omega=0{,}1\) | \(\displaystyle n=3\) | \(\displaystyle k=5 \) |
Beküldendő egy tömörített i692.zip állományban a lissa táblázatkezelő munkafüzet, a fázisforgás.gif képállomány és egy rövid dokumentáció, amelyben szerepel a táblázatkezelő neve, verziószáma.
Letölthető állomány: l-adatok.txt
(10 pont)
I. 630. Az ezer lakosra jutó személygépkocsik és az országonkénti autópályahossz változását tekintjük át néhány európai ország adatait és ezek népességét vizsgálva.
- Nyissunk egy üres táblázatkezelő munkafüzetet. Hozzunk létre benne három munkalapot Aphossz, Gkszam és Lakossag néven.
- Töltsük be a munkalapokra az A1 cellától kezdve az UTF-8 kódolású, tabulátorokkal tagolt, a munkalapok nevével megegyező nevű szövegfájlok tartalmát. Munkánkat mentsük autok néven a táblázatkezelő alapértelmezett formátumában. A megoldásban saját függvény vagy makró nem használható.
- A Gkszam munkalap E11-es cellája üres: tartalma legyen a megelőző és a rákövetkező évi franciaországi adatok átlaga.
- Mindhárom munkalap számadataira állítsunk be ezres tagolást.
- Formázzuk meg a minta szerint az Aphossz munkalap A31:C33 tartományát és hasonlóan a Gkszam munkalap A31:C34 tartományát.
- Határozzuk meg annak a két országnak a nevét, amelyek a vizsgált időszakban elsőként zártak be autópályát, illetve minősítettek át autópályát más típusú úttá. A két ország neve kerüljön az Aphossz munkalap B32 és B33 cellájába.
- Számítsuk ki a Gkszam munkalap B28:R28 tartományában, hogy mennyi személygépkocsi volt összesen forgalomban a vizsgált országokban az adott évben.
- Számítsuk ki, hogy 2013-ban melyik három országban volt a legnagyobb a zsúfoltság, vagyis hol volt a legtöbb autó autópálya-kilométerenként. A három „dobogós'' ország neve kerüljön az Gkszam munkalap B32, B33 és B34 cellájába.
- Készítsük el a minta szerinti grafikont Magyarország, Csehország és Lengyelország autópályahosszának alakulásáról (az ábrát lásd a következő oldalon). A grafikont helyezzük át az apdia nevű diagram típusú munkalapra.
- Készítsük el a minta szerinti grafikont Magyarország, Csehország és Lengyelország ezer lakosra jutó személygépkocsi adatainak alakulásáról (az ábrát lásd a következő oldalon). A grafikont helyezzük át a gkdia nevű diagram típusú munkalapra.
Beküldendő egy tömörített i630.zip állományban a táblázatkezelő munkafüzet, illetve egy rövid dokumentáció, amelyben szerepel a megoldáskor alkalmazott táblázatkezelő neve, verziószáma.
Források:
https://www.ksh.hu/stadat_files/sza/hu/sza0048.html,
https://www.ksh.hu/stadat_files/sza/hu/sza0047.html,
https://www.ksh.hu/docs/hun/eurostat_tablak/tabl/tps00001.html.
Letölthető állományok: aphossz.txt, gkszam.txt és lakossag.txt.
(10 pont)
Figyelem!
Az informatika feladatok megoldásait ne e-mailben küldd be! A megoldásokat az Elektronikus munkafüzetben töltheted fel.