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 2010. májusi 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ő 2010. június 10-én LEJÁRT.


I. 241. Telefonos vetélkedőkben gyakran előfordul, hogy a játékosoknak egy betűtáblában kell megkeresnie egy vagy több karaktersorozatot. A szabályok egyszerűek: egy szó egymást követő karakterterei élükkel szomszédosak a táblában, valamint egy adott cellában található karaktert nem szabad egy szón belül többször felhasználni.

A megoldást adó programnak a parancssor első argumentumaként megadott nevű állományban található karaktertáblázatban kell a keresést végrehajtani. Az állomány első sora a táblázat méretét (sor, oszlop) tartalmazza szóközzel elválasztva, a további sorok pedig a karaktereket, egymástól egy-egy szóközzel elválasztva. A sorok és oszlopok száma legfeljebb 10, a karakterek az angol ábécé kisbetűi.

A keresendő szavak listája a parancssor második argumentumaként megadott nevű állományban található. Az első sorban a karaktersorozatok száma, a továbbiakban pedig soronként egy-egy, legfeljebb 30 karakter hosszú karaktersorozat helyezkedik el. A szavak száma legfeljebb 20, minden karaktersorozat az angol ábécé kisbetűiből áll.

A programnak a parancssor harmadik argumentumaként megadott nevű állományt kell előállítania. A fájlba a szólista állományban foglaltak sorrendjében kell kiírni a karaktersorozatot, majd alá a hozzá tartozó tábla tartalmát. A táblában a megtalált karaktersorozatot csupa nagybetűvel kell megjeleníteni. Ha több helyen is megtalálható a karaktersorozat, akkor azok közül pontosan egyet kell megadni, mindegy, hogy melyiket. Az egyes megoldásokat pontosan egy üres sor válassza el.

Beküldendő a feladat megoldását tartalmazó forrás és projektállományok (az .exe és más a fordító által generált kiegészítő állományok nélkül), valamint a megoldás menetét röviden bemutató dokumentáció (i241.txt, i241.pdf, ...) egy tömörített mappában (i241.zip).

Egyszerű minta a fájlokra:

tablazat.txt

     5 7

     z v c a e l c

     a a s c y x d

     k k a l c l l

     d o m a t e k

     l w a q w l w

szavak.txt

     2

     matek

     komal

eredmeny.txt

     matek

     z v c a e l c

     a a s c y x d

     k k a l c l l

     d o M A T E K

     l w a q w l w

     komal

     z v c a e l c

     a a s c y x d

     k K A L c l l

     d O M a t e k

     l w a q w l w

(10 pont)

megoldás, statisztika


I. 242. A 185 éve alakult Magyar Tudományos Akadémia tagjairól kellett adattáblát készíteni az I. 237. feladatban. Az adattáblák további feldolgozása után a tudományos társaság 2007. évi tagjainak névsora és néhány adata állnak rendelkezésünkre a szemely.txt, a kapcsolo.txt és a foglalkozas.txt állományokban. 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 mta néven. A mellékelt adatállományokat importáljuk az adatbázisba a fájlnévvel azonos szemely, kapcsolo és foglalkozas néven.

[2.] Beolvasáskor állítsuk be a megfelelő adatformátumokat és kulcsokat. A táblákba ne vegyünk fel új mezőt.

Táblák

szemely (id, nev, szul, nemzetiseg, tipus, mettol)

id Az Akadémia tagjának azonosítója (szám), ez a kulcs;
nev Az akadémikus neve (szöveg);
szul Az akadémikus születési éve (szám);
nemzetiseg Az akadémikus nemzetisége -- összetett is lehet (szöveg);
tipus A tagság típusa -- külső, tiszteleti, levelező, rendes (szöveg);
mettol Az utolsó tagsági típus kezdetének éve (szám);

kapcsolo (szemely_id, foglalkozas_id)

szemely_id A személy azonosítója (szám), kulcs;
foglalkozas_id A foglalkozás azonosítója (szám), kulcs;

foglalkozas (id, nev)

id A foglalkozás azonosítója (szám), ez a kulcs;
nev A foglalkozás neve (szöveg).

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

[3.] Soroljuk fel ábécérendben, lekérdezés segítségével az Akadémia matematikus tagjainak nevét és nemzetiségét. (3matematikusok)

[4.] Készítsünk lekérdezést, amely tagság-típusonként megszámolja, hogy hány tagja van az Akadémiának. (4tipusdb)

[5.] Soroljuk fel a választás száma szerint csökkenő sorrendben, hogy az egyes foglalkozásokat hány akadémikus tekinti szakmájának. (5szakmadb)

[6.] Lekérdezés segítségével adjuk meg, hogy ki a legfiatalabb rendes tag és mennyi idős a lekérdezés futtatásának pillanatában. (6fiatal)

[7.] Készítsünk lekérdezést, amely meghatározza, hogy ki lett legfiatalabb korában rendes tag, mennyi idősen, és mi a szakmája. (7koran)

[8.] Adjuk meg lekérdezés segítségével, hogy a geológus akadémikusoknak milyen más foglalkozásuk van. A listában minden foglalkozás neve csak egyszer jelenjen meg. (8geo)

[9.] Soroljuk fel azokat, akik Csányi Vilmossal azonos foglalkozásúak. (9csanyi)

[10.] A magyarországi tudósoknál a nemzetiség megjelölés üresen maradt. Lekérdezés segítségével ezekbe a mezőkbe írjuk a magyar szót. (10magyar)

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

(10 pont)

megoldás, statisztika


I. 243. Az optikai csalódások a látási folyamat részeinek tévedéseiből jönnek létre, amikor az agy olyan jeleket kap a látóidegektől, amelyek számára ellentmondóak. Egyik példája a Münsterberg által leírt jelenség. A párhuzamos fekete-fehér négyzetek alsó és felső élei egymáshoz képest elhajlani és a szélek felé összetartani látszanak.

Készítsünk programot, amely elkészíti paraméterek beolvasása után az ábrát egy SVG típusú vektorgrafikus képállományba. A legtöbb internetböngésző az SVG állományt képes megfelelően megjeleníteni. Az SVG állomány szerkezetéről a http://svg.elte.hu/ címen olvashatunk.

A program kérje be a következő paramétereket:

[--] \(\displaystyle N\)-et, az ábrán a vízszintes és függőleges fekete négyzetek számát (\(\displaystyle 3\le N\le 50)\);

[--] OLDAL-t, az elemi négyzetek oldalhosszát (\(\displaystyle 5\le \mbox{OLDAL} \le 50)\);

[--] VV-t, a vízszintes elválasztó vonalak vastagságát (\(\displaystyle 0\le \mbox{VV}\le \mbox{OLDAL}\)) és

[--] FAJLNEV-et, a képállomány nevét.

Példa bemenet az ábrához
\(\displaystyle N = 8\)
\(\displaystyle \mbox{OLDAL} = 30\)
\(\displaystyle \mbox{VV} = 2\)
\(\displaystyle \mbox{FAJLNEV} = \mbox{'optika.svg'}\)

Megfigyelhető, hogy az illúzió akkor erősebb, ha a négyzetek árnyalata erősen eltérő és a köztük lévő elválasztó csík színe pedig a két négyzet színe közé esik.

Beküldendő egy tömörített i243.zip állományban a program forráskódja (i243.pas, i243.cpp, ...), valamint a program rövid dokumentációja (i243.txt, i243.pdf, ...), 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ó.

(10 pont)

megoldás, statisztika


S-jelű feladatok

A beküldési határidő 2010. június 10-én LEJÁRT.


S. 54. A grafilogika rejtvény egy téglalap alakú négyzetrácsos hálóból áll, amelynek az egyik vízszintes, és az egyik függőleges oldala mellett számok állnak, amelyek azt jelzik, hogy az adott sorban, vagy oszlopban mekkora méretű sötét blokkok követik egymást. Minden beszínezett blokkot tetszőleges számú (legalább egy) üres hely választ el egymástól. A játék célja, hogy eldöntsük minden négyzetrácsról, hogy be van-e színezve, vagy nem.

Forrás: http://hu.wikipedia.org/wiki/Grafilogika

Az alábbi példában a 8-as számjegy kitalálása a cél.

A bemenet szerkezete a következő: az első sorban két szám, a kép sorainak (s\le25) és oszlopainak (o\le25) száma található. A következő s sor mindegyike egy-egy sort ír le, amelyben a sor sötét blokkjainak hossza szerepel, az azt követő o sorban pedig az adott oszlop sötét blokkjainak hossza olvasható. A bemeneti fájl soraiban az adatokat pontosan egy szóköz választja el egymástól.

Készítsünk programot, amely a standard bemenetről beolvassa a rejtvény leírását, majd a standard kimenetre írja a képet s sorban és o oszlopban. A sötét elem helyére az ,,X'' karaktert, a többi helyre pedig a ,,.'' (pont) karaktert írjuk.

Beküldendő a program (s54.pas, s54.cpp, ...), egy teszteset (s54.be), amelyet a többi versenyző értékelésekor is használunk, valamint a dokumentáció (s54.txt, s54.pdf, ...).

Értékelés:

Maximum 6 pontot szerezhető az általunk adott teszteseteket időlimiten belül helyesen megoldó programmal. (Időlimit tesztesetenként 1 perc, a gép processzora Core2Duo, 2 GHz, 2 GB memóriával.)

A dokumentáció és a beküldött teszteset 2 pontot ér.

Még 2 pontot szerez az, akinek a programja időlimiten belül a legtöbb -- többi versenyző által beküldött -- tesztesetet megold. Egyezés esetén a megoldott tesztesetek időigényének összege rangsorol. A győztesen kívül 1 plusz pontot szerez, aki a fenti rangsorban a mezőny első felében végez.

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