A KöMaL 2026. februári 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ő: 2026. március 16.. 24:00 (UTC+02:00). |
I. 687. Sajnos a park lámpái gyengék és van, amelyik tönkrement. A park felújításához a régi oszlopokra új lámpákat fognak tenni. Minden lámpa azonos típusú lesz, azonos sugarú kört fog megvilágítani. A megvilágítás sugarát úgy kell megválasztanunk, hogy minimális legyen, mivel spórolni kell, de minden lámpaoszloptól bármelyik másikhoz el lehessen jutni a megvilágított területeken keresztül. Készítsünk programot i687 néven, amely megadja a lámpák fénykörének legkisebb sugarát, amely a feltételeknek megfelel.

A program standard bemenetének első sorában a lámpaoszlopok \(\displaystyle N\) száma (\(\displaystyle {1\leq N\leq 1000}\)) található. A következő \(\displaystyle N\) sorban a lámpaoszlopok \(\displaystyle x_i\), \(\displaystyle y_i\) koordinátái (\(\displaystyle 1\leq x_i,y_i\leq 100\,000\), egész szám) szóközzel elválasztva szerepelnek.
A program standard kimenetére írjuk ki a lámpa fénykörének minimális sugarát valós számként \(\displaystyle 10^{-6}\) pontossággal.
Magyarázat:

Beküldendő egy tömörített i687.zip állományban a program forráskódja és rövid dokumentációja, amely tartalmazza a megoldás rövid leírását, és megadja, hogy a forrásállomány melyik fejlesztői környezetben fordítható.
(10 pont)
I. 688. Adott egy \(\displaystyle N\) oldalú négyzetháló, amelyben a villámok terjedését szeretnénk szimulálni. A négyzetháló celláiban \(\displaystyle 99\) jelöli a villámot elnyelő (például földelő) cellákat, amelyek adottak. A négyzet többi celláját töltsük fel \(\displaystyle 0\ldots 98\) közötti véletlen számokkal. A négyzet felső sorának \(\displaystyle 99\)-en kívüli, maximális értékű celláiból fognak a villámok kiindulni. Ha több maximális értékű cella van, akkor egyszerre több villám indul ki. A villámok lefelé tejednek tovább, az érkező villám le balra, lefelé, vagy le jobbra terjedhet.

Az érkező villám lehetséges útja a negyedik sorban vastagon keretezve a mellékelt táblázatban. A három lehetséges szám közül a maximális érték irányába folytatódik a villám. Ha azonos számokat talál, akkor ezek irányában szétágazik. Ha eléri a terület határát vagy egy \(\displaystyle 99\) tartalmú cellába fut bele, akkor ott a terjedés megáll. Ha két villám egyszerre ér egy azonos pontba, akkor ott egyesülnek.
Készítsünk programot, amely az \(\displaystyle N\) oldalú négyzethálóban a villámok terjedését mutatja be.
A program standard bemenetének első sorában a négyzetháló oldalhossza \(\displaystyle N\) (\(\displaystyle 5\leq N\leq 100\)) található. A következő \(\displaystyle N\) sorban szóközzel elválasztva egy-egy cella kezdő állapota szerepel, azaz \(\displaystyle 99\), ha elektromos földelés, vagy \(\displaystyle -1\), ha az még nem kitöltött.
Végezzük el a négyzetháló celláinak feltöltését, azaz a \(\displaystyle -1\) értékek lecserélését \(\displaystyle 0\ldots 98\) közötti véletlen számokra.
A programmal a parancssorba a négyzetháló celláinak tartalmát írjuk ki. A villámok útvonalát a számok piros betűszínével ábrázoljuk. A számok, illetve a karakterek között egy-egy szóköz legyen.
Minta:

Beküldendő egy tömörített i688.zip állományban a program forráskódja és rövid dokumentációja, amely tartalmazza a megoldás rövid leírását, és megadja, hogy a forrásállomány melyik fejlesztői környezetben fordítható.
(10 pont)
I. 689. A http://www.t-es-t.hu/minden/tudom/pii/pi10000.txt linken elérhető a \(\displaystyle \pi\) első \(\displaystyle 10\,000\) számjegye.
- Jelöljük ki a számjegyeket és másoljuk a vágólapra.
- Nyissunk meg egy szövegszerkesztőt, és illesszük be a vágólap tartalmát egy üres dokumentumba.
- Kizárólag szövegszerkesztő és táblázatkezelő használatával valósítsuk meg, hogy a táblázat első sorában az A:J oszlop celláiban a \(\displaystyle \pi\)-nek pontosan az első tíz számjegye, a továbbiakban folytatólagosan a következő tíz–tíz számjegye jelenjen meg a minta szerint.
- Igazoljuk, hogy az eredmény valóban csak a szövegszerkesztő és a táblázatkezelő segítségével készült: a pontos lépésekről készítsünk dokumentációt. Ehhez hasonlók szerepeljenek a leírásban: „A táblázatkezelőben kijelölöm az A oszlopot, majd a Keresés és csere menüpontban az összes "#" karaktert lecserélem ""-re, vagyis törlöm.”
- Készítsünk oszlopdiagramot arról, hogy a vizsgált \(\displaystyle 10\,000\) számjegyben hányszor szerepel a 0, 1, \(\displaystyle \ldots\), 9. A diagramot készítsük el új, diagram típusú munkalapra, és kapjon a minta szerinti kinézetet.
- Készítsünk oszlopdiagramot, amely szemlélteti, hogy az első ezer, a második ezer, \(\displaystyle {\ldots}\) számjegy között hányszor szerepel a 0. Ezt a diagramot is készítsük el a minta szerint.
- Határozzuk meg, hogy a \(\displaystyle \pi\) első \(\displaystyle 10\,000\) számjegye közül melyik számjegy ismétlődik közvetlenül egymás után a legtöbbször. Mekkora az ismétlődő szakasz hossza, és melyik tizedesjegytől hányadikig tart? Készítsük el a minta szerinti helyen a táblázatot és kerüljenek az eredmények a sárga mezőkbe.





A diagramokhoz ezen az oldalon találhatjuk meg a háttérképet: https://www.scientificamerican.com/article/a-wild-claim-about-the-powers-of-pi-creates-a-transcendental-mystery/.
Segédszámításokat tetszőleges, adatot nem tartalmazó helyen lehet végezni. A megoldásban saját függvény vagy makró nem használható.
Beküldendő egy tömörített i689.zip állományban a pi-10000 néven mentett táblázatkezelő munkafüzet és egy dokumentáció, amelyben szerepel az átalakítás 4. pontban kért lépéssorozatának részletes leírása, a készítő neve, iskolája, a táblázatkezelő neve és verziószáma.
(10 pont)
I. 690. Egy diák a különféle operációs rendszerek parancssori utasításait tanulmányozza. Gondolta, hogy egyszerre megtanulja a legelterjedtebbeket: a Windows, a Linux és a MacOS parancsait. A három operációs rendszerben vannak hasonló tevékenységek, például fájlok másolása, törlése, mozgatása stb. Ezek neve sok esetben hasonló, egyes esetekben azonos, vagy kissé eltérő. A https://www.kaggle.com/datasets/vaibhavdlights/linuxcmdmacos-commands oldalon elérhetők a három operációs rendszer parancssori utasításai. Minden utasításhoz kapcsolódik egy rövid angol leírás. Ezek hasonló funkciójú parancsok esetében szintén hasonlítanak egymásra.
A három operációs rendszer utasításainak közös tanulásához hasznos lenne kapcsolatot létrehozni a három utasításkészlet között. A diák úgy gondolta, hogy két különböző operációs rendszerben lévő parancs közötti kapcsolat annál erősebb, minél inkább hasonlít a nevük, illetve minél több közös szó szerepel a leírásukban. A kapcsolat erősségét egy pontszám adja meg, amelynek számítása a következő:
- 20 pontot ér, ha a két utasítás neve azonos;
- ha a két utasítás neve nem azonos, de az egyik utasítás legalább 5 első betűje szerepel a másik utasításban, akkor ez 10 pontot ér;
- az utasítások nevétől függetlenül további 2-2 pontot jelent a két utasítás leírásában minden azonos szó, vagy ha a szavak legalább első 5 betűje megegyezik.
Például a cd parancs mindhárom operációs rendszerben szerepel, tehát a Windows cd parancs és a Linux cd parancs között 20 pont a kapcsolat erőssége a fenti első eset szerint. Ehhez jön még további 4 pont, mivel mindkét leírásban szerepel a „change” és a „directory” szó. Így a két operációs rendszerben a két parancs kapcsolatának erősségét 24 pontra értékeljük.
A fenti számításban a kis- és nagybetűket egyenértékűnek tekintjük. Ne vegyük figyelembe a pontszám kiszámításakor a leírásban a névelőket, kötőszavakat és elöljárókat, például „a”, „an”, „the”, „or”, „to”, „from”, „of”, „on” „and”, „for”.
Az utasítások közötti kapcsolatot felhasználva készítsünk programot, vagy táblázatkezelő munkafüzetet, vagy SQL adatbázist, amely segíti a tanulást:
Az egyik módon úgy, hogy egy szavakból álló keresőkifejezésre (például a „file copy”, vagy „make directory”) megadja mindhárom operációs rendszer utasításaiból a leginkább releváns találatokat. Ehhez a fenti pontozásból a 3. pontot alkalmazza a keresőkifejezés és a parancsok leírása közötti erősség kiszámítására. Csak a 0-nál nagyobb erősségű parancsokat adja meg, erősség szerint csökkenő sorrendben.
A másik módnál az egyik operációs rendszer valamely utasítását megadva bemenetként válaszul megadja a másik két operációs rendszerben a bemenethez leginkább kapcsolódó utasításokat a kapcsolat erőssége szerinti csökkenő sorrendben.
A fenti műveleteket úgy valósítsuk meg, hogy a program bekéri a parancssorból a bemeneti értékeket, vagy néhány cellába kell beírni azokat, vagy egy SQL utasításban pl. a WHERE feltételben szerepelnek. A program az eredményeket kiírja a parancssorba, a táblázatkezelő megjeleníti azokat adott cellákban, illetve az SQL lekérdezés eredményül adja őket.
Beküldendő egy tömörített i690.zip állományban a program forráskódja, vagy a táblázatkezelő munkafüzet, vagy az SQL adatbázis, valamint egy felhasználói dokumentáció, amelyben szerepel a megoldás használatának módja. A program a szokásos módon folytasson párbeszédet a felhasználóval. A táblázatkelő munkafüzetben jelezzük, hogy melyik cellákba várunk bemenetet, és jelöljük, hogy mely cellákban kapunk eredményeket. Adatbázis-kezelés esetén a szöveges kereséshez adjuk meg a használható SQL parancsot, például SELECT oprsz, parancs, leiras FROM … WHERE keres = "file copy". A megoldás során most is csak a versenykiírásban szereplő programozási nyelvek és alkalmazói programok használhatók.
(10 pont)
Figyelem!
Az informatika feladatok megoldásait ne e-mailben küldd be! A megoldásokat az Elektronikus munkafüzetben töltheted fel.

