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 2019. 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ő 2019. december 10-én LEJÁRT.


I. 493. Négyzet alakú mezőkből álló játéktereken, például táblás játékoknál vagy szimulációs programokban (lásd mintázatképződés, I.\(\displaystyle \;\)256. feladat) a szomszédság meghatározása lényeges.

Legyen adott egy \(\displaystyle N\times N\) (\(\displaystyle 5\le N\le 100\)) négyzetből álló játéktábla, amelynek minden mezője vagy üres, vagy egy bábut tartalmaz. A szomszédos mezők oldalaikkal vagy sarkaikkal érintkeznek, illetve a játéktér túlsó szélén vagy átellenes sarkán vannak. Két különböző mező \(\displaystyle T\) távolságban (\(\displaystyle 1\le T\le N/2\)) szomszédos, ha legföljebb \(\displaystyle T\) mezőn keresztül el lehet jutni az egyik mezőről a másikra. Például egy \(\displaystyle 6\times 6\)-os táblán a \(\displaystyle (2;2)\) mező 2 távolságú szomszédjai az ábrán szürke színezésűek.

Készítsünk programot i493 néven, amely egy játéktábla pillanatnyi állása mellett megadja \(\displaystyle K\) darab kiválasztott mező \(\displaystyle T\) távolságú szomszédságában lévő mezőkön található bábuk számának összegét.

A program a standard bemenet első sorából olvassa be \(\displaystyle N\), \(\displaystyle K\) és \(\displaystyle T\) értékét, majd a következő \(\displaystyle N\) sorból soronként \(\displaystyle N\) darab egész számot: 1 vagy 0 jelöli, hogy az adott mezőn van bábu, vagy nincs. A következő \(\displaystyle K\) sorban a vizsgált mezők oszlop- és sor koordinátái szerepelnek. A program a standard kimenet első sorába írja a megadott \(\displaystyle K\) mező \(\displaystyle T\) távolságú szomszédságában található mezőkön lévő bábuk számának összegét.

Példa:

Beküldendő egy i493.zip tömörített állományban a program forráskódja és egy rövid leírás, ami megadja, hogy a forrásállomány melyik fejlesztői környezetben fordítható.

Letölthető állomány: i493beki.zip.

(10 pont)


I. 494. (É). Az Országgyűlés ülése akkor határozatképes, ha azon a képviselők több, mint a fele jelen van. Szavazni ,,igen'', ,,nem'' vagy ,,tartózkodom'' nyilatkozattal lehet. Az Országgyűlés az Alaptörvényben, törvényekben vagy a házszabályi rendelkezésekben meghatározott kivételekkel – amely esetekben a szavazás titkosan történik – minden kérdésben nyílt szavazással határoz. A határozathozatal során alapesetben tíz másodperc áll a képviselő rendelkezésére a választott gomb megnyomására.

Feladat a 2019. január és 2019. június során megtartott szavazások adatainak elemzése lesz adatbázis-kezelő program használatával.

1. Készítsünk új adatbázist orszagszavazas néven. A letölthető adatállományokat importáljuk az adatbázisba a fájlnévvel azonos nevű táblákba. Beolvasáskor állítsuk be a megfelelő típusokat és kulcsokat. Az állományok tabulátorral tagolt, közép-európai (Windows) kódolású szövegfájlok, az első sorok a mezőneveket tartalmazzák.

2. Ha a feladat megoldásához szükségünk van rá, alakítsunk ki megfelelő kapcsolatokat a táblák között.

Táblák:

Készítsük el a következő feladatok megoldását. Az egyes lekérdezéseknél ügyeljünk arra, hogy mindig csak a kért értékek jelenjenek meg és más adatok ne. Megoldásainkat a zárójelben lévő néven mentsük el.

3. Adjuk meg, hogy hány esetben volt határozatképtelen az országgyűlés. (3hatarozatkeptelen)

4. Adjuk meg, hogy átlagosan hány órakor történtek a szavazások. Eredményünket egész órában jelenítsük meg. (4nepszeruido)

5. Vizsgáljuk meg és írjuk ki annak az elnöknek a nevét és az elnöklete alatt tartott szavazások számát, aki a legtöbb szavazáson elnökölt. (5legtobb)

6. A jelenlegi szavazas táblánkat egészítsük ki egy új osszes oszloppal, ahol megadjuk, hányan szavaztak összesen az adott kérdésben. (6osszes)

7. Írassuk ki azon dátumokat, amikor az összes szavazatszám nem érte el a 100-at, bármely aznapi szavazás esetében. (7kevesebb)

8. Írassuk ki azokat az ügycímeket (mindegyik csak egyszer jelenjen meg), amelyek irományszáma S jelzéssel van ellátva. (8iromany)

9. Adjuk meg, hogy melyik az a párt, amelynek a legtöbb indítványát vetették el és összesen hányat. (9elvetett)

10. Készítsünk jelentést, ahol megjelenítjük, hogy melyik elnök mely napokon elnökölt. A jelentés legyen elnökönként dátum szerint növekvő sorrendben rendezve. (10elnokok)

Beküldendő egy tömörített 494.zip állományban az adatbázis, valamint egy rövid dokumentáció, amelyből kiderül az alkalmazott adatbázis-kezelő neve és verziószáma.

Forrás:
https://www.parlament.hu/web/guest/bevezetes5 (utolsó letöltés 2019.09.17.);
https://www.parlament.hu/web/guest/szavazasok-adott-idoszakban (utolsó letöltés 2019.09.17.).

Letölthető állomány: adatok.zip

(10 pont)


I. 495. A lezárt mobiltelefonra történő egyik bejelentkezési lehetőség a feloldóminta rajzolása. Ekkor \(\displaystyle 3\times 3\) pont között kell egymáshoz csatlakozó szakaszok behúzásával egy ábrát létrehoznunk. Tamás feloldómintája egy töröttvonal, amely mindegyik ponton egyszer halad át. András szerint ez a minta nem biztonságos, jobb lett volna PIN kódot megadni. Tamás szerint a feloldóminta biztonságosabb, mint egy 6 jegyű PIN kód.

Egy, a leírás szerinti feloldóminta:

Készítsünk programot, amely eldönti a kérdést azáltal, hogy megszámolja a lehetséges, fent leírt feloldómintákat. Két feloldóminta akkor azonos, ha a csúcsokat azonos sorrendben érintik. A program a standard kimenet egyetlen sorába írja ki a feloldóminták számát.

Beküldendő egy i495.zip tömörített állományban a program forráskódja és egy rövid leírás, ami megadja, hogy a forrásállomány melyik fejlesztői környezetben fordítható.

(10 pont)


I/S-jelű feladatok

A beküldési határidő 2019. december 10-én LEJÁRT.


I/S. 39. Egy irodában \(\displaystyle N\) ember dolgozik. Minden embernek van egy preferenciája az iroda ideális hőmérsékletére vonatkozóan. Ha az irodában a hőmérséklet \(\displaystyle T\), az \(\displaystyle i\)-edik ember preferenciája pedig \(\displaystyle P_{i}\), akkor az adott dolgozó munkakerülési hajlama \(\displaystyle |T-P_i|\). Az iroda munkakerülési hajlama az emberek munkakerülési hajlamainak összege. Adjuk meg minden emberre, hogy ha ő beállítja az iroda hőmérsékletét a saját preferencia-hőmérsékletére, akkor mennyi lesz az iroda munkakerülési hajlama.

Bemenet: az első sor tartalmazza az \(\displaystyle N\) értékét és a következő \(\displaystyle N\) sor tartalmazza a \(\displaystyle P_{i}\) ideális hőmérsékleteket.

Kimenet: az \(\displaystyle i\)-edik sor tartalmazza az \(\displaystyle i\)-edik ember ideális hőmérsékletekor az iroda munkakerülési hajlamát.

Példa:

Korlátok: \(\displaystyle 3\le N\le {10}^{5}\), \(\displaystyle -{10}^{9}\le P_{i}\le {10}^{9}\). Időkorlát: 0,3 mp.

Értékelés: a pontok 50%-a kapható, ha \(\displaystyle N\le 1000\).

Beküldendő egy is39.zip tömörített állományban a megfelelően dokumentált és kommentezett forrásprogram, amely tartalmazza a megoldás lépéseit, valamint megadja, hogy a program melyik fejlesztői környezetben futtatható.

(10 pont)


S-jelű feladatok

A beküldési határidő 2019. december 10-én LEJÁRT.


S. 138. H.\(\displaystyle \,\)G. Tannhaus lakásán \(\displaystyle N\) darab perc- és óramutatós óra található a falon. Az órákat 1-től \(\displaystyle N\)-ig indexeljük. Az \(\displaystyle i\)-edik óra percmutatója \(\displaystyle m_{i}\), óramutatója \(\displaystyle h_{i}\) hosszú. Tannhaus \(\displaystyle N\) napig vizsgálja az órákat. Az \(\displaystyle i\)-edik nap egy tetszőleges időpontjában felírja az \(\displaystyle i\)-edik óra két mutatója végpontjának távolságát egy lapra; mindegyik számot külön lapra. Azonban Tannhaus néhány távolságot (bár lehet, hogy egyet sem) elszámolt. Sőt a lapok még össze is keveredtek és nem lehet tudni, hogy melyik nap melyik lapra írt. Tudjuk az órák mutatóinak hosszát, valamint hogy a lapokon milyen számok vannak (az összekeveredést követően). Adjuk meg, hogy maximum hány mérést végezhetett el jól Tannhaus.

Bemenet: az első sor tartalmazza az \(\displaystyle N\) számot. A következő sor \(\displaystyle N\) darab számot tartalmaz: az \(\displaystyle i\)-edik szám az \(\displaystyle m_{i}\). Az ezt követő sor ugyancsak \(\displaystyle N\) darab számot tartalmaz: az \(\displaystyle i\)-edik szám a \(\displaystyle h_{i}\). A bemenet utolsó sora \(\displaystyle N\) számot tartalmaz: az \(\displaystyle i\)-edik szám a keveredés után az \(\displaystyle i\)-edik lapon levő szám.

Kimenet: a program adjon meg egyetlen számot, a maximális helyes mérések számát.

Példa:

Korlátok: \(\displaystyle 3\le N\le {10}^{5}\), \(\displaystyle 1\le \text{mutató}\) hossz, mérési érték (mind egész \(\displaystyle \text{számok)}\le {10}^{9}\). Időkorlát: 0,3 mp.

Értékelés: a pontok 50%-a kapható, ha \(\displaystyle N\le 1000\).

Beküldendő egy s138.zip tömörített állományban a megfelelően dokumentált és kommentezett forrásprogram, amely tartalmazza a megoldás lépéseit, valamint megadja, hogy a program melyik fejlesztői környezetben futtatható.

(10 pont)


Figyelem!

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