A KöMaL 2024. 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ű feladatokA beküldési határidő 2025. január 15-én LEJÁRT. |
I. 643. Készítsünk programot, amely egy pozitív egész számról megállapítja, hogy a szám osztói négyzetösszegének osztója-e maga a szám.
A program standard bemenetének egyetlen sorában az \(\displaystyle N\) (\(\displaystyle 1\leq N\leq 10\,000\)) pozitív egész szám áll.
A program a standard kimenet egyetlen sorába az IGEN vagy a NEM szöveget írja ki, attól függően, hogy a szám osztója-e az osztói négyzetösszegének.
Példa:
Bemenet | Kimenet |
175 | IGEN |
Magyarázat: a 175 osztói 1, 5, 7, 25, 35, 175, amelyek négyzetösszege 32550, ami 175 többszöröse.
Beküldendő egy tömörített i643.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. 644. Egy \(\displaystyle 30\times 30\)-as négyzetháló véletlenszerűen választott \(\displaystyle 9\) mezőjében elhelyezzük \(\displaystyle 1\)-től \(\displaystyle 9\)-ig a számokat. Tekintsük úgy, hogy ezek a számok a négyzethálón egy útvonal egyes állomásait mutatják. A négyzetháló egy mezőjéről csak a vele élszomszédos mezőre lehet lépni, így pl. a \(\displaystyle (3;5)\) mezőről a \(\displaystyle (7;8)\) mezőre például \(\displaystyle 7\) lépésben el lehet jutni útközben \(\displaystyle 6\) mezőt érintve.
Készítsünk táblázatkezelő munkafüzetet, amelyben megoldjuk a következő feladatokat. A megoldás során csak a táblázatkezelő beépített függvényeit használjuk, saját kódot vagy makrót ne alkalmazzunk.
- Egy munkalapon alakítsunk ki az A1-es cellától kiindulva a feladatban szereplő \(\displaystyle 30\times 30\)-as táblázatrészt, amelyben az oszlopok és sorok magassága egyenlő érték.
- A táblázatrészben jelöljük \(\displaystyle 1\)-től \(\displaystyle 30\)-ig a mezők \(\displaystyle X\) és \(\displaystyle Y\) koordinátáit a mintához hasonlóan.
- A négyzethálót tartalmazó táblázatrészben állítsunk be a celláknak vékony szegélyt, és igazítsuk a cellák tartalmát vízszintesen és függőlegesen középre.
- Helyezzük el \(\displaystyle 1\)-től \(\displaystyle 9\)-ig a számokat a négyzetháló valamely \(\displaystyle 9\) mezőjében.
- Állítsunk be feltételes formázást a négyzetháló celláiban, amely a nem üres cellák hátterét világoskék színnel jeleníti meg, valamint a cella tartalmát fehér színű, felkövér betűvel mutatja.
- A négyzethálótól jobbra vegyünk fel egy másik táblázatrészt a mintához hasonlóan. Ebben a részben adjuk meg az útvonal állomásait \(\displaystyle 1\)-től \(\displaystyle 9\)-ig.
- Keressük meg képletek és/vagy segédtáblázatok alkalmazásával, hogy az egyes állomások hol találhatók a négyzethálón. A kapott \(\displaystyle X\) és \(\displaystyle Y\) értékeket a sorszámok mellett jelenítsük meg.
- Adjuk meg képlet segítségével, hogy az egymást követő állomások között legkevesebb hány lépést kell megtennünk a négyzethálón haladva. Az eredményeket a mintának megfelelően adjuk meg az állomások mellett.
- Ezen táblázatrész alatt adjuk meg képlet segítségével a legrövidebb útszakasz kezdő és végső állomásának számát, és jelenítsük meg az eredményeket a mintának megfelelően.
- Adjuk meg a legrövidebb útszakasz egy lehetséges bejárását az érintett mezők koordinátáinak megjelenítésével az előző eredmények alatt. A megoldáshoz képletet és/vagy segédcellákat alkalmazzunk. Feltehetjük, hogy nem lesz \(\displaystyle 14\) lépésnél hosszabb a legrövidebb útvonal.
- Formázzuk az előző feladatokban szereplő táblázatrészeket is a mintának megfelelően.
Minta:
Beküldendő egy tömörített i644.zip állományban a megoldást adó munkafüzet, valamint egy rövid dokumentáció, amely megadja az alkalmazott táblázatkezelő nevét és verzióját.
(10 pont)
I. 645. A diafilmek nézése újra népszerű, és olvasása minden gyereknek, felnőttnek örömet szerez. A Magyarországon megjelent oktató, ismeretterjesztő és szórakoztatási célokat szolgáló diafilmeket a Diafilm-történeti Gyűjtemény gyűjti és rendszerezi (virtuális Diamúzeum: http://dia.osaarchivum.org/public/index.php). A gyűjtemény mesediafilmjeinek adatai a film.txt, a kapcsolo.txt és a kiado.txt állományokban állnak rendelkezésre.
A feladat megoldásához a digitális kultúra emelt szintű érettségin használható XAMPP használatát javasoljuk.
- Készítsünk új adatbázist diafilmek néven. A mellékelt állományokat (film.txt, kapcsolo.txt, kiado.txt) importáljuk az adatbázisba a fájlnévvel azonos táblanéven. Az állományok tabulátorral tagolt, UTF-8 kódolású szövegfájlok, az első soruk a mezőneveket tartalmazza. A létrehozás során állítsuk be a megfelelő típusokat és a kulcsokat. A táblák kialakításához vegyük figyelembe az alábbi táblaleírásokat és kapcsolatokat:
Tábla:
A következő feladatokat megoldó SQL parancsokat a diafilm_megoldas.sql nevű állományban rögzítsük 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őket ne jelenítsünk meg.
- Készítsünk lekérdezést, amely a kiadási év nélküli diafilmek címét és kockaszámát ábécérendben megjeleníti. (2hianyos)
- Lekérdezés segítségével írassuk ki azoknak a diafilmeknek a címét, kockaszámát és kiadási évét, amelyekben szerepel a „mazsola'' név. (3mazsola)
- Készítsünk lekérdezést, amely megadja azoknak a diafilmeknek a címét, amelyeket több kiadó is megjelentetett. (4tobb)
- Lekérdezés segítségével írassuk ki a legtöbb kiadást megélt diafilm címét és a kiadások számát. (5nepszeru)
- Készítsünk lekérdezést, amely megadja, hogy évente hány diafilmet adtak ki. A számláláskor hagyjuk figyelmen kívül a kiadási évszámmal nem rendelkező filmeket. A listát darabszám szerint csökkenően jelenítsük meg. (6idodb)
- Több diafilmet egyszerre, ugyanabban az évben, fekete-fehér és színes változatban is kiadtak. Lekérdezés segítségével gyűjtsük ki ezeknek a filmeknek a címét és kiadási évét. (7egyszerre)
- Lekérdezés segítségével írassuk ki, hogy a filmek hány százaléka fekete-fehér. (8mono)
- Lekérdezés segítségével listázzuk ki az „Aranyfalu'' mese kiadója többi diafilmjének címét, a kiadás évét és a diakockák számát. A listában minden cím egyszer jelenjen meg, az „Aranyfalu'' pedig ne szerepeljen benne. (9aranyfalu)
Letölthető állomány: film.txt, kapcsolo.txt és kiado.txt
Beküldendő egy tömörített i645.zip állományban az adatbázis exportját tartalmazó diafilm.sql és a feladatok megoldását tartalmazó diafilm_megoldas.sql nevű állomány.
(10 pont)
I. 646. A „Lorem ipsum'' kezdetű szövegek véletlenszerűen egymás mellé helyezett latin szavakból állnak. A kapott mondatok nyelvtanilag nem helyesek, nincs értelmük, leginkább akkor használjuk őket, amikor rövidebb-hosszabb szövegre lenne szükségünk, melynek valójában csak a kinézetét, formázását akarjuk megvizsgálni.
Készítsünk programot, amely az angol nyelv weben előforduló 5000 leggyakoribb szavát felhasználva alkot mondatokat. A program B számú bekezdést hozzon létre, melyek mindegyikében M számú mondat, és egy-egy mondatban legfeljebb S szó szerepeljen.
A szövegben minden mondat végén pont álljon, a 10 szónál hosszabb mondatokban a szavak között egy helyen legyen egy vessző. A mondatok nagybetűvel kezdődjenek, az írásjelek után és a szavak között egy szóköz szerepeljen. Az írásjelek előtt ne legyen szóköz.
A program olvassa be a honlapunkról letölthető eng5000.txt egyszerű szöveges állományt a mondatok elkészítéséhez. Az állományban gyakoriság szerint csökkenő sorrendben szerepelnek a szavak, illetve azok gyakorisága egy bizonyos méretű adathalmazon. A szavak véletlenszerű kiválasztását úgy oldjuk meg, hogy a létrehozott szövegben a szavak gyakoriság szerinti sorrendje közel egyező legyen azok eredeti gyakoriság szerinti sorrendjével.
A program standard bemenetének egyetlen sorában szóközzel elválasztva a bekezdések \(\displaystyle B\) (\(\displaystyle 1\leq B\leq 100\)) száma, az egy bekezdésben szereplő mondatok \(\displaystyle M\) (\(\displaystyle 1\leq M\leq 20\)) száma, illetve az egy mondatban legfeljebb előforduló szavak \(\displaystyle S\) (\(\displaystyle 1\leq S\leq 30\)) száma áll.
A program a standard kimenet \(\displaystyle B\) darab sorában adja meg a létrehozott szöveget.
Példa:
Forrás: https://www.kaggle.com/datasets/rtatman/english-word-frequency/
Letölthető állomány: eng5000.txt
Beküldendő egy tömörített i646.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.