A KöMaL 2026. 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ő: 2026. október 15.. 24:00 (UTC+01:00). |
I. 703. Egy logisztikai cég \(\displaystyle \tt N\) hosszúságú, az angol ábécé nagybetűiből álló azonosítókat használ a termékek jelölésére. A fizikai dolgozók segítésére, hogy ne kelljen feleslegesen mindent leolvasniuk, adott termékekhez megadják egy listában az azonosítók elejét úgy, hogy az még azonosítható legyen és a többi karaktert elhagyják.
Készítsünk programot i703 néven, amely a lehető legrövidebb karaktersorozatokat adja meg jobbról a szükségtelen betűket elhagyva az azonosítókból.
| Példa bemenet | Kimenet |
| 6 7 | BDA |
| BDAACDB | A |
| ADCAEFE | BDCAE |
| BDCAEFE | BDCAC |
| BDCACFE | BDCC |
| BDCCABC | BC |
| BCAACDB |
A program standard bemenetének első sorában az azonosítók száma \(\displaystyle \tt M\) (\(\displaystyle \tt 1\le M\le 10\,000\)), és az azonosítók hossza \(\displaystyle \tt N\) (\(\displaystyle \tt 1\le N\le 50\)) egész szám szerepel. A következő \(\displaystyle \tt M\) sorban a termékek azonosítója szerepel.
A programmal a standard kimenetre írjuk ki \(\displaystyle \tt M\) sorba a rövidített azonosítókat a bemenetnél adott sorrendben.
Beküldendő egy tömörített i703.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. 704. A Kaggle népszerű online közösségi felület adatelemzéssel és gépi tanulással foglalkozók számára. Ebben a feladatban egy olyan adathalmazt vizsgálunk meg, amely az USA felsőoktatási intézményeiben IT szakirányban tanuló hallgatók lehetséges karrierjét vizsgálja. A továbbiakban ennek az adathalmaznak az értelmezése és feldolgozása lesz a feladat. Az adathalmaz elérhető a következő weboldalon: https://www.kaggle.com/datasets/mobeenfatimah/student-career-success-prediction- dataset.
- Töltsük le az adathalmazt ZIP formátumban és csomagoljuk ki a letöltött fájlt.
- Nyissunk meg egy üres táblázatkezelő munkafüzetet és importáljuk a kapott CSV állományt táblázatkezelőbe, majd mentsük el a táblázatkezelő alapértelmezett formátumában itkarrier nevén. A munkalapot nevezzük át dataset névre.
Nézzük át és értelmezzük a táblázat oszlopait a fenti weboldalon található leírás, a fejléc és az egyes oszlopokban található értékek alapján.
- Cseréljük le a dataset munkalapon a pontokat vesszőre a valós számok kezelése érdekében.
Minta a dataset munkalapról:

- Hozzunk létre egy másik munkalapot adatok néven, amely majd a betöltött adatokat átalakítva tartalmazza. Ennek a munkalapnak a fejléce legyen a betöltött munkalap fejlécének megfelelő magyar nyelvű, de ékezetmentes szöveg. A több szóból álló oszlopneveknél szóköz helyett aláhúzás jel szerepeljen. A fejléc szövege letölthető honlapunkról a feladathoz mellékelt fejlec.txt szöveges állományból.
- Adjuk meg az adatok munkalapon megfelelő képletek és hivatkozás segítségével a betöltött munkalap adatait a következők szerint. A számításokhoz a legtöbb esetben érdemes külön munkalapra kigyűjteni az egy oszlopban előforduló szövegeket, szükség esetén rendezni, majd ezek segítségével számértéket megadni. Például az egyetemi évek számát leíró négy szót helyezzük el rendezve egy egyetemi_ev munkalap négy egymás alatti cellájában: Freshman, Sophomore, Junior, Senior. Így az adatok munkalapon a megfelelő érték egy képlettel kiszámítható. Példaként megadjuk, hogy néhány oszlop esetében hogyan járjunk el:
- a hallgatói azonosító oszlopban a megfelelő szám szerepeljen (például a betöltött szöveg jobb oldali 6 karakteréből képzett számérték);
- a nem oszlopban a nőknél 2-es, a férfiaknál az 1-es szám szerepeljen;
- az egyetemi évek számát a szöveges leírásnak megfelelő évek számával adjuk meg, például sophomore esetén 2-t – a szövegeket értelem szerint érdemes rendezni;
- a fő szakirány esetében a lehetséges 8 szakirányhoz rendeljük az 1-től 8-ig terjedő számokat – a szakirányokat a nevük szerint rendezhetjük ábécésorrendbe;
- a logikai típusú válaszok esetében 0 és 1 értéket adjunk meg, például a GitHub profil esetében.
Ezek alapján érjük el, hogy az adatok munkalapon csak számok szerepeljenek minden oszlop értkeként. A számok jelentése különböző a fentieknek megfelelően:
- vannak, amelyek értéke \(\displaystyle (0,1)\), például a LinkedIn profil oszlopban;
- vannak egész és valós számértékek, amelyeket az oszlop értékét jelentő egész vagy valós számok, például a Csapatmunkára kapott pontszám vagy a 0-tól 4-ig terjedő Tanulmányi pont;
- az eredetileg szöveges értékek helyén egy kódszám szerepel, amely a szöveges tartalomra hivatkozik egy másik munkalapon, például a Computer Science szakirány a 3-as számot jelenti, ha a lehetséges szakirányokat ábécérendbe rakjuk.
Minta az átalakított adatokat tartalmazó adatok munkalapról:

Az adatokat egy később kitűzött feladatban SQL adatbázisba helyezzük át, de ebben a feladatban egyelőre eddig kell elvégezni a forrásadatok feldolgozását.
- A KöMaL honlap feltöltési korlátja miatt az eredeti adathalmaz \(\displaystyle 50\,000\) adatsora helyett a beküldendő megoldásban csak \(\displaystyle 500\) adatsort tartsunk meg. Nevezzük át az eddig elkészült munkánkat úgy, hogy az ,,_500'' szöveggel kiegészítjük az állományt nevét. Töröljük ebből az állományból az első \(\displaystyle 500\) adat utáni adatsorokat a dataset és az adatok munkalapról.
Beküldendő az i704.zip tömörített állományban az 500 adatsort tartalmazó munkafüzet és egy rövid dokumentáció, amelyben szerepel a táblázatkezelő neve és verziószáma.
Letölthető állomány: fejlec.txt
(10 pont)
I. 705. Ez a feladat testvére az előző tanévben elkezdett speciális egész számokat kereső sorozatnak. Most is néhány fajta speciális számot keresünk az \(\displaystyle 1\,000\,000\) alatti pozitív természetes számok között. Név szerint: a Carol-számokat, a Lucas-számokat, a palindrom négyzetszámokat, a Perrin-prímeket és a Smarandache–Wellin-számokat. Lássuk ezek definícióit!
A Carol-számok olyan számok, amelyek felírhatók \(\displaystyle \bigl(2^k-1\bigr)^2-2\) alakban, ahol \(\displaystyle k\) egy pozitív egész szám. Például \(\displaystyle k=4\) esetén \(\displaystyle \bigl(2^4-1\bigr)^2-2=(16-1)^2-2=225-2=223\) Carol-szám.
A Lucas-számok a Lucas-sorozat elemeiből álló halmaz (a sorozat Édouard Lucas [1842–1891] francia matematikusról kapta nevét). A Lucas-sorozat rekurzív sorozat, ahol a sorozat minden tagja az előző két szám összege. Hasonló a Fibonacci-sorozathoz, csupán az a különbség, hogy a sorozat itt nem \(\displaystyle f(1)=1\), \(\displaystyle f(2)=1\)-gyel kezdődik, hanem \(\displaystyle L(1)=2\)-vel és \(\displaystyle L(2)=1\)-gyel, \(\displaystyle L(n)=L(n-2)+L(n-1)\), ha n\(\displaystyle >\)2, a sorozat első néhány eleme: 2, 1, 3, 4, 7, 11, 18, 29, 47, 76, 123.
A palindromszám olyan számot (szűken értelmezve tízes számrendszerbeli természetes számot) jelent, amelynek számjegyeit fordított sorrendben írva az eredeti számot kapjuk vissza. Ilyen szimmetrikus szám például a \(\displaystyle 26\,462\). A palindrom négyzetszámok olyan számok, amelyek egyszerre palindromszámok is és négyzetszámok is. Például a \(\displaystyle 26^2=676\) ilyen szám.
A Perrin-számok a következő rekurzív sorozattal meghatározott számok: \(\displaystyle P(n)=P(n-2)+P(n-3)\) minden \(\displaystyle n>2\)-re, \(\displaystyle P(0)=3\), \(\displaystyle P(1)=0\), \(\displaystyle P(2)=2\). A Perrin-számok sorozata így kezdődik: 3, 0, 2, 3, 2, 5, 5, 7,10, 12, 17, 22, 29, 39 ... A Perrin-prímek olyan Perrin-számok, amelyek prímszámok. Például Perrin-prím a 29.
A Smarandache–Wellin-számok olyan természetes számok, amelyek (az adott számrendszerben) az első \(\displaystyle n\) prímszám egymás után írásával állíthatók elő. Nevüket Florentin Smarandache-ról és Paul R. Wellinről kapták. Tízes számrendszerben az első néhány Smarandache–Wellin-szám: 2, 23, 235 ...
- Készítsünk egy táblázatkezelő munkafüzetben specegeszII néven munkalapot, és munkánkat mentsük spec_egeszek_II néven a táblázatkezelő program alapértelmezett formátumában.
- Az A2:A1000000 tartományt töltsük fel növekvő sorrendben a pozitív egészekkel 1-től \(\displaystyle 999\,999\)-ig.
- Illesszük be a B2 cellától az \(\displaystyle 1\,000\,000\) alatti prímek listáját a primek1000000ig.txt fájlból. Az első sorba oszlopfeliratokat készíthetünk a számítások értelmezéséhez.
- Válogassuk ki az öt számcsoport \(\displaystyle 1\,000\,000\) alatti elemeit. A számításokat ezen a munkalapon végezzük.
- Hozzunk létre egy eredmények nevű munkalapot, amelyben készítsük el a minta szerint a fejlécsort, az A oszlop celláit a minta szerint töltsük fel 1-től egész számokkal addig, amennyi a speciális számcsoportok darabszámának maximuma. Az oszlopok színezése is kövesse a mintát. A következő oszlopokban határozzuk meg minden számtípusnál cellák kihagyása nélkül, növekvő sorrendben
- a B oszlopban a Carol-számokat;
- a C oszlopban a Lucas-számokat;
- a D oszlopban a palindrom négyzetszámokat;
- az E oszlopban a Perrin-prímeket;
- az F oszlopban a Smarandache–Wellin-számokat.

- A specegeszII munkalapon cseréljük le oszloponként az első 99 sor utáni képleteket az értékükre.
A megoldásban saját függvény vagy makró nem használható.
Beküldendő az i705.zip tömörtett állományban a munkafüzetet az eredeti nevén xlsb formátumban (bináris munkafüzetként) és egy rövid dokumentáció, amelyben szerepel a kiválogatások módszere, a táblázatkezelő neve és verziószáma.
Letölthető fájl: primek1000000ig.txt
(10 pont)
I. 706. A tengeren üzemel egy mozgó bója, amely a hullámzást, a víz szennyezettségét és összetételét méri. Ez a bója kelet-nyugati irányban mozog két pont között. A feladatban a bója és minden más szereplő tárgy helyét egy koordináta-rendszerben adjuk meg. A koordináta-rendszer \(\displaystyle x\) tengelye mutat kelet felé, \(\displaystyle y\) tengelye észak felé. A bója az \(\displaystyle A(-12;-6)\) és \(\displaystyle B(12;-6)\) pontok által meghatározott szakaszon mozog: az \(\displaystyle x\) koordinátája (\(\displaystyle \tt X\)) egy valós szám a \(\displaystyle -12\) és \(\displaystyle 12\) intervallumon.
Észak felől egy robothajó hetente jön ellenőrizni a bója technikai állapotát. A hajó belépése a térségbe az \(\displaystyle y=5\) egyenesen történik, vagyis a belépési pont \(\displaystyle y\) koordinátája értéke adott, ez 5, az \(\displaystyle x\) koordinátája (\(\displaystyle \tt X\)) pedig egy egész szám. A hajó a koordináta-rendszer első és a második síknegyedével jelzett területen is be tud lépni a térségbe. A hajónak egy egységnél kisebb távolságra kell megközelíteni a bóját a technikai ellenőrzéshez.
Az origó középpontú, 4 egység sugarú körlapnak megfelelő területen a tengeren egy olajfúró állomás található, ennek a területére nem szabad belépni. A hajót egy robot irányítja, a programja szerint a koordináta-rendszer rácsvonalán tud fel-le és balra-jobbra menni 1 egységet, tehát észak-dél és kelet-nyugati irányban, illetve a rácspontok között átlósan is tud mozogni, ekkor \(\displaystyle \sqrt{2}\) egységet halad északkelet és délnyugat vagy északnyugat és délkelet irányban.
Készítsünk programot, amely meghatározza a hajó legrövidebb útját a bójáig. A program a standard bemenet első sorában szóközzel elválasztja kapja meg a hajó és bója \(\displaystyle \tt X\) koordinátáját. A program a standard kimenet első sorában adja meg a hajó térségbe való belépése és a bója között a hajó legrövidebb útjának egész koordinátájú pontjait, valamint a második sorban a hajó által megtett út hosszát két tizedesjegy pontosággal.
| Példa bemenet | Példa kimenet |
| -7 -5,2 | -7 5 -6 4 -5 3 -5 2 -5 1 -5 0 -5 -1 -5 -2 -5 -3 -5 -4 -5 -6 |
| 12,02 |

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