A KöMaL 2022. áprilisi 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ő 2022. május 16-án LEJÁRT. |
I. 562. (É). Egy műhold segítségével téglalap alakú területről fényerősség értékeket mértek éjszakai időszakban. A fényerősség 0 azon a helyen, ahol teljes a sötétség, és 100, ahol a műszer érzékelője maximumot érzékel. A téglalap alakú terület \(\displaystyle N\times M\) négyzet területegységből áll, amelyek mindegyikét egy-egy fényerősség érték jellemez. A térkép szélein lévők kivételével minden területegységnek négy közvetlen szomszédja van.
Rendelkezésünkre áll a terkep.txt adatfájl, amelynek első sorában két egész szám (\(\displaystyle 1\le N, M\le 100\)) található, a térkép sorainak és oszlopainak száma. Az állomány következő \(\displaystyle N\) sorában, soronként \(\displaystyle M\) darab 0 és 100 közötti egész szám található, a fényerősség értékek. A térkép szélén a fényerősség értéke mindenhol 0. Az állomány soraiban az adatokat egy-egy szóköz választja el egymástól.
Készítsünk programot i562 néven, amely az állomány adatait felhasználva a következő kérdésekre ad választ.
1. Olvassuk be és tároljuk el a terkep.txt állomány adatait, és annak felhasználásával oldjuk meg a következő feladatokat.
2. Határozzuk meg, hogy a terület hány százaléka nem sötét teljesen. Az eredményt két tizedesjegy pontossággal írjuk ki.
Fényesnek nevezzük azokat a mérési pontokat, amelyek nagyobb fényerősségűek a négy közvetlen szomszédjuknál.
Minta bemenet (a fényes mérési pontok félkövér stílussal):
3. Írjuk a képernyőre a fényes mérési pontok számát.
4. Határozzuk meg a legkisebb területű azon téglalap bal felső és jobb alsó sarkának a koordinátáit, amelyben az összes fényes mérési pont benne van.
5. Határozzuk meg annak a \(\displaystyle K\times K\)-s négyzetnek a bal felső koordinátáit, amelyikben a legtöbb fényes mérési pont van. \(\displaystyle K\) értékét (\(\displaystyle 1\le K\le \min{(N,M)}\)) olvassuk be a billentyűzetről. Ha több megoldás van, akkor bármelyiket megadhatjuk.
Beküldendő egy tömörített i562.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ó.
Letölthető állomány: terkep.txt.
(10 pont)
I. 563. Anna és Péter játék rulettel játszanak, illetve a játék nyerési lehetőségeit tanulmányozzák. A rulettben 0-tól 36-ig terjednek a számok. A rulettkeréken a számok egy körgyűrű 37 fiókjában találhatók, ezek közül zöld színű a nulláé, a többi harminchat szám fele-fele fekete, illetve piros színű dobozban foglal helyet.
Most csak színekre fogadnak, amely nyerés esetén a tét kétszeresét fizeti, vesztésnél a tét a banké. Anna csak pirosra és Péter csak feketére tesz. Céljuk a kezdőtőkéjük megkétszerezése. Egyforma zsetonszámmal kezdenek és elsőre mindketten 1-1 zsetont tesznek. Ha Anna veszít, akkor megkétszerezi a tétjét, ha nyer, akkor újra egyet tesz. Péter vesztés esetén eggyel növeli a tétjét, míg ha nyer, akkor ő is visszatér a kezdeti tétre. A piros és a fekete valószínűsége természetesen azonos, de nem pontosan 50%, mivel a golyó a 0-ra érkezhet \(\displaystyle 1/37\)-ed eséllyel, amely zöld színű. Ekkor mindketten vesztenek. A bank tőkéje korlátlan.
Táblázatkezelő program segítségével oldjuk meg a játék szimulációját. A táblázat elrendezése tetszőleges lehet, de ügyeljünk az áttekinthetőségre és a megértést feliratokkal segítsük elő. A táblázat legyen felkészítve arra, hogy a játék hosszú is lehet, de a még fel nem használt cellák maradjanak üresen. A kezdőtőke 10 és 100 zseton között változhat.
Indulásnak adjuk meg, hogy mennyi Anna és Péter kezdőtőkéje. A játék addig tartson, amíg az egyikőjük vagy eléri a kezdőtőke kétszeresét, vagy elveszíti az összes zsetonját.
Értékelés: a feladat megoldása eddig 7 pontot ér. További 3 pont kapható, ha egymás utáni 10 játék alapján meghatározzuk, hogy hányszor tesz tétet Anna és Péter a játék során.
Beküldendő egy i563.zip tömörített á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.
(10 pont)
I. 564. Az ingamozgás során a test egy köríven, két szélső helyzet között periodikus mozgást végez.
Készítsünk animációt egy SVG-típusú vektorgrafikus képállományba, amely egy inga mozgását mutatja be. Az animációban szereplő alakzatok tetszőleges méretűek, színűek és kitöltésűek lehetnek. Az animációt a képállomány szövegének szerkesztésével érdemes megoldani. Az animációban az alakzatok olyan sebességgel mozogjanak, hogy a mozgás megfigyelhető legyen. A lejátszási idő, az ismétlődések száma, valamint más paraméterek szabadon válaszhatók.
SVG-ábra animációjának készítése szerepelt az I.\(\displaystyle \;\)357. feladatban, illetve az ábra szerkezetéről olvashatunk a http://svg.elte.hu/ címen.
Értékelés: a matematikai inga mozgásának bemutatásával 7 pont és az ingamozgás további jelenségének ábrázolásával még 3 pont érhető el.
Beküldendő tömörített i564.zip állományban az animáció SVG-állománya és egy rövid dokumentáció, amely tartalmazza a megoldás vázlatos leírását.
(10 pont)
I/S-jelű feladatokA beküldési határidő 2022. május 16-án LEJÁRT. |
I/S. 62. Egy országban \(\displaystyle N\) város található, és közöttük \(\displaystyle M\) darab kétirányú út vezet. Szeretnénk kiépíteni egy hálózatot úgy, hogy bizonyos városokba adótornyokat telepítünk (mindegyikbe legfeljebb egyet). A városokat 1-től \(\displaystyle N\)-ig indexeljük.
Egy út tökéletesen lefedett, ha pontosan az egyik végpont városába telepítünk adótornyot. Adjuk meg, hogy maximum hány adótornyot tudunk telepíteni úgy, hogy mind az \(\displaystyle M\) út tökéletesen legyen lefedve.
A bemenet első sorában az \(\displaystyle N\) és \(\displaystyle M\) számok találhatók szóközzel elválasztva. A következő \(\displaystyle M\) sor mindegyike két számot tartalmaz: egy adott várospár indexeit, amelyeket út köt össze.
A kimenet egyetlen sorában egy szám szerepeljen: maximum hány adótornyot tudunk telepíteni a feltételeknek megfelelően. Ha ez nem lehetséges, írjunk ki -1-et.
Magyarázat: telepítsünk adótornyot az 1, 3, 5 indexű városokba.
Korlátok: \(\displaystyle 1 \le N,M \le 10^{5}\). Időlimit: 0,4 mp.
Értékelés: a pontok 50%-a kapható, ha az \(\displaystyle 1 \le N, M \le 10\) feltételek esetén a program helyes kimenetet ad.
Beküldendő egy is62.zip tömörített állományban a megfelelően dokumentált és kommentezett forrásprogram, amely tartalmazza a megoldás lépéseit, valamint megadja, hogy a program melyik fejlesztői környezetben futtatható.
(10 pont)
S-jelű feladatokA beküldési határidő 2022. május 16-án LEJÁRT. |
S. 161. Egy épület különböző pontjaira vizet kell vezetni. Az épület tervrajzán \(\displaystyle N\) darab pont mutatja ezeket a helyeket. A tervrajzra gondolatban egy koordináta-rendszert illesztünk, amelyen az \(\displaystyle N\) pont mindegyike egész koordinátákra esik. A vezetékeket úgy építik, hogy a pontokat összekötik egyenes csövekkel úgy, hogy bármelyikből bármelyik másikba el lehessen jutni a csöveken haladva. A merev csöveket csak a tervrajzon jelölt pontokban tudjuk elágaztatni és nem is keresztezhetik egymást. Minden cső a koordináta-rendszer egy-egy rácsvonalára kerül és két megadott pontot köt össze. Adjuk meg, hogy legalább milyen hosszú lesz a csővezetékek hossza, ha közvetetten bármely két pontot összekötjük.
Bemenet: az első sor tartalmazza a pontok \(\displaystyle N\) számát. A következő \(\displaystyle N\) sor mindegyike egy-egy pont \(\displaystyle x\) és \(\displaystyle y\) koordinátáját tartalmazza.
Kimenet: a kimenet első és egyetlen sorába a csövek lehető legkisebb összhosszát kell kiírni. Ha nem lehet őket mind összekötni, akkor -1-et kell kiírni.
Minta:
Bemenet (a / jel sortörést helyettesít) | Kimenet |
6 / 0 2 / 0 3 / 1 0 / 1 3 / 2 2 / 2 3 | 7 |
Korlátok: a koordináták abszolút értéke legfeljebb 1000 és \(\displaystyle N \le 30\). Időlimit: 0,5 mp.
Értékelés: a pontok 30%-a kapható, ha az \(\displaystyle x\) koordináta 0 vagy 1 értéke esetén a program helyes kimenetet ad.
Beküldendő egy s161.zip tömörített állományban a megfelelően dokumentált és kommentezett forrásprogram, amely tartalmazza a megoldás lépéseit, valamint megadja, hogy a program melyik fejlesztői környezetben futtatható.
(10 pont)
Figyelem!
Az informatika feladatok megoldásait ne e-mailben küldd be! A megoldásokat az Elektronikus munkafüzetben töltheted fel.