A KöMaL 2025. novemberi 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. december 15.. 24:00 (UTC+01:00). |
I. 675. Négyzethálóba rendezett, négyzetekből álló és kevés színt tartalmazó SVG típusú vektorgrafikus ábrákat a színeket jelölő karakterek felsorolásával, tömörítve tárolhatunk. A négyzetek azonos méretűek, szorosan illeszkednek, nem fedik át egymást és oldalaik párhuzamosak a kép szélével.
Készítsünk programot i675 néven, amely előállítja az SVG típusú vektorgrafikus ábrának a színek betűjével jelölt szöveges kódját.
A színeket jelölő nagybetűk: F fehér, P piros, K kék, Z zöld, S sárga, N narancs, L lila, B fekete.
A program standard bemenetének az SVG állomány nevét adjuk meg.
A standard kimenetre írjuk ki az ábra szöveges kódját.

Az SVG állomány szerkezetéről többek között a http://svg.elte.hu/ címen olvashatunk.
Beküldendő egy tömörített i675.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ő minta bemenet: z1.svg
(10 pont)
I. 676. Tekintsük az 1, 2, 3, 4, 5 és 6 számjegyek permutációit. Ha az adott permutációnak – például 6, 1, 5, 3, 4, 2 – a számjegyeit egymás után írjuk, hatjegyű számot kapunk, – az előző példánál ez \(\displaystyle 615\,342\).
- Nyissunk meg egy üres táblázatkezelő munkafüzetet, és mentsük el specpermhat néven a táblázatkezelő alapértelmezett formátumában.
- Az A oszlopba, amelyek 2-vel oszthatók.
- A B oszlopba, amelyek 3-mal oszthatók.
- A C oszlopba, amelyek 4-gyel oszthatók.
- A D oszlopba, amelyek 5-tel oszthatók.
- Az E oszlopba, amelyek 6-tal oszthatók.
- Az F oszlopba, amelyeknél az első és utolsó számjegy összege kétjegyű.
- A G oszlopba, amelyeknél az utolsó három számjegy összege 10.
- A H oszlopba, amelyeknél az utolsó két számjegyből képzett szám prím.
- Az I oszlopba, amelyeknél az utolsó három számjegyből képzett szám prím.
Határozzuk meg az 1, 2, 3, 4, 5 és 6 számjegyek összes olyan permutációját, illetve az ezekből a fenti módon képzett hatjegyű számokat, amelyek eleget tesznek az alábbi követelményeknek:
Az egyes oszlopokban a számok növekvő sorrendben jelenjenek meg. Segédszámításokat a J oszloptól jobbra vagy egy újonnan felvett munkalapon lehet végezni. A megoldásban saját függvény vagy makró nem használható.
Beküldendő egy tömörített i676.zip állományban a specpermhat néven mentett táblázatkezelő munkafüzet és egy rövid dokumentáció, amelyben szerepel az összes, a megoldásnál bevetett furfang magyarázata, a táblázatkezelő neve, verziószáma.
(10 pont)
I. 677. Magyar találmányok, technikai alkotások neveinek gyűjteménye és a feltalálók néhány adata áll rendelkezésünkre egy adatbázisban. A találmányok és a feltalálók között N:M (több a többhöz) kapcsolat van, ezt egy kapcsolótábla használatával oldjuk fel.

Csak akkor szerepel egy találmány azonosítója a kapcsol táblában, ha a feltaláló neve ismert.
A következő feladatokat megoldó SQL-parancsokat rögzítsük a feladatok végén zárójelben megadott nevű és .sql kiterjesztésű szöveges állományban! Például a 3. feladat megoldását a 3bay.sql nevű állományban. Az értékelés során csak ezeknek az állományoknak 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 feltalalok.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 az SQL-szerveren a feltalalok.sql parancsfájlt.
- Listázzuk ki ábécérendben lekérdezés segítségével azoknak a találmányoknak a nevét és feltalálójuknak a nevét, amelyek nevében szerepel az ,,optika'' szó. (2optika)
- Lekérdezéssel írassuk ki Bay Zoltán találmányainak nevét. (3bay)
- Adjuk meg lekérdezés segítségével, hogy melyik találmányhoz fűződik a legtöbb kutató és az mennyi. (4tobben)
- Soroljuk fel lekérdezés alkalmazásával azoknak a kutatóknak a nevét, akiknek se a születési, se a halálozási évszáma nincs megadva az adatbázisban. (5hiany)
- Lekérdezéssel listázzuk ki azokat a kutatókat és találmányaik nevét, akiknek a vezetékneve szerepel a találmány nevében. (6nevado)
- Milyen találmányaik voltak azoknak a kutatóknak, akik a XIX. század második felében (1851 és 1900 között, a határokat is beleszámolva) is éltek? A kutatók és a találmányok nevét adjuk meg lekérdezés használatával. (7felszazad)
- Soroljuk fel lekérdezés alkalmazásával azoknak a kutatóknak a nevét és a találmányaik számát, akik Bay Zoltánnál több kutatási eredménnyel szerepelnek az adatbázisban. (8kutszam)
- Adjuk meg lekérdezés segítségével, hogy a ,,porlasztó'' feltalálóinak – a porlasztón kívül – milyen más találmányai vannak az adatbázisban. Minden találmány neve egyszer szerepeljen a listában. (9porlaszto)
Beküldendők egy i677.zip tömörített állományban a lekérdezések.
Letölthető fájl: feltalalok.sql
(10 pont)
I. 678. Egy elektronikus reklámokkal foglalkozó cég címlistájában egyéni e-mail címek és csoportok e-mail címei szerepelnek. Minden csoportban van legalább egy másik csoport vagy egy személy e-mail címe. Egy e-mail cím többször is előfordulhat úgy, hogy több csoportnak is tagja az adott személy vagy csoport.
A címlistát egy szöveges állományban tárolja a cég. Az állomány minden sora egy e-mail címmel kezdődik. Ha csak ez a cím áll a sorban, akkor az egy egyéni e-mail cím. Ha a cím után további címek következnek, akkor az azt jelöli, hogy a sor első címe egy csoport e-mail címe, a csoport tagjainak e-mail címei a sorban utána következnek. A címeket egy-egy szóköz választja el egymástól.
Példaként tekintsük a következő címlistát:
felso@alma.hu peter@alma.hu zsolt.kovacs@alma.hu
also@alma.hu andras.kovacs@bp.hu felso@alma.hu peter@alma.hu
kozepso@alma.hu peter@alma.hu also@korte.hu nagy.balint@bp.hu
balazs.kiss@alma.hu
also@korte.hu jozsef.kiss@korte.hu jozsef.nagy@bp.hu
felso@korte.hu kiss.jeno@bp.hu kozep@korte.hu
kozep@korte.hu nagy.balint@bp.hu felso@korte.hu
A címekben csak az angol ábécé kisbetűi, valamint a pont és @ jel szerepelnek. Előfordul, hogy egy egyedi név megjelenik a címlistában egy külön sorban, de előfordul az is, hogy csak valamely csoport tagjaként szerepel.
A cég úgy dönt, hogy meghívja a címlistán szereplő személyek egy részét egy találkozóra. Ehhez egy e-mailt küldenek ki, amelyben megadják a címzetteket. A címlista alapján azonban elég nehéz megmondani, hogy valójában hány személy fogja megkapni a levelet. Segítsünk a cégnek, és állapítsuk meg a címzett személyek számát.
Készítsünk programot, amely a címlista és a küldendő e-mail címzettjeinek felhasználásával megadja, hogy a levél hány személynek szól. A program olvassa be a – honlapunkról letölthető – mellékelt cimlista.txt állományt, majd a standard bemeneten megadott címzetteket, és írja ki a standard kimenetre a címzett személyek számát.
Példa, amelyben a címlista a fenti példában lévő lista:
| Bemenet: | Kimenet |
| felso@korte.hu kozepso@alma.hu | 5 |
A programnak tetszőleges, legföljebb 100 sort tartalmazó címlista állomány mellett is működnie kell. A címlista állomány egy sorában legföljebb 30 cím szerepel.
Beküldendő egy tömörített i678.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: cimlista.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.
