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 2026. á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ő 2026. május 15-én LEJÁRT.


I. 695. Egy szöveg csak az angol ábécé nagybetűit tartalmazza, írásjeleket, szóközöket vagy más karaktert nem. Egy kódolás a szöveg ASCII-kódjait tartalmazó számsorozatot módosítja. Eredetileg a szöveg minden karakterének egy 65 és 90 közötti szám felel meg.

Először minden szám értékéhez hozzáadjuk az eredeti szövegben az elsőtől az előző számig terjedő számok összegének egy adott \(\displaystyle K\) számmal (\(\displaystyle 3\leq K\leq 27\)) vett osztási maradékát. Az első szám így nem változik, de minden más szám valószínűleg igen. Az így kapott számok nagyobbak lehetnek 90-nél, ezért szükség esetén kivonunk belőlük 26-ot. Ezután a kapott számok megfelelnek ASCII kódjuk alapján az angol ábécé egy betűjének. Az így kapott szöveget tekintjük az eredeti szöveg kódolt változatának.

Készítsünk két programot a kódolásra és a kódolt szöveg visszaalakítására. Az első, i695be nevű program standard bemenetének első sorában a \(\displaystyle K\) szám, második sorában a szöveg található, amelynek hosszabb legföljebb 100 karakter. A program a standard kimenet egyetlen sorába a kódolt szöveget írja ki.

A második, i695ki nevű program standard bemenetének első sorában a \(\displaystyle K\) szám, második sorában egy kódolt szöveg található. A program a standard kimenet egyetlen sorába a visszaalakított szöveget írja ki.

Minta a kódolásra:

Bemenet: Kimenet:
13 IVNOSREXSPC
INFORMATIKA

Minta a visszaalakításra:

Bemenet: Kimenet:
25 PROGRAMOZAS
PWAWDTVZOFM

Beküldendő egy tömörített i695.zip állományban a két 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ányok melyik fejlesztői környezetben fordíthatók.

(10 pont)


I. 696. Az \(\displaystyle e\) és a \(\displaystyle \pi\) szám a matematika több területén előtűnő, alapvető irracionális szám. Az I. 689. feladatban a \(\displaystyle \pi\) első \(\displaystyle 10\;000\) számjegyét vizsgáltuk meg, most kibővítjük a vizsgálatot az \(\displaystyle e\)-re is.

  1. Nyissunk egy üres munkafüzetet. Hozzunk létre benne egy e és egy pi nevű munkalapot. A megfelelő munkalapokra az A1 cellától kezdődően töltsük be az e1-10000.txt és a pi1-10000.txt, tabulátorral tagolt szövegfájlok tartalmát. Hozzuk létre az eredmény és a segéd nevű munkalapokat. Az e, a pi és a segéd munkalapon végezhetünk segédszámításokat. A következő feladatok tartomány- és cellahivatkozásai az eredmény munkalapra vonatkoznak. A munkafüzetet epi néven mentsük.
  2. Az \(\displaystyle e\) és a \(\displaystyle \pi\) első \(\displaystyle 10\;000\) számjegyéből hány helyen áll ugyanaz a számjegy? (Például mindkettő \(\displaystyle 10\;000\). jegye 8-as, vagy a 21. számjegy mindkettőben 6-os.) Az eredmény – hogy hány helyiértéken áll ugyanaz a számjegy mindkettőben – kerüljön a C1-es cellába.
  3. Melyik 1966-os dátum mint számjegysorozat szerepel az \(\displaystyle e\) első \(\displaystyle 10\;000\) jegyében nyolcjegyű számként ÉÉÉÉHHNN alakban? És 1970-es? Az eredmények kerüljenek a D1 és az E1 cellába.
  4. Melyik az azonos számjegyekből álló leghosszabb szakasz számjegye, hossza, kezdő pozíciójának cellája? Az eredményt az F1:F3 tartományban jelenítsük meg.
  5. Mely számjegyekből van több az első \(\displaystyle 10\;000\) között az \(\displaystyle e\)-ben, mint a \(\displaystyle \pi\)-ben? A számjegyek növekvő sorrendű, egymástól vesszővel és szóközzel elválasztott listája kerüljön a C2 cellába.
  6. Hány számjegy lelhető fel a \(\displaystyle \pi\) elejéből (31415926...) folyamatosan az \(\displaystyle e\) első \(\displaystyle 10\;000\) jegyében? A válasz jelenjen meg az E2 cellában.
  7. Határozzuk meg a \(\displaystyle \pi+2e\) szám első száz számjegyét! Ezek csökkenő helyiérték szerint az A1:A100 tartomány celláiba, illetve összefűzött szövegként a C4 cellába kerüljenek.
  8. Keressük meg az \(\displaystyle e\) és a \(\displaystyle \pi\) első \(\displaystyle 10\;000\) számjegyéből a leghosszabb növekvő szakasz hosszát, egy ilyen szakasz kezdőcellájának helyét és értékét. Például nem növekvő szakasz a ,,603758'' de növekvő szakasz az ,,124678'', minkettő hossza 6. Az \(\displaystyle e\) eredményei a G1:G3, míg a \(\displaystyle \pi\) eredményei a H1:H3 tartományba kerüljenek.
  9. Ábrázoljuk oszlopdiagramon az \(\displaystyle e\) és a \(\displaystyle \pi\) első tízezer jegyében az egyes számjegyek gyakoriságát. A diagram kerüljön új, diagram típusú munkalapra. Kapjon jelmagyarázatot, a diagram címe Számjegygyakoriságok legyen.

Segédszámításokat tetszőleges, adatot nem tartalmazó helyen lehet végezni. A megoldásban saját függvény vagy makró nem használható.

Beküldendő egy tömörített i696.zip állományban az epi néven mentett táblázatkezelő munkafüzet és egy dokumentáció, amelyben szerepel a készítő neve, iskolája, a táblázatkezelő neve és verziószáma.

Források:

http://www.t-es-t.hu/minden/tudom/pii/pi10000.txt

https://www.gutenberg.org/ebooks/127

Letölthető fájlok: e1-10000.txt, pi1-10000.txt

(10 pont)


I. 697. A sporttörténelem a szurkolók számára izgalmas téma. A XX. század második felében a nagypályás kézilabdát felváltotta a ma ismert kispályás és ezzel intenzívebb változat.

A feladatunk a magyar férfi kispályás kézilabdaválogatott játékosairól és a válogatott különböző nemzetközi tornákon elért eredményeiről szóló adatok elemzése. Először az adatok alapján adatbázist kell létrehoznunk és adatokkal feltöltenünk, majd az adatbázis segítségével néhány kérdésre kell válaszolnunk.

Hozzuk létre a kezilabda.sql állományt, amely tartalmazza az adatbázist és a táblát létrehozó, valamint az adatokat a táblába beszúró SQL parancsokat. Ha az elkészült kezilabda.sql parancsfájlt futtatjuk a lokális SQL szerveren, akkor az az adatbázist, a táblákat és az adatfelvitelt elvégzi és készen áll a lekérdezések futtatására.

  1. Készítsünk új adatbázist kezilabda néven.
  2. A táblák kialakításához vegyük figyelembe az alábbi táblaleírásokat és kapcsolatokat:
  3. Táblák:



    Az adatbázis tartalmazza a táblák elsődleges kulcsa és az idegen kulcsok beállítását, hogy azok helyes kapcsolatot mutassanak.

  4. Az adatbázist a táblákkal és az adatokkal együtt elkészítő parancsokat mentsük a kezilabda.sql parancsfájlba.

A következő feladatokat megoldó SQL parancsokat rögzítsük a lekerdeze­sek.sql nevű állományban a feladatok végén zárójelben megadott névvel. Ü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. Listázzuk ki ábécérendben lekérdezés segítségével az 1960–1969 között a válogatottban szereplő játékosok nevét. Minden név egyszer szerepeljen a listában. (4hatvanasok)
  2. Készítsünk lekérdezést, amely kilistázza azoknak a kapitányoknak a nevét, akik legalább két Olimpián irányították a válogatottat. (5olimpia)
  3. Adjuk meg lekérdezéssel azoknak a játékosoknak a nevét, akik a legtöbb Világbajnokságon vettek részt. (6vilag)
  4. Egyetlen lekérdezés segítségével írassuk ki minden játékos esetén, hogy hány tornán vett részt típusonként. Az eredmény megjelenítése a mintának megfelelően történjen. (7stat)
  5. Soroljuk fel lekérdezés segítségével az adatbázisban rögzített utolsó Európa-bajnokságon szereplő játékosok nevét ábécérendben. (8eufiatalok)
  6. Készítsünk lekérdezést, amely megadja azoknak a játékosoknak a nevét, akik ugyan Világbajnokságon voltak, de Olimpián egyszer sem szerepeltek. A listában minden név egyszer jelenjen meg. (9hianyzok)
  7. Készítsünk lekérdezést, amely meghatározza, hogy ,,Pásztor István'' első és utolsó válogatottsága között kik voltak szintén válogatottak. A listában minden név egyszer jelenjen meg. (10egyutt)
  8. Készítsünk lekérdezést, amely meghatározza azoknak a tornáknak az évét és nevét, ahol ,,Hanusz Egon'' és ,,Imre Bence'' játékosok egyszerre vettek részt. (11HEIB)
  9. Nem minden tornára sikerült a válogatottnak kijutnia. Készítsünk lekérdezést, amely megadja, hogy hány év volt a legnagyobb szünet két nemzetközi torna között. (12szunet)

Beküldendő egy tömörített i697.zip állományban a kezilabda.sql parancsfájl és a lekerdezesek.sql nevű szöveges állomány.

Letölthető fájl: jatekos.txt, reszvetel.txt, torna.txt

(10 pont)


I. 698. Andi és Bandi matematikai játékot játszanak. A játék elején véletlenszerűen kiválasztanak egy pozitív egész számot 1 és 100 között, ez lesz a kiinduló szám. Ezután felváltva mondanak pozitív egész számokat, először Andi, azután Bandi. A szabály az, hogy az előző szám után a legkisebb olyan számot kell mondani, amely nagyobb nála, és eggyel több osztója van. Andi első száma előtt a kiinduló számot tekintjük előzőnek. A játék addig tart, amíg az első 10000-nél nagyobb számot elérik.

Készítsünk programot i698 néven, amely a kiinduló szám ismeretében megadja, hogy Andi és Bandi milyen számokat mondanak a játék során. A program standard bemenetének első sorában a kiinduló szám szerepel. A program a standard kimenet egy sorába írja ki a játékban szereplő számokat. A programnak egy átlagos számítógépen le kell futnia 10 másodpercen belül.

Minta:

Bemenet: Kimenet:
5581 92 729 730 1089 1136 59049

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


Figyelem!

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