A KöMaL 2025. szeptemberi 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ő 2025. október 15-én LEJÁRT. |
I. 667. Egy téglalap alakú asztalon robotjárművek mozognak úgy, hogy időegységenként egy távolságegységet tehetnek meg balra, jobbra, lefelé vagy felfelé. A járművek intelligensek, érzékelik helyzetüket és egymást, nem ütköznek össze. Az asztalra gondolatban egység oldalú négyzetekből négyzethálót helyezünk. A robotok mindegyike egy ilyen négyzetben helyezkedik el, úgy, hogy egy négyzetben több robot is elfér. A robotok maguk döntik el minden lépésüket, hogy helyben maradnak, vagy valamelyik szomszédos pozícióba mennek tovább.

Készítsünk programot i667 néven, amely megadja, hogy \(\displaystyle T\) időegység alatt ugyanarra a helyre maximum hány robotjármű juthat el, és hol van ez a hely. Több megoldás esetén elegendő egyet megadni.
A program standard bemenetének első sorában az asztal oldalainak hossza (\(\displaystyle {1\leq N}, {M\leq 100}\)), a robotjárművek száma (\(\displaystyle {1\leq DB\leq 1000}\)) és a vizsgált időtartam (\(\displaystyle {1\leq T\leq 100}\)) szerepel. A következő \(\displaystyle DB\) sor egy-egy jármű indulási helyét (\(\displaystyle {1\leq X_i\leq N}\), \(\displaystyle {1\leq Y_i\leq M}\)) tartalmazza egy-egy szóközzel elválasztva.

A programmal a standard kimenetre írjuk ki a maximális járműszámot, ahány darab robot egyetlen helyre eljuthat, és annak helykoordinátáit szóközzel elválasztva.
Magyarázat: a 3. sor 5. mezőjéhez és a 4. sor 4. mezőjéhez négy robot is elérhet 2 időegység alatt, míg több már nem.
Beküldendő egy tömörített i667.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. 668. Zoliék nemrég tanulták az iskolában a Caesar-kódolású titkosírást. Az óra végére felkeltette a figyelmét a módszer. Már sajnálta, hogy az óra elején nem figyelt. Tudta, hogy valami fontos lépés kimaradt (a szöveg előkészítése a titkosításra, a nyelvi rendszer elrejtése a szavak és írásjelek törlésével, és a kisbetűk nagybetűkké alakításával). Ezért egy kis csavarral próbálta megnehezíteni a kódfejtők dolgát.
- Nyissunk meg egy üres táblázatkezelő munkafüzetet.
- Illesszük be a B2 cellától a Zoli készítette és a titkos.txt-be elmentett kódolt szöveget.
- Mentsük el a munkafüzetet zolititkos néven a táblázatkezelő alapértelmezett formátumában.
- Az \(\displaystyle \textbf{A2}:\textbf{A41}\) tartomány celláit töltsük fel rendre az 1, 2, ..., 40 számokkal.
- Végezzük el ugyanezt a \(\displaystyle \textbf{C1}:\textbf{AP1}\) tartományban is.
- A \(\displaystyle \textbf{C2}:\textbf{AP41}\) tartomány celláiban bontsuk fel betűkké a kódolt üzenet sorait.
- Próbáljuk meg a Caesar-kód ismeretében megfejteni az immár betűire szedett üzenetet. Derítsük ki, hogy milyen ravaszsággal próbálta Zoli kiküszöbölni az óra elején elmulasztottakat.
- A megfejtett üzenetet másoljuk át a szövegszerkesztőbe, tegyük folyamatos szöveggé, és mentsük el dekódolva.docx néven.
- A szöveget egy online szövegfelolvasóval (pl.: https://www.narakeet.com/app/text-to-audio) alakítsuk mp3 fájllá. A fájl neve zoliuzenet.mp3 legyen.
Minta:

Segédszámításokat az AP oszloptól jobbra lehet végezni. A megoldásban saját függvény vagy makró nem használható.
Beküldendő egy tömörített i668.zip állományban a zolititkos táblázatkezelő munkafüzet, a dekódolva.docx, a zoliuzenet.mp3 fájl és egy rövid dokumentáció, amelyben szerepel Zoli titkosításának magyarázata, az alkalmazott táblázatkezelő neve és verziószáma.
Letölthető fájl: titkos.txt
(10 pont)
I. 669. A régi magyar könnyűzenei albumokat játszó rádióadó az elmúlt öt évtized kiadott lemezeiből választott ki 50-et. Ebben a feladatban a kiválasztott albumokhoz, az albumokon szereplő dalokhoz és az albumokat megjelentető lemezkiadókhoz kapcsolódó feladatokat kell megoldanunk. Az adatbázis a következő táblákat tartalmazza:
Táblák:



Az alábbiakban következő feladatokat megoldó SQL parancsokat rögzítsük a lemez_megoldas.sql nevű állományban a feladatok végén zárójelben megadott névvel. A javítás során csak ennek az állománynak a tartalma lesz értékelve. Ügyeljünk arra, hogy a lekérdezésekben pontosan a kívánt mezők szerepeljenek, felesleges mezőt ne jelenítsünk meg.
- A lemez.sql állomány tartalmazza az adatbázist és a táblákat létrehozó, valamint az adatokat a táblába beszúró SQL parancsokat! Futtassuk a lokális SQL szerveren a lemez.sql parancsfájlt.
- Készítsünk lekérdezést, amely megadja a '80-as években (1980–1989) megjelent albumok előadóinak nevét ábécérendben. A listában minden név csak egyszer jelenjen meg. (2elo80)
- Készítsünk lekérdezést, amely megadja azokat a dalokat, amelyek címében előfordul a ,,rock and roll'' szövegrészlet. A lekérdezés jelenítse meg a dal címét, valamint annak az albumnak az előadóját, címét és megjelenésének évét, amelyen a dal szerepel. (3rock)
- Készítsünk lekérdezést, amely megadja, hogy melyik kiadó hány albumot adott ki. A lista legyen a kiadott albumok száma szerint csökkenő sorrendben. (4kiadok)
- Készítsünk lekérdezést, amely megadja azt az évet, amelyben a legtöbb album jelent meg. Ha több ilyen év van, akkor elegendő az egyiket megjeleníteni. (5evek)
- Készítsünk lekérdezést azokról a dalokról, amelyek címében szerepel a ,,dal'' szó önálló, ragozatlan szóként. A lekérdezés az album címét, a hozzá kapcsolódó rádióműsor online elérhetőségét, az előadó nevét és a dal címét jelenítse meg. (6dal)
- A kiválasztott könnyűzenei albumok nagy részét a Hungaroton adta ki. Melyik az az év, amikor először jelent meg olyan album, amelyet beválasztottak az 50-es listába, de nem a ,,Hungaroton'' adta ki? A lekérdezés jelenítse meg a kiadó nevét, a megjelenés évét, az album címét és az előadó nevét. Ha az adott évben több – a feltételnek megfelelő – album is megjelent, akkor elegendő az egyik adatait megjeleníteni. (7eloszor)
- Soroljuk fel lekérdezés segítségével azoknak a daloknak a címét, amelyek ugyanazon az albumon vannak, mint az ,,Ez a helyzet'' című szám. (8ez)
- Készítsünk lekérdezést, amely megadja azoknak a kiadóknak a nevét és alapításának évét, amelyek az alapítás évében vagy az azt követő évben megjelentettek az adatbázisban szereplő albumot. (9alap)
Beküldendő egy tömörített i669.zip állományban a lemez_megoldas.sql nevű állomány, amely a feladatok megoldását tartalmazza.
Letölthető állomány: lemez.sql
(10 pont)
I. 670. A Google Térkép a tömegközlekedési adatokat elsősorban a közlekedési szolgáltatóktól kapja. Az adatok GTFS (General Transit Feed Specification) formátumban érkeznek a szolgáltatóktól a zökkenőmentes feldolgozás érdekében. A közlekedési társaságok egy része nyilvánosan is elérhetővé teszi az adatokat ebben a formátumban, így azokból nem csak a Google, hanem bárki készíthet saját útvonaltervező alkalmazást.
A https://www.kaposbusz.hu/letoltheto-menetrend oldalon elérhetők Kaposvár autóbusz közlekedésének GTFS formátumú adatai. Töltsük le a tömörített állományt, és vizsgáljuk meg a benne található routes.txt, trips.txt, stop.txt, stop_times.txt szöveges fájlokat. Csak ezen állományok felhasználásával dolgozzunk, a többi fájlban található adatokat most ne használjuk fel.
Készítsünk programot, amely a fenti négy állományban lévő adatok alapján megadja, hogy egy adott időpontban (óra és perc), egy adott szélességi és hosszúsági adatokkal rendelkező helyről milyen útvonalon lehet eljutni egy másik szélességi és hosszúsági adatokkal rendelkező helyre Kaposváron. Az utazásra azt a feltételt szabjuk, hogy egyetlen gyalogos rész sem lehet hosszabb 200 méternél, egyetlen helyen sem várakozunk 10 percnél tovább, illetve legföljebb három tömegközlekedési járatot alkalmazhatunk.
Az útvonal kereséséhez a program kérje be az indulási időpontot, valamint az indulási és érkezési hely szélességi és hosszúsági adatát. A programnak nem szükséges az időben vagy távolság szerint optimális útvonalat megadnia. Amennyiben nem található a feltételeknek megfelelő útvonal, akkor a program javasoljon taxit az utazáshoz. Ha az útvonal létezik, akkor annak részleteit írja ki soronként. Például ,,10:06 – 3 perc séta a 68-as busz Városháza megállójába'', ,,10:12 – utazás a 68-as buszon a Malom megállóig'', stb. A bemeneti adatok minden esetben napközbeni időpontok és kaposvári koordináták.
Beküldendő egy tömörített i670.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)
Figyelem!
Az informatika feladatok megoldásait ne e-mailben küldd be! A megoldásokat az Elektronikus munkafüzetben töltheted fel.
