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


I. 391. (É). Az Uborkanemesítő Intézet rendkívül büszke az intézet főbejáratához vezető út két oldalát szegélyező uborkafasorra. Az intézet az idén ünnepli alapításának 10. évfordulóját, és az ünnepségsorozatban az uborkafáknak is fontos szerepet szánnak, ezért azok magasságát lemérték és nyilvántartásba vették.

Az uborkafák magasságát a - honlapunkról letölthető - fak.txt nevű, UTF-8 kódolású, tabulátorokkal tagolt szöveges állomány centiméterben megadva tartalmazza, soronként a főbejárattól indulva. (A számozás 1-től indul.) Az első adat mindig a bal, a második a jobb oldali uborkafa magasságát adja. Például:

Ekkor az 1B (első sor bal oldali) uborkafa magassága 4667 cm, míg a 2J (azaz második sor jobb oldali) uborkafa magassága 7647 cm.

Készítsünk programot i391 néven a következő feladatok megoldására. A program futása során a képernyőre való kiíráskor utaljunk a feladat sorszámára.

1. Olvassuk be a fájlból az uborkafák adatait, és írassuk ki a képernyőre a mintának megfelelően, hogy hány uborkafa van az út két oldalán.

2. Mennyi az uborkafák átlagos magassága, és hány ennél magasabb fa van az út bal, illetve jobb oldalán? A válaszokat a mintának megfelelően jelenítsük meg a képernyőn. Az átlagmagasságot két tizedes jegy pontossággal írassuk ki.

3. Az intézet büszkeségének nevezik az uborkafasor legmagasabb fáját/fáit. Keressük meg az intézet büszkeségét/büszkeségeit, és a mintának megfelelően írassuk ki koordinátái(ka)t a képernyőre.

4. Az intézet szégyenének nevezik az olyan uborkafákat, amelyeknek - bár két szomszédjuk is van - ám mindkettőnél kisebbek. Az ilyen fákra a későbbiekben nagyobb gondot fognak fordítani. Írassuk ki az intézet szégyenei közül a legmagasabb(ak) koordinátáit a mintának megfelelően.

5. A tízéves jubileumi ünnepségsorozatban fontos szerepet kap az uborkafasor 10 legmagasabb fája. Írassuk ki ezek koordinátáit a képernyőre a mintának megfelelően. Pontosan 10 fa adata jelenjen meg ,,holtverseny'' esetén is.

Ubulnak, az intézet kismajmának, kedvenc szórakozása, hogy végigszökdécsel az uborkafasor tetején. Ilyenkor mindig a bal első uborkafáról indul, és minden ugrással vagy továbblép az adott oldalon, vagy átugrik az út másik oldalán az azonos sorszámú fára, de sohasem lép vissza oda, ahol már járt.

6. Egy alkalommal Ubul minden ugrásnál a két lehetséges fa közül a magasabbikra ugrik. (Ha a két fa azonos magasságú, akkor az adott oldal következő fáját választja.) Írassuk ki az ubul.txt fájl első sorába, egy-egy szóközzel elválasztva az Ubul által meglátogatott uborkafákat a szökdécselés sorrendjében.

7. Egy másik alkalommal Ubul minden ugrással monoton fölfelé halad, amíg ez lehetséges. Ha már az ,,út'' nem vezet fölfelé, akkor megfordítja az útirányt és monoton lefelé szökdécsel, amíg csak lehetséges, majd megint megfordítja az irányt, és így tovább. Ha mindkét lehetséges fa egyaránt magasabb (vagy egyaránt alacsonyabb, vagy egyaránt konstans), akkor nem ugrik át az út másik oldalára. Írassuk ki Ubul útját egy-egy szóközzel elválasztva az ubul.txt fájl második sorába. A fájl 3. sorába pedig azt írassuk ki, hogy összesen hány cm-t tett meg Ubul felfelé, és hány cm-t lefelé az útja során.

Beküldendő egy tömörített i391.zip állományban a program forráskódja és rövid dokumentációja, amely tartalmazza a megoldás rövid leírását, és megadja, hogy a forrásállomány melyik fejlesztő környezetben fordítható.

Minta:

Letölthető fájl: fak.txt

(10 pont)

megoldás, statisztika


I. 392. Magyar találmányok, technikai alkotások neveinek gyűjteménye és a feltalálók néhány adata áll rendelkezésünkre a talalmanyok.txt - honlapunkról letölthető - állományban. Az állomány tabulátorral tagolt, UTF-8 kódolású szövegfájl, amely a mezőneveket nem tartalmazza.

A tábla oszlopainak jelentése:

Tervezzük meg és készítsük el a feltalálók és a találmányok adatait tartalmazó relációs adatbázist i392 néven.

- Az adatbázis, illetve a táblák szerkezetének megtervezésénél vegyük figyelembe, hogy a feltalálók közül sokan több találmány létrehozásában is részt vettek és a találmányokat általában nem egyedül alkották meg.

- A forrásállományban lévő adatokat a belső összefüggéseknek megfelelően rendezzük több táblába, megfelelő mezőnevek és típusok beállításával együtt.

- A táblákban hozzunk létre kulcsokat, és tervezzük meg az egyedek közötti kapcsolatokat.

- A forrásadatokat bővítsük egy új mezővel, amelyben logikai értékkel adjuk meg, hogy a találmány az elektromosság vagy elektronika területén hozott-e újdonságot. (Például a transzformátor esetén igaz, de az atomerőmű hamis értékű, hiszen az ugyan az elektromos energiához kapcsolódik, de a találmány újdonsága nem az elektronika területén van.) Adjuk meg a mező értékét minden rekordra.

Készítsük el a következő feladatok megoldásait is. A lekérdezéseket a zárójelben lévő néven mentsük el.

Listázzuk ki azokat a feltalálókat, akiknek:

1. 5-nél több találmányuk volt (1otneltobb);

2. a találmányait kizárólag egyedül, önállóan ők alkották meg (2egyedul);

3. az elektronika területéhez tartozó és azon kívüli találmányuk is volt (3tobb);

4. Kandó Kálmánnal közös találmányaik voltak. A feltalálók és a találmányok nevét listázzuk ki (4kando);

5. a vezetékneve szerepel részletként a találmány nevében. A feltalálók teljes nevét és a találmányok nevét jelenítsük meg (5nevado).

Soroljuk fel azokat a találmányokat,

6. amelyeket ugyanaz a feltaláló alkotott, mint aki a csillagmotort (6csillag);

7. amelyeket a legidősebb adatbázisban szereplő feltaláló alkotott (7régi);

8. amelyeknek a feltalálója nincs megadva az adatbázisban, mert vagy nem ismert, vagy olyan sok szerzős (8nevtelen).

Beküldendő egy i392.zip tömörített állományban az adatbázis (i392.odb, i392.accdb, i392.sql), valamint az adattáblák tabulátorral tagolt szövegállományokban.

Letölthető fájl: talalmanyok.txt

(10 pont)

megoldás, statisztika


I. 393. A GeoGebra program széles körben használható matematikai fogalmak, függvény-transzformációk, geometriai szerkesztések stb. szemléltetésére. Egy látványos felhasználása lehet például a szögfüggvények ábrázolása, ahol a forgó egységvektor megfelelő koordinátáiból alakul ki a függvény.

Készítsünk GeoGebra munkalapot a tangens függvény származtatásának szemléltetésére a függvény definíciója alapján az alábbiak szerint:

A munkalapon jelenjen meg egy kör és egy koordináta-rendszer úgy, hogy a koordináta-rendszer \(\displaystyle x\) tengelyének egyenese menjen át a kör középpontján, a koordináta-rendszerben pedig az egység a kör sugara legyen.

Mint az ábráról leolvasható, a szög tangensét az egységvektor egyenesének meghosszabbítása metszi ki a kör \(\displaystyle P\) pontjába állított érintőből (lásd az ábrát). A körben forogjon körbe az \(\displaystyle \mathbf{e}\) egységvektor, és a szögértékek egyenletes változása mellett a szöghöz tartozó tangens értéket szemléltető szakasz (lehetőleg animációval) ússzon át az érintőről a koordináta-rendszerbe a szögnek megfelelő \(\displaystyle x\) értékhez.

A koordináta-rendszerben a fenti lépések alapján folyamatosan bővülve jelenjen meg a tangens függvény grafikonja. A felhasználónak adjunk lehetőséget arra, hogy csúszka segítségével beállíthassa a mintavételezés szögét (sűrűségét).

A megjelenő ábrának legalább a \(\displaystyle \left]-\pi/2, 3\pi/2\right[\) intervallumot tartalmaznia kell.

Beküldendő egy i393.zip tömörített állományban a GeoGebra munkalap és dokumentációja, amely tartalmazza a megoldás rövid leírását.

(10 pont)

megoldás, statisztika


I/S-jelű feladatok

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


I/S. 5. Adott (\(\displaystyle 1 \le N \le 1\;000\;000\)) db, kezdetben üres doboz, ahol \(\displaystyle N\) páratlan egész. Egy lépésben néhány szomszédos dobozba beleteszünk egy-egy kavicsot. Adott (\(\displaystyle 1 \le K \le 25\;000\)) db lépés, mindegyik lépés leírása két számot tartalmaz: \(\displaystyle x\), \(\displaystyle y\) (\(\displaystyle x\le y\)). Ennek jelentése: az \(\displaystyle x\). doboztól az \(\displaystyle y\). dobozig minden dobozba teszünk még egy kavicsot. Ezek után az \(\displaystyle N\) doboz kavicsai számának mediánjára vagyunk kíváncsiak. Valahány páratlan szám mediánja a növekvő sorrendbe rendezett számsorból a középső elem.

A program olvassa be a standard input első sorából \(\displaystyle N\)-et és \(\displaystyle K\)-t, majd a következő \(\displaystyle K\) sorból az \(\displaystyle x\), \(\displaystyle y\) számpárokat, és írja a standard output első és egyetlen sorába a medián értékét a végállapotban.

Példa bemenet (a / jelentése újsor karakter): Példa kimenet:
7 4 / 5 5 / 2 4 / 4 6 / 3 5 1

A példában a lépések után a dobozok kavicsainak száma sorrendben: 0, 0, 1, 1, 2, 3, 3, a középső elem az 1.

Pontozás és korlátok: A programhoz mellékelt, a helyes megoldás elvét tömören, de érthetően leíró dokumentáció 1 pontot ér. A programra akkor kapható meg a további 9 pont, ha bármilyen hibátlan bemenetet képes megoldani az 1 mp futásidőkorláton belül.

Beküldendő egy tömörített is5.zip állományban a program forráskódja valamint a program rövid dokumentációja, amely a fentieken túl megadja, hogy a forrás mely fejlesztői környezetben fordítható.

(10 pont)

megoldás, statisztika


S-jelű feladatok

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


S. 104. A hármas számrendszer világában csak három számjegyet ismernek: 0, 1 és 2. Az ott élők nagyon szeretik a szép számokat. Ismernek \(\displaystyle N\le 20\) darab alapvető nagyon szép számot. Egy hosszabb szám szépségét úgy vizsgálják meg, hogy kiszámolják, összesen hány alapvető szép szám található meg benne. Tehát ha \(\displaystyle N = 3\), és a három alapvető szép szám a 010, 21 és a 01021, akkor a 01021 szám szépsége 3 pont, hiszen megtalálható benne a 010, a 21 és a 01021 is, mint összefüggő részsorozat. Ismert továbbá, hogy minden alapvető szám legfeljebb 15 db számjegyből áll. Ha a számban több helyen is megjelenik ugyanaz az alapvető részszám, az természetesen többször is beleszámít a pontszámba. Felmerült a kérdés, hogy melyik az a \(\displaystyle K\le 1000\) számjegyből álló szám, ami a legeslegszebb, azaz a legtöbb pontot kapja a fenti módszerrel. Nekünk csak azt kell megmondani, hogy ez a legszebb szám mennyire szép, hány pontot kap.

A program olvassa be a standard input első sorából \(\displaystyle N\)-et és \(\displaystyle K\)-t, majd a következő \(\displaystyle N\) sorból az \(\displaystyle a_i\) szóközzel elválasztott alapvetően szép számokat, és írja a standard output első és egyetlen sorába a legeslegszebb szám pontszámát.

Példa bemenet (a / jelentése újsor karakter): Példa kimenet:
3 7 / 010 / 21 / 01021 4

Pontozás és korlátok: A programhoz mellékelt, a helyes megoldás elvét tömören, de érthetően leíró dokumentáció 1 pontot ér. A programra akkor kapható meg a további 9 pont, ha bármilyen hibátlan bemenetet képes megoldani az 1 mp futásidőkorláton belül.

Beküldendő egy tömörített s104.zip állományban a program forráskódja, valamint a program rövid dokumentációja, amely a fentieken túl megadja, hogy a forrás mely fejlesztői környezetben fordítható.

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