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 2023. novemberi 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ő 2023. december 15-én LEJÁRT.


I. 603. A pozitív egész számok közötti szimpátia mértékét a számok egyes részei közötti oszthatósági kapcsolatok alapján vizsgálják. Két egyjegyű szám esetében a szimpátia mértéke azon múlik, hogy a számjegyek osztói-e egymásnak. Például a 4 és 7 esetén a szimpátia mértéke nulla, míg 4 és 8 esetén a szimpátia mértéke 1, de 5 és 5 esetén a szimpátia mértéke 2. Ha a számok többjegyűek, akkor figyelembe veszik az egyik szám számjegyeinek a szám kétjegyű, háromjegyű stb. részeivel vett oszthatóságát. Például a 6 és 349 esetén a szimpátia mértéke 1, mivel a 3 osztója a 6-nak, de más oszthatósági kapcsolat nincs. De példaként a 36 és 120 esetében a szimpátia mértékét a következő módon kapjuk:

\(\displaystyle \bullet\) a 3 és a 6 osztója a 0-nak, az 1 osztója a 3-nak és a 6-nak, a 2 osztója a 6-nak, tehát a szimpátia mértéke az egyjegyű részeknél 5;

\(\displaystyle \bullet\) a 3 és a 6 is osztója a 12-nek, de nem osztója 20-nak, ezért a szimpátia mértéke 2-vel nő;

\(\displaystyle \bullet\) az 1 és a 2 osztója a 36-nak, a 0 nem, ezért a szimpátia mértéke ismét 2-vel nő;

\(\displaystyle \bullet\) a 3 és a 6 is osztója a 120-nak, ezért a szimpátia mértéke ismét 2-vel nő.

Így a két szám szimpátiájának mértéke \(\displaystyle 5+2+2+2=11\).

Ha egy többjegyű számrész 0-kal kezdődik, akkor nem tekintjük valódi számrésznek, tehát a 102 és 2 számok esetén a szimpátia mértéke 6, mivel a 02-t nem tekintjük kétjegyű résznek.

Készítsünk programot i603 néven, amely a megadja a bemeneten kapott két pozitív egész szám szimpátiájának mértékét.

Példák:

BemenetKimenet
11 1
1212 24
10 10
100 10
5
22
8
12

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

megoldás, statisztika


I. 604. Egy \(\displaystyle N\) sorból és \(\displaystyle M\) oszlopból álló karaktertömbben határozzuk meg azt a \(\displaystyle H\times H\) karakterszámú négyzetet, amelyben a legtöbb olyan betű van, amely minden oldalszomszédjánál előbbre van az ábécében. A tömb elemei kizárólag az angol ábécé kisbetűi.

Készítsünk programot i604 néven, amely a megadja a \(\displaystyle H\times H\) karakterszámú négyzet bal felső sarkának sor és oszlop indexét.

A program standard bemenetének első sorában a karaktertömb \(\displaystyle N\) sorának és \(\displaystyle M\) oszlopának száma (\(\displaystyle 1\le N, M\le 100\)) és \(\displaystyle H\) a keresett négyzet oldalhossza (\(\displaystyle 1\le H\le \min {(N,M)}\)) található. Az ezt követő \(\displaystyle N\) sorban soronként \(\displaystyle M\) karakter következik.

A program a standard kimenetre írja ki a \(\displaystyle H\times H\) karakterszámú négyzet bal felső sarkának koordinátáit. Ha több megoldás lenne, akkor a legkisebb sor-, azon belül oszlopindexű négyzetet adjuk meg.

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

megoldás, statisztika


I. 605. Adott egy 500 mm oldalhosszú négyzet alakú terület 1000 mm magas kerettel körülvéve. A területen létrehoztak egy felszínt, amelyik sehol nem haladja meg a keret magasságát. A terület rácspontjaiban pici csapágygolyót tehetünk a felületre és vizsgálhatjuk, hogy mi történik vele. Lehet, hogy nem mozdul, de az is lehet, hogy a kiindulási helyéről legurul.

A golyó akkor marad egy rácspontban, ha a helyét körülvevő nyolc rácspont egyikében sem kisebb a felszín magassága az aktuálisnál. A golyó akkor gurul át valamelyik szomszéd rácspontba, ha ott a felszín magassága kisebb, mint az eredeti pontban. Ha több irányba is gurulhatna, akkor a legnagyobb meredekségű irányt választja, vagyis azt a szomszéd mezőt, ahol a legkisebb magasságérték van. Ha több ilyen magasságú szomszéd van, akkor a táblázat szerint a legkisebb sorszámú szomszéd irányt választja.

Készítsük el a golyó mozgását szimuláló táblázatkezelő munkafüzetet.

1. Nyissunk meg egy üres munkafüzetet és mentsük golyo néven a program alapértelmezett formátumában. Legyen a munkalap neve Terep.

2. Illesszük be a munkalapra a B2 cellától kezdődően a tabulátorokkal tagolt, UTF-8 kódolású terep.txt fájl tartalmát.

3. Gépeljük be az A1 cellába a mintán látható szöveget, a minta szerint illesszük be a sorszámokat 1-től 502-ig az első sor és oszlop megfelelő celláiba, majd formázzuk meg ezeket a minta szerint.

4. Hozzuk létre a munkafüzetben a Mozgás nevű munkalapot, majd végezzük el a következőket:

\(\displaystyle a.\) Gépeljük be és formázzuk meg a minta szerint az első két sor celláit.

\(\displaystyle b.\) Állítsuk be, hogy a C1 és az E1 cellába csak 2 és 501 közötti egész számokat lehessen begépelni, ha más adatot próbálunk meg ezekbe a cellákba írni, hibaüzenet figyelmeztessen.

\(\displaystyle c.\) Az A3 cellától kezdődően jelenjen meg a sorszám 0-tól indítva, mellettük a B, C és D oszlopban jelenjen meg a golyó aktuális helyzete \(\displaystyle (x,y)\) és a terep magassága \(\displaystyle (h)\) ebben a rácspontban.

\(\displaystyle d.\) A következő sorban jelenjenek meg annak a szomszédos pontnak az adatai, ahová a golyó átgurul, ha van ilyen, és maradjanak üresek a cellák, ha a golyó megáll.

\(\displaystyle e.\) Készítsük fel a táblát 1000 lépés vizsgálatára, de adatok csak addig a sorig jelenjenek meg, amíg a golyó mozog.

5. Készítsük el a terep \(\displaystyle (400;202)\) pontjára kerülő golyó útjáról a mintákon látható ponttípusú diagramot és grafikont.

\(\displaystyle a.\) A diagramok kerüljenek a Pozíció és Magasság nevű, új munkalapokra.

\(\displaystyle b.\) Formázzuk a diagramokat a minták szerint. A kezdőpont és a végpont jelölése mindkettőn legyen zöld, illetve piros.

Segédszámításokat a Mozgás munkalap E oszlopátó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 i605.zip állományban a táblázatkezelő munkafüzet (golyo.xlsx, golyo.ods, ...), illetve egy rövid dokumentáció (golyo.txt, golyo.pdf, ...), amelyben szerepel a megoldáskor alkalmazott táblázatkezelő neve, verziószáma.

A megoldáshoz szükséges letölthető állomány: terep.txt.

(10 pont)

megoldás, statisztika


I. 606. A színházi közönségszervezők a színházak jegyeladásával és a nézők előadásjegy-igényeinek párosításával foglalkoznak. Érdemes nekik a színházi előadásokat hirdetniük. A nagyforgalmú árusítási és hirdetési rendszerüket adatbázis használatával segítik.

A feladatunk a szervező munkáját segítő hirdetési (marketing) adatbázis létrehozása és a működés kipróbálásához fiktív adatokkal való feltöltése. A szervezo.sql állományt hozzuk létre, 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 szervezo.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.

A feladat megoldásához a digitális kultúra emelt szintű érettségin használható XAMPP használatát javasoljuk.

1. Készítsünk új adatbázist szervezo néven.

2. A táblák kialakításához vegyük figyelembe az alábbi táblaleírásokat és kapcsolatokat:

Tábla:

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

3. A táblákban helyezzünk el adatokat tetszőleges forrásból. Személy- és színházneveket például az interneten találunk, a többi adatot pedig generálhatjuk. A rekordok száma minimum 50 legyen a szemely, 25 az eloadas és 100 a rendeles táblában.

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

A következő feladatokat megoldó SQL parancsokat rögzítsük a lekerdezesek.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.

5. Készítsünk lekérdezést, amely személyenként ábécérendben felsorolja, hogy hány színházi előadás hirdetését érdemes emailben elküldeni a megrendelőnek. A listában a személy neve, emailcíme és az előadások száma jelenjen meg. (5Mennyiseg)

6. Adjuk meg lekérdezés segítségével, hogy melyik színház melyik előadását játsszák kettőnél többször az adatbázis adatai szerint. (6Sokszor)

7. Írassuk ki lekérdezés segítségével, hogy kik rendeltek jegyet a legdrágább jegyárú előadásokra. A listában minden név egyszer jelenjen meg névsorban. (7Evek)

8. Adjuk meg lekérdezés segítségével azoknak a nevét, akik legalább 3 különböző színház előadásaira rendeltek jegyet. (8torzsvevo)

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

(10 pont)

megoldás, statisztika


Figyelem!

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