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 2020. januári 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ő 2020. február 10-én LEJÁRT.


I. 499. A betű-számrejtvény fejtörők klasszikus matematikafeladatok. Ilyenkor azokat a számjegyeket keressük, amelyeket a megfelelő betűk helyére írva a számítási eljárás teljesül.

Például:

Oldjuk meg a fenti három feladatot a brute force (nyers erő) módszerével, azaz vizsgáljuk meg a betűk minden lehetséges értékét, amíg az összes megoldást meg nem kapjuk. Ügyeljünk arra, hogy a különböző betűk különböző számjegyeket jelentenek.

A kapott összes megoldást írjuk ki a képernyőre a betűk helyett a megfelelő számjegyek megjelenítésével az alábbi formátumban. Például a harmadik feladatban:

Beküldendő egy i499.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)

megoldás, statisztika


I. 500. A Technikai Múzeumban Ármin bácsi a villanymotor-gyűjtemény muzeológusa. Feladatai közé tartozik minden nap a múzeum nyitása után a motorok beindítása, hogy ezáltal fenntartsa a működőképességüket. Fontos, hogy a motorokat egyesével indítsa be, hogy a bekapcsolási áramlökések ne adódjanak össze. A motorokat egy ideig járatja, majd lekapcsolja őket ő, vagy ebben már más is segíthet neki (egy időpontban több motort is leállíthatnak). Minden motort egy nap csak egyszer kapcsolnak be.

Rendelkezésünkre áll Ármin bácsi naplója a motorok bekapcsolási és leállítási időpontjáról. Az adatokat a nyitás óta eltelt másodpercek számával rögzítette. A napi jelentés az első motor bekapcsolásától az utolsó motor leállításig tart.

A villanymotorok száma legfeljebb 50, de általában ennél kevesebb van a múzeumban, mert vagy néhányat kikölcsönöztek más kiállításra, vagy elvitték őket javításra. A napi jelentésben az éppen bent lévő motorok egymás után felsorolva szerepelnek.

Rendelkezésre állnak a naplo.txt tabulátorokkal tagolt, UTF-8 kódolású állományban egy olyan nap adatai, amikor kevés motor volt bent.

A múzeumigazgató a naplóba pillantva két kérdést tett fel és egy kérést fogalmazott meg. A kérdések megválaszolását és a kérés teljesítését segítsük táblázatkezelővel.

1. Ármin bácsi naplója alapján adjuk meg a leghosszabb időintervallum hosszát, amikor legalább egy motor bekapcsolt állapotban volt.

2. Adjuk meg a leghosszabb időintervallum hosszát, amikor nem működött egy motor sem.

3. Az A:C oszlop celláiban állítsuk be feltételes formázás használatával a leghosszabb ideig bekapcsolt motorok közül az első három sorának cellakitöltését három különböző színűre.

A megoldást úgy készítsük el, hogy az igazgató kérdéseire a maximális 50 villanymotor esetén is választ kapjunk. Használjunk hivatkozásokat, hogy a válasz a naplózott adatok módosításait kövesse. Segédszámításokat az E oszloptól jobbra végezhetünk, melyek értelmezését feliratokkal segítsük.

Beküldendő egy tömörített i500.zip állományban a munkafüzet, valamint egy rövid leírás, amelyben szerepel az alkalmazott táblázatkezelő neve és verziószáma.

Letölthető állomány: naplo.txt.

(10 pont)

megoldás, statisztika


I. 501. (É). A https://trends.google.hu/trends/?geo=HU (utolsó letöltés: 2018. 12. 14.) oldalon 2001-től napjainkig megtalálhatóak az adott évben legnépszerűbb keresések különböző kategóriákban a Google szerint. Feladatunk ezen adatok egy részének feldolgozása adatbázis-kezelő program segítségével.

Az adatok a keresesek.txt és tipusok.txt állományokban állnak rendelkezésünkre. Az állományok tabulátorral tagolt, UTF-8 kódolású szövegfájlok, az első sorok a mezőneveket tartalmazzák.

1. Készítsünk új adatbázist keresesek néven. A mellékelt adatállományokat importáljuk az adatbázisba a fájlnévvel azonos nevű táblákba.

2. Beolvasáskor állítsuk be a megfelelő típusokat és kulcsokat, valamint alakítsuk ki a kapcsolatokat.

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. Határozzuk meg, hogy melyik az az év, amelyikből a legtöbb keresés szerepel az adatbázisban. (3legtobbadat)

4. Írassuk ki azon tv-műsorok nevét, amelyekben szerepel szám. (4tvmusorok)

5. A megadott adatok között több recept is található. Mindegyik megnevezésének végén szerepel a ,,recept'' szó. Készítsünk frissítő lekérdezést, melynek segítségével a nevek végéről a ,,recept'' szót elhagyjuk. A lekérdezést futtassuk is le az adatok módosításához. (5receptek)

6. Általában minden évben 10 elem szokott egy-egy kategóriában felkerülni a listára. Egy év volt, amikor csak 5 került fel. Határozzuk meg a kategóriát és az évet, amikor ez előfordult. (6hiany)

7. Adjuk meg egész számra kerekítve, hogy átlagosan az egyes színházak hányadik helyen végeztek a rangsorban. Jelenítsük meg a színház nevét és az átlagot.(Mivel nem minden színház szerepel minden évben, ezért a kapott eredmények nem összehasonlíthatók egymással.) (7szinhazak)

8. Készítsünk lekérdezést, mely megadja azon magyar személyek vezeték- és keresztnevét (külön mezőben), akik 2015-ben a kategóriájukban felkerültek a listára. Figyeljünk rá, hogy a vezeték- és a keresztnév nagybetűvel kezdődjön. (8nagybetusnevek)

9. Jelenítsük meg minden személy eddigi összes helyezését az évszámmal együtt a helyezések szerinti növekvő sorrendben. (9szemelyek)

10. Az előző lekérdezést felhasználva készítsünk űrlapot, melyen segítjük a személyek születési évének és nemének bevitelét. Figyeljünk rá, hogy a születési évhez csak számot tudjunk beírni. (10bevitel)

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

A feladat forrásai:
https://trends.google.hu/trends/yis/20xy/HU/ (ahol xy a 11-17 számjegyek) és
https://trends.google.hu/trends/yis/20uv/GLOBAL/ (ahol uv a 01-10 számjegyek).

Letölthető állományok: keresesek.txt, tipusok.txt.

(10 pont)


I/S-jelű feladatok

A beküldési határidő 2020. február 10-én LEJÁRT.


I/S. 41. Lapföldén háromféle síkidom él: körök, háromszögek és deltoidok. Egy nap \(\displaystyle K\) darab kör, \(\displaystyle H\) darab háromszög és \(\displaystyle D\) darab deltoid fut egy réten. Ha kettő különböző típusú síkidom futás közben egymáshoz ér, akkor összeolvadnak egy harmadik típusú síkidommá. Az nem lehetséges, hogy kettőnél több síkidom ér össze egyszerre. A nap végén azt látjuk, hogy már csak egy típusú síkidom van a réten. Hányféleképpen fejeződhetett be a nap, ha csak az számít, hogy melyik síkidomból és hány darab van a réten a nap végén?

Standard bemenet: az első sor tartalmazza a \(\displaystyle K\), \(\displaystyle H\) és \(\displaystyle D\) egész számokat ebben a sorrendben.

Standard kimenet: adjunk meg egyetlen számot, a nap végén lehetséges kimenetelek számát.

Példa:

BemenetKimenet
2 2 12

Korlátok: \(\displaystyle 1\le K+H+D\le {10}^{13}\), pozitív egészek. Időkorlát: 0,3 mp.

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

Beküldendő egy is41.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)

statisztika


S-jelű feladatok

A beküldési határidő 2020. február 10-én LEJÁRT.


S. 140. Egy titkosszolgálatnak \(\displaystyle N\) db számítógépe van, melyek közül néhányat kétirányú adatátvitelt biztosító kábelek kötnek össze, melyekből legfeljebb \(\displaystyle M\) db van. Az \(\displaystyle i\)-edik kábelnek öt fontos tulajdonsága van: \(\displaystyle a_{i}\), \(\displaystyle b_{i}\), \(\displaystyle t_{i}\), \(\displaystyle x_{i}\), \(\displaystyle y_{i}\), mely azt jelenti, hogy az \(\displaystyle a_{i}\) és \(\displaystyle b_{i}\) sorszámú számítógépek között egy információcsomag átküldése \(\displaystyle t_{i}\) időbe telik. Hogy biztonságosabbá tegyék a rendszert a hackertámadásokkal szemben, felváltva \(\displaystyle x_{i}\) ideig engedélyezik, majd \(\displaystyle y_{i}\) ideig megtiltják az adatátvitelt az \(\displaystyle i\)-edik kábelen. Kezdetben minden kábelen engedélyezve van az adatátvitel. Két számítógép között csak akkor küldhetünk át egy információcsomagot, ha a küldéstől a megérkezésig minden időpillanatban engedélyezve van az adott kábelen az adatátvitel. A \(\displaystyle K\)-adik számítógépről szeretnénk egy csomagot küldeni a \(\displaystyle V\)-edik számítógépre. Adjuk meg, hogy a csomag leghamarabb mikor érhet oda.

Standard bemenet: az első sor tartalmazza a számítógépek \(\displaystyle N\) számát, a kábelek \(\displaystyle M\) számát, valamint a \(\displaystyle K\) és \(\displaystyle V\) számítógépsorszámokat. Ezután \(\displaystyle M\) sor következik, ahol az \(\displaystyle i\)-edik sor tartalmazza az \(\displaystyle a_{i}\), \(\displaystyle b_{i}\), \(\displaystyle t_{i}\), \(\displaystyle x_{i}\), \(\displaystyle y_{i}\) számokat ebben a sorrendben.

Standard kimenet: adjuk meg, hogy leghamarabb mikor juthat el egy információcsomag a \(\displaystyle K\)-adik számítógépről a \(\displaystyle V\)-edik számítógépre. Ha nem juttatható el az információcsomag, akkor -1-et írjunk ki.

Példa:

Bemenet (a / jel sortörést helyettesíti)Kimenet
3 2 1 3 / 1 2 2 3 3 / 2 3 3 3 39

Korlátok: \(\displaystyle 2\le N\le {10}^{5}\), \(\displaystyle 1\le M\le {10}^{6}\), \(\displaystyle 1\le t_{i}\), \(\displaystyle x_i,y_i\le {10}^{9}\), \(\displaystyle 1\le a_{i}, b_{i}, K, V\le N\). Időkorlát: 0,3 mp.

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

Beküldendő egy s140.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.