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. októberi 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. november 15-én LEJÁRT.


I. 599. Egy számsorozatot akkor nevezzünk Fibonacci-típusúnak, ha a harmadiktól kezdve mindegyik eleme az előző kettő összege. A sorozat legismertebb formája, ha az első két szám 0 és 1.

A sorozatot rekurzióval definiáljuk, amit iteratív módon is könnyen kódolni tudunk.

$$\begin{align*} \tag{1} F_{0}& = 0, \qquad F_{1} = 1;\\

\tag{2} F_{n+1} & = F_{n-1} + F_{n} \quad (n\ge 1). \end{align*}$$

A sorozat elemei gyorsan növekednek. Változtassuk meg a 2. képletet.

\(\displaystyle \tag{3} F_{n+1} = (F_{n-1} + F_{n}) \mod m \quad (n\ge 1). \)

A képletben szereplő \(\displaystyle m\) (\(\displaystyle m> 1\)) egész szám, amellyel a sorozat új elemét maradékosan osztjuk. A sorozat periodikus, előbb-utóbb újra szerepel benne 0 és 1, így ismétlődni kezdenek az értékek.

Készítsünk programot, amely \(\displaystyle m\) értékét beolvassa és a képernyőre kiírja a periódus hosszát, valamint egy új sorba a periódus elemeit.

Beküldendő egy tömörített i599.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. 600. Egy asztalon egyforma méretű korongok találhatók, mely(ek)re számokat írtak 1-től 25-ig. Mindegyik szám csak egyszer szerepel egy korongon, tehát 25 korong van. A korongok egymásra helyezhetők, de csak akkor, ha a feljebb lévő korong száma osztója az alatta lévő korong számának. Például építhető a korongokból egy 4 magasságú oszlop, ha a korongok száma 1, 3, 12, 24.

Valaki épített már néhány oszlopot az asztalon lévő korongokból, de egyelőre elakadt az építkezésben. Készítsünk programot, amely az asztalon látható oszlopok ismeretében segít a további korongokat a korábbi oszlopokba elhelyezni.

A program először kérje be az eddigi oszlopok \(\displaystyle N\) számát, majd kérje be az \(\displaystyle N\) darab oszlopban található számokat egy oszlopon belül felülről lefelé haladva. Ezután írja ki a még szabadon lévő korongok számát növekvő sorrendben, valamint azon szabadon lévő korongokon lévő számokat, amely korongokat nem lehet az eddigi oszlopok egyikéhez sem hozzátenni.

Egy lehetséges kommunikáció a felhasználóval:

Beküldendő egy tömörített i600.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. 601. 1777-ben George Louis Leclerc, Buffon grófja vetette fel a ,,tűprobléma'' néven ismert feladatot: Mekkora a valószínűsége annak, hogy \(\displaystyle k\) hosszúságú tűt dobva a \(\displaystyle d\) szélességű lapokból álló padlóra, a leeső tű metszi a padlólapok közti egyik vonalat?

Nézzük ennek a matematikai megközelítését!

Jelölje \(\displaystyle x\) a tű középpontjának a legközelebbi vonaltól mért távolságát \(\displaystyle \left(0 \le x \le \frac{d}{2}\right)\).

Legyen a tű és a padló vonalainak szöge \(\displaystyle \alpha\) \(\displaystyle (0^\circ \le \alpha < 180^\circ)\).

Ekkor a tű vége \(\displaystyle y\) értékkel kerül magasabbra a tű középpontjánál \(\displaystyle \bigg(\sin \alpha = \frac{y}{\frac{k}{2}}\), vagyis \(\displaystyle y = \frac{k}{2} \cdot \sin\alpha\bigg)\). Ha \(\displaystyle y < x\), akkor nem metszi a tű a vonalat.

Annak az esélye, hogy metszi a tű a padlóvonalat: \(\displaystyle p = \frac{2}{\pi} \cdot \frac{k}{d}\), ezért a kísérlet a \(\displaystyle \pi\) meghatározására is használható.

Az előző képletből \(\displaystyle \pi\)-t kifejezve: \(\displaystyle \pi = \frac{2k}{pd}\).

Szimuláljuk a kísérletet számítógéppel. Hat különböző \(\displaystyle k\) és \(\displaystyle d\) értékre végeztessünk a táblázatkezelővel \(\displaystyle 10\,000\,--\,10\,000\) dobáskísérletet, majd mindegyiknél határozzuk meg a \(\displaystyle p\) relatív gyakoriságát. Ezekből kapunk hat becslést a \(\displaystyle \pi\) értékére, majd ezeket átlagoljuk.

1. Nyissunk meg egy üres táblázatkezelő munkafüzetet, majd mentsük buffontu néven.

2. Hozzuk létre és formázzuk a minták szerinti elrendezést.

3. Gépeljük be a szöveges adatokat az A1:A4 és a B5:S5 tartományokba, alkalmazzunk ezekre a cellákra félkövér betűstílust. Az A6:A1005 tartományba kerüljenek az \(\displaystyle 1, 2, \ldots, 999, 1000\) értékek. A C, az F, az I, az L, az O és az R oszlopok első két sorába gépeljük be a mintákon látható, \(\displaystyle k\) és \(\displaystyle d\) aktuális értékére vonatkozó adatokat.

4. Szegélyezzük a táblázat celláit a minta szerint, a rácsozás az 1005. sorig tartson.

5. A B, az E, a H, a K, az N és a P oszlopok 6\(\displaystyle \,\)–\(\displaystyle \,\)1005. sorába kerüljön olyan képlet, amely a véletlenszám generátor segítségével megad egy 0 és \(\displaystyle \frac{d}{2}\) közötti értéket. Az adat négy tizedesjegy pontossággal jelenjen meg.

6. A C, az F, az I, az L, az O és az R oszlopok 6\(\displaystyle \,\)–\(\displaystyle \,\)1005. sorába kerüljön olyan képlet, amely véletlenszám generátor segítségével megad egy \(\displaystyle 0^\circ\) és \(\displaystyle 180^\circ\) közötti szögértéket. Az adat két tizedesjegy pontossággal jelenjen meg.

7. A D, a G, a J, az M, a P és az S oszlopok 6\(\displaystyle \,\)–\(\displaystyle \,\)1005. sorába kerüljön 0, ha a tű nem metszi a vonalat, vagyis \(\displaystyle y < x\); ellenkező esetben a cella értéke legyen 1.

8. A C3, az F3, az I3, az L3, az O3 és az R3 cellákban szerepeljen olyan képlet, amely megadja a ,,metszés'' adott tesztben mért relatív gyakoriságát \(\displaystyle \left(\frac{\text{jó esetek száma}}{\text{kísérletek száma}}\right)\).

9. A C4, az F4, az I4, az L4, az O4 és az R4 cellákban az a képlet szerepeljen, amely megadja a \(\displaystyle \pi\) értékére kapott becslést az adott tesztben.

10. Végül átlagoljuk ezek értékét a T4 cellában. Állítsuk be a cella jellemzőit a mintán láthatóra.

Segédszámításokat az U oszloptó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 i601.zip állományban a táblázatkezelő munkafüzet, illetve egy rövid dokumentáció, amelyben szerepel a megoldáskor alkalmazott táblázatkezelő neve, verziószáma.

(10 pont)

megoldás, statisztika


I. 602. Az európai Az év autója szavazást 1964 óta tartják meg minden évben a bemutatott új autókról. A jelölésben és a szavazásban autós magazinok szakújságírói vesznek részt.

A rendelkezésre álló és letölthető adatbázisban az 1964\(\displaystyle \,\)–\(\displaystyle \,\)2023 időszak első három helyezettjének adatai állnak rendelkezésre.

Az adatbázis a következő táblát tartalmazza:

Táblák:

A következő feladatokat megoldó SQL parancsokat rögzítsük az evautoja_lekerdezesek.sql nevű állományban 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őt ne jelenítsünk meg. A feladat megoldásához a digitális kultúra emelt szintű érettségin használható XAMPP használatát javasoljuk.

1. Az evautoja.sql állomány tartalmazza az adatbázist és a táblát létrehozó, valamint az adatokat a táblába beszúró SQL parancsokat! Futtassuk a lokális SQL szerveren az evautoja.sql parancsfájlt.

2. Készítsünk listát lekérdezés segítségével azokról az autókról (ev, gyar, modell, pont), amelyek 200 pontnál többel lettek harmadik helyezettek. (2harmadik)

3. A díjazott autók gyárai között 4 japán van: a Honda, a Mazda, a Nissan és a Toyota. Listázzuk ki az összes modelljüket (ev, gyar, modell, helyezes) helyezés szerinti sorrendben. (3japan)

4. Adjuk meg lekérdezés segítségével, hogy melyek azok a gyárak, amelyek csak egyszer szerepelnek a táblában. (4Egyszer)

5. Adjuk meg lekérdezés segítségével, hogy melyik az első három autógyár, amelyik legtöbbször volt a valamelyik modelljével első helyezett. (5Elsok)

6. Írassuk ki lekérdezés segítségével, hogy mely években nyerte díjait az az autó, amely legtöbbször szerepelt a díjazottak között. (6Evek)

7. A Fiesta nevű autó gyártójának milyen más modellje van még a táblázatban? Jelenítsük meg a gyár és a modellek nevét (mindegyiket egyszer). (7Fiesta)

8. Melyek azok az autómodellek, amelyek első és második díjat is nyertek? Adjuk meg lekérdezés segítségével a gyártó, valamint a modell nevét és a díjak évét. (8Elsomasodik)

9. Adjuk meg azokat az éveket és autóknak az adatait, amikor az első és második helyezett pontszáma legfeljebb 5 ponttal tért el. (9Szorosnyeres)

10. Készítsük el lekérdezés segítségével gyáranként az éremtáblázatot (gyáranként az első, a második és a harmadik helyezések száma) a nevük szerinti sorrendben, a mintához hasonlóan. (10Eremtabla)

Beküldendő egy tömörített i602.zip állományban az evautoja_lekerde­ze­sek.sql nevű állomány, amely a feladatok megoldását tartalmazza.

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

(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.