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 2024. á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ű feladatok

A beküldési határidő: 2024. május 15.. 24:00 (UTC+02:00).


I. 623. Azokat a pozitív egész számokat, amelyekben a szomszédos számjegyek pontosan 1-gyel különböznek egymástól, \(\displaystyle +\) és \(\displaystyle -\) jelek sorozatával kódolhatjuk. A \(\displaystyle {+}\) jel kódolja, hogy a számjegy 1-gyel nagyobb, a \(\displaystyle -\) jel pedig, hogy 1-gyel kisebb az előző számjegynél. Az első számjegy ismerete nélkül általában a sorozat több számot kódolhat, amelyek közül a legkisebb és a legnagyobb egyértelműen meghatározható.

Példa egy 5 jegyű szám kódolására 4 hosszúságú kóddal: a \(\displaystyle {+}{-}{+}{+}\) által kódolt legkisebb szám \(\displaystyle 12123\), a legnagyobb szám \(\displaystyle 78789\).

Készítsünk programot i623 néven, amely egy \(\displaystyle N\) darab \(\displaystyle +\) és \(\displaystyle -\) jelből álló karaktersorozat által kódolt legkisebb és legnagyobb \(\displaystyle N+1\) jegyű szám összegét határozza meg.

A program standard bemenetének egyetlen sorában az \(\displaystyle N\) (\(\displaystyle 1\leq N\leq 1000\)) jegyű kód karakterei (\(\displaystyle +\) és \(\displaystyle -\) jelek) szerepelnek.

A program a standard kimenetre írja ki a kódolt legkisebb és legnagyobb szám összegét.

Példa a bemenetre:Kimenet:
\(\displaystyle {-}{+}{+}{+}{-}{+}\)\(\displaystyle 8691312\)

Magyarázat: a kód szerinti legkisebb szám \(\displaystyle 1012323\) és legnagyobb szám \(\displaystyle 7678989\).

Beküldendő egy tömörített i623.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. 624. Egy kertben elhelyezett játéktér járólapokból épül fel. A járólapok egy \(\displaystyle N\) sorból és \(\displaystyle N\) oszlopból álló négyzethálóba vannak rendezve. Egy csapat gyerek minden reggel a következő játékot játssza: figyelik, hogy melyik járólapokon van legalább egy levél az éjjel lehullottak közül és melyeken nincs. Megszámolják, hogy hány olyan sor és oszlop figyelhető meg, amelynél egyik járólapon sincs falevél.

Egy \(\displaystyle 7\times 7\)-es játékteret szemléltet a mellékelt ábra, ahol két olyan oszlop és egy olyan sor látható, amely nem tartalmaz falevelet.

Készítsük el a játék számítógépes változatát úgy, hogy a játéktér mezőit a bal alsó saroktól kiindulva megszámozzuk 1-től kezdve. A számozás egy soron belül balról jobbra, illetve a sorok között alulról felfelé történik. Az így kapott számokkal adjuk meg, hogy mely mezőkön van levél. A számsorozat ismeretében határozzuk meg, hogy hány olyan sor és oszlop van, amelyben nincs levél.

A program a standard bemenet első sorából olvassa be a játéktér méretét jellemző \(\displaystyle N\) számot (\(\displaystyle 2\le N\le 100\)), majd a következő sorban szóközzel elválasztva azoknak a járólapoknak a számát, amelyeken levél található. A levelet tartalmazó járólapok megadásának sorrendje tetszőleges. A program a standard kimenet egyetlen sorában adja meg, hogy összesen hány olyan sor és oszlop van, amely nem tartalmaz levelet.

A fenti példához tartozó bemenet és kimenet:

BemenetKimenet
7
43 22 3 17 31 38 26 41 20 35
3

Beküldendő egy tömörített i624.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. 625. Rendelkezésünkre állnak egy fájlban hazánk helységeinek koordinátái. Ezek alapján fogunk a táblázatkezelő program segítségével egy-két érdekességet bemutatni.

  1. Nyissunk meg egy üres munkafüzetet, mentsük motel fájlnéven. Hozzunk létre három munkalapot koord, valaszok és baltel néven.
  2. A három melléket szövegfájl tabulátorral tagolt UTF-8 kódolású. Másoljuk be a három munkalapra a mellékelt adatokat a következők szerint: a koord lapra az A1 cellától kezdődően a motelkord.txt tartalmát, a valaszok lapra az A1 cellától kezdődően a valaszok.txt tartalmát, végül a baltel lapra a B2 cellától kezdődően a baltel.txt tartalmát.
  3. Formázzuk meg a minta szerint a koord munkalapot, majd számoljuk ki másolható függvények és képletek segítségével minden településre a keleti hosszúság és északi szélesség fokban mért értékét.
  4. Formázzuk meg a minta szerint a valaszok munkalapot, majd válaszoljunk a kérdésekre függvények és képletek segítségével a települések neve alapján.
  5. A baltel munkalapon a Balaton melletti települések vannak. Balatonvilágos településtől kezdődően egy térkép segítségével az óramutató járásával megegyező irányban számozzuk be a településeket az A oszlopban, majd a sorszámok alapján rendezzük át a listát, ezután Balatonvilágos nevét ismételjük meg a lista alján, végül keresőfüggvények segítségével társítsuk hozzájuk a C és D oszlopban a koordinátáikat.

    Készítsünk másolatot a koord munkalapról és rendezzük az adatokat szélesség szerint. Készítsük el belőlük a mintán látható diagramot, amelynek a háttérszíne RGB \(\displaystyle (102,102,102)\) kódú. Helyezzük a D1 nevű, diagram-típusú munkalapra.

    Készítsük el a baltel lap alapján a mintán látható diagramot. Helyezzük a D2 nevű, diagramtípusú munkalapra.

    Segédszámításokat minden munkalapon az adatokról jobbra végezhetünk. A megoldásban saját függvény vagy makró nem használható.

    Beküldendő egy tömörített i625.zip állományban a motel táblázatkezelő munkafüzet, és egy rövid dokumentáció, amelyben szerepel a táblázatkezelő neve, verziószáma.

    Forrás: https://www.kemitenpet.hu/letoltes/tables.helyseg_hu.xls

    Letölthető fájlok: baltel.txt, motelkoord.txt, valaszok.txt.

(10 pont)


I. 626. Magyarország statisztikai számai közül a kábeltelevízió-hálózatba bekapcsolt lakások számát vizsgáljuk a KSH adataiból rendelkezésre álló 2003 és 2019 közötti években. A nagyregio tábla megadja az ország nagyobb régióit, amelyeknek részei a regio táblában található régiók. Például a Dunántúl nagyrégió része Dél-Dunántúl. Az ország vármegyéi és a főváros mint külön vármegye található a terulet táblában. A két tábla kapcsolata jelzi, hogy melyik terület melyik régióhoz tartozik. A kabel tábla adatai megmutatják, hogy az adott években hány lakásban volt kábeltévé-előfizetés az egyes területeken.

A feladat megoldásához javasoljuk a digitális kultúra érettségin is használatos XAMPP rendszert. MySQL-ben a forrásként megadott kabelteve.sql szöveges állományt lefuttatva készítsük el a kabelteve adatbázist, amelyben megtalálhatók a fenti adatok, és oldjuk meg a következő feladatokat. A megoldások SQL kódját egy megoldas.sql szöveges állományba helyezzük el, jelezve, hogy melyik SQL parancs melyik feladat megoldása. A 7. feladatban kért táblázatot a táblázatkezelő alapértelmezett formátumában mentsük alfoldeszak néven.

1. Készítsünk lekérdezést, amely megadja, hogy a főváros kivételével hány vármegye van az országban.

2. Készítsünk lekérdezést, amely megadja, hogy mely vármegyék tartoznak Dunántúl nagyrégióhoz. A vármegyék nevét, valamint a nagyrégiók nevét jelenítsük meg.

3. Adjuk meg, hogy a 2012-es évben hány kábeltévé-előfizetés volt Budapesten.

4. Adjuk meg, hogy mennyivel változott a kábeltévé-előfizetéssel rendelkező lakások száma 2004 és 2014 között Tolna megyében?

5. Adjuk meg, hogy Budapest kivételével melyik három vármegyében volt a legnagyobb az előfizetők száma 2015-ben. A vármegyék nevét, valamint az előfizetések számát jelenítsük meg.

6. Adjuk meg, hogy melyik volt az első év, amikor Nógrád vármegyében az előfizetések száma meghaladta a \(\displaystyle 40\,000\)-et.

7. Készítsünk lekérdezést, amely megadja az Alföldi és Észak régió megyéinek előfizetéseit a 2004, 2008, 2012, 2016 években. Az adatokat helyezzük át táblázatkezelő alkalmazásba, és készítsünk az adatok szemléltető vonaldiagramot. A diagram vízszintes tengelyén a négy év jelenjen meg, függőleges tengelyén az előfizetések száma legyen látható. Az egyes vármegyék egy-egy eltérő színű adatsorként szerepeljenek. A diagram jelmagyarázata adja meg a vármegyéket, a tengelyek felirata Évek és Lakások legyen.

8. Készítsünk lekérdezést, amely megadja, hogy mely vármegyékben és mely években haladta meg a Heves vármegyei előfizetések számát másik, Heves vármegyével azonos régióba tartozó vármegye előfizetéseinek száma ugyanabban az évben. A lekérdezés a két vármegye nevét és a két vármegye előfizetéseinek számát jelenítse meg, és legyen az évek szerint növekvő sorrendben.

Forrás: https://www.ksh.hu/stadat_files/ikt/hu/ikt0024.html

Beküldendő egy tömörített i626.zip állományban a megoldas.sql szöveges állomány, amely tartalmazza a feladatok megoldását adó SQL parancsokat, valamint az alfoldeszak néven készült táblázat, amely tartalmazza az átvitt adatokat és a diagramot.

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

(10 pont)


Figyelem!

Az informatika feladatok megoldásait ne e-mailben küldd be! A megoldásokat az Elektronikus munkafüzetben töltheted fel.