Középiskolai Matematikai és Fizikai Lapok
Informatika rovattal
Kiadja a MATFUND Alapítvány
Már regisztráltál?
Új vendég vagy?

A KöMaL 2025. decemberi 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ű feladatok

A beküldési határidő 2026. január 15-én LEJÁRT.


I. 679. Egy kisváros utcáin és terein a meleg nyári napokon a fákat és más köztéri növényeket locsolják. A modern locsolókocsi adatrögzítője feljegyzi, hogy az egyes növényeknél hány liter vizet használt fel a kertész.

Készítsünk programot i679 néven, amely megadja a locsolási adatok átlagát, móduszát, mediánját és az éppen ennyit fogyasztó első növények sorszámát, valamint, hogy hány növény locsolásánál használtak fel éppen ennyi vizet.

A program standard bemenetének első sorában a meglocsolt növények \(\displaystyle N\) száma (\(\displaystyle 1\leq N\leq 1000\)) és egy növény locsolásához felhasznált víz maximális \(\displaystyle M\) térfogata (\(\displaystyle 1\leq M\leq 200\)) literben van szóközzel elválasztva. A következő sorban az \(\displaystyle N\) növény locsolásához felhasznált víz (\(\displaystyle 1\leq V_i\leq M\), egész szám) térfogata szerepel.

A program standard kimenetére három sort írjunk ki, bennük az adatokat szóközzel elválasztva. Az első sorba az átlagos locsolási térfogatot egész számra kerekítve, az első éppen átlagos vízfogyasztó növény sorszámát, és hogy hány növényt locsoltak éppen ennyi vízzel. A második sorba írjuk ki a locsolási térfogatok móduszát (több módusz esetén a legkisebbet), valamint az első ennyivel locsolt növény sorszámát, illetve összes számát. A harmadik sorban a vízmennyiségek mediánja legyen, az első ennyi vízzel locsolt növény sorszáma, majd az éppen ennyivel locsolt növények száma. Ha az adott középértéknek megfelelő vízzel egy növényt sem locsoltak, akkor a második szám az adott sorban legyen \(\displaystyle {-1}\).

Beküldendő egy tömörített i679.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. 680. Nézzük meg a mintát, és nyissuk meg a mellékelt F1-2024.xlsx táblázatot.

A táblázat a Formula 1 2024-es nagydíjainak néhány adatát tartalmazza. 480 sorból és 18 oszlopból áll. Azért ilyen nagy, mert az adatokat redundánsan – indokolatlanul többszörösen – tárolja.

Ezeket az adatokat – későbbi felhasználás céljából – alakítsuk át adatbázis táblákká. Ha alaposan átvizsgáljuk az adatokat, hét különböző entitás adatai keveredtek össze, ebből négy a Futam, a Csapat, a Versenyző és az Eredmény.

  1. Válogassuk szét e négy entitáshoz tartozó adatoszlopokat. Figyeljünk arra, hogy a többiekből kiszámítható vagy megadható oszlop ne szerepeljen egyik adattáblában sem.
  2. A maradék oszlopok alapján állapítsuk meg a maradék három entitást.
  3. Hét új munkalapon, amelyek neve az egyes táblák/entitások nevével egyező, jelenítsük meg a megfelelő tábla adatait.
  4. Egészítsük ki számláló típusú elsődleges kulcsokkal a táblákat, valamint újabb mezők bevezetésével biztosítsuk a táblák közötti kapcsolatot. és a táblák kapcsolatát biztosító mezőkkel a táblákat.
  5. Jelenítsük meg egy új munkalapon a táblák kapcsolatát a minta szerint.
  6. Egészítsük ki a táblákat azokkal a mezőkkel, amelyek a táblák kapcsolataiért felelősek!
  7. Készítsük el az F1-2024.sql szöveges állományt.
    1. Ez tartalmazza az adatbázist létrehozó SQL parancsokat,
    2. a táblákat létrehozó SQL parancsokat,
    3. és az adatokat a táblába beszúró SQL parancsokat!

Beküldendő az i680.zip tömörtett állományban a munkafüzet az eredeti nevén, az F1-2024.sql állomány és egy rövid dokumentáció, a táblázatkezelő neve, verziószáma.

Letölthető fájl: F1-2024.xlsx

(10 pont)


I. 681. Budapest turistalátványosságai közé tartoznak a szobrok, amelyek szétszórva találhatók a városban népszerű és kevésbé látogatott helyeken. A köztéri szobrok adatai a bpszobrok adatbázisban állnak rendelkezésre.

Az adatbázis a következő táblákat tartalmazza:

Táblák:

A következő feladatok megoldását rögzítsük a szobrok_megoldas.sql á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.

  1. bpszobrok.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 bpszobrok.sql parancsfájlt.
  2. Soroljuk fel lekérdezés segítségével ábécérendben a Margitsziget szobrainak címét és a felállításuktól eltelt időt. (2margit)
  3. Készítsünk lekérdezést, amely megadja az észak-pesti, azaz a 4., 13. és 15. kerületek szobrainak címét, kerületét és közterületi helyét. (3eszak)
  4. Készítsünk lekérdezést, amely megadja az ismert felállítási évek alapján, hogy melyik évben állították fel a legtöbb szobrot, és ez hány alkotást jelent. (4legtobb)
  5. A köztéri szobrokat különböző anyagokból készítik. Adjuk meg lekérdezés segítségével, hogy az egyes nyersanyagokat hány szobor elkészítéséhez használták. A listában darabszám szerint csökkenően jelenítsük meg a nyersanyagneveket és a darabszámokat. (5anyagok)
  6. Soroljuk fel az Anonymus szobránál korábban felállított alkotások címét és felállításuk évét. A lista az alkotások címe szerint ábécérendben jelenjen meg. (6anonymus)
  7. Liszt Ferencnek több szobra látható a városban. Lekérdezés segítségével határozzuk meg, hogy a Liszt Ferenc-szobrok alkotóinak milyen más című alkotásaik vannak még felállítva Budapesten. A listában a Liszt Ferenc-szobrok címe ne jelenjen meg, de a többi alkotás címe és a szobrászok neve szerepeljen. (7liszt)
  8. Sokféle alapanyagból készítenek szobrokat, de a legnépszerűbb a mészkő és a bronz. Készítsünk lekérdezést, amely megadja, hogy az adatbázisban hány olyan vegyes technikájú szobor van, amely egyszerre tartalmaz mészkövet és bronzot. (8vegyes)
  9. Azon művészek nevét keressük, akiknek szobrai 1990-től láthatók a városban, de előtte nem volt felállított művük. Készítsük el a szükséges lekérdezést. (9valt)

Letölthető állomány: bpszobrok.sql

(10 pont)


I. 682. András széles könyvespolcán egymás mellett sorakoznak a könyvek. A legtöbb könyv András kedvenc szerzőitől van, némelyiktől jó néhány, de vannak olyan szerzők is, akiktől csak egy könyv. András könyvei egy sorban egymás mellett vannak a polcon, semmilyen szempontból nincsenek rendezve, és András nem szeretné őket átrendezni. Azért, hogy mégis jobban elkülönüljenek, kitalálta, hogy mindegyik könyv kapjon egy megfelelő színű papírkötést. Az azonos szerzőtől származó könyvek azonos színt kapjanak, de ezt a színt kaphatják még más szerzőtől származó könyvek is. De az nem fordulhat elő, hogy két egymás melletti könyv azonos színű, de nem azonos a szerzőjük. András alaposan elgondolkodott azon, hogy végül is hány különböző színű papírt kell vennie a bekötéshez, és melyikből mennyit.

Készítsünk programot i682 néven, amely a polcon sorakozó könyvek száma és a könyvek szerzői ismeretében kiszámítja, hogy legkevesebb hány színt kell használni a bekötéshez, illetve melyik színnel hány könyvet kell majd bekötni.

A program standard bemenetének első sorában a könyvek száma (\(\displaystyle 1\le N\le 500\)) szerepel. A következő sorban egy-egy szóközzel elválasztva \(\displaystyle N\) darab egész szám található: az \(\displaystyle i\)-edik szám a polcon található \(\displaystyle i\)-edik könyv \(\displaystyle s_i\) szerzőjét jelenti (\(\displaystyle {1\le s_i\le N}\)). Természetesen minden szerzőnek egyedi száma van, amely pontosan az ő könyveit jelöli.

A program a standard kimenet első sorába írja ki, hogy legalább hány színt kell használni a bekötéshez, a kimenet második sorába szóközzel elválasztva adja meg, hogy az egyes színekhez hány könyv tartozik, a kimenet harmadik sorában adja meg a könyvek egy lehetséges színezését. A program sorrendben adjon színt a könyveknek, az első könyvnek az 1-es színt, a következő eltérő színű könyvnek a 2-es színt és így tovább.

Példa:

Beküldendő egy tömörített i682.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.