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 2009. márciusi 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ő 2009. április 15-én LEJÁRT.


I. 208. Készítsünk XML formátumú versválogatást legalább két költő verseinek felhasználásával. A jólformázott dokumentum költőnként legalább két, több versszakos versből álljon. Az elkészítés során a következő tag-eket használjuk: valogatas, kolto, koltonev, koltoszulev, koltoszulhely, vers, verscim, versszak, verssor, versev.

A válogatást böngészőprogrammal jelenítjük meg. Az esztétikus megjelenítéshez készítsünk CSS stíluslapot. A formázást úgy alakítsuk ki, hogy a dokumentum tartalmi egységei jól elkülönüljenek egymástól. A képen látható mintát segítségnek szánjuk, de nem cél annak lemásolása.

Versek elektronikus formában a http://mek.oszk.hu/ lapról is letölthetők.

Beküldendő a válogatást tartalmazó dokumentum (i208.xml) és a formát leíró stíluslap (i208.css).

(10 pont)

megoldás, statisztika


I. 209. Készítsük el a ,,MasterMind'' játék táblázatkezelő programmal játszható változatát. A játékról részletesen olvashatunk a

http://egyszervolt.hu/jatek/mastermind.html

oldalon, és ugyanitt ki is próbálhatjuk.

Megoldásunkban a játéktér az ábrán látható szerkezetű legyen, színek helyett az ábécé első hat betűjét használjuk. A játékot két játékos játssza: az egyikük a kigondolt betűsorozatot a 2. sor első 4 cellájába írja, a másik játékos pedig a 4. sortól kezdődően tippelhet.

A tipp helyességét az adott sor E és F oszlopa mutassa. Az E oszlopban azon karakterek száma jelenjen meg, amelyek az adott tipp és a rejtett értékek sorában is ugyanabban az oszlopban vannak. Az F oszlopban pedig az, hogy hány cellában szerepel olyan karakter, ami megtalálható a rejtett listában, de nincs a helyén. A helyes tipp más háttérrel és félkövér karakterekkel jelenjen meg, a tippek számára pontosan 20 sornyi helyet készítsünk elő.

Az élvezetes játék érdekében figyeljünk továbbá arra, hogy az A2:D2 cellák tartalma - helyes bejegyzés esetén - ne legyen látható. (Az elrejtés például a háttérrel egyező szövegszínnel biztosítható.) Az E és az F oszlopokban az értékelés pedig csak akkor jelenjen meg, ha a második játékos formailag helyes tippet adott, azaz mind a 4 cellába beírta a felhasználható karakterek egyikét.

Beküldendő a táblázatkezelő munkafüzet (i209.xls, i209.ods, ...), illetve egy rövid dokumentáció (i209.txt, i209.pdf, ...) amelyben szerepel a megoldáskor alkalmazott táblázatkezelő neve, verziója, valamint a megoldás rövid leírása.

(10 pont)

megoldás, statisztika


I. 210. Egy szövegben egy szövegrészlet (minta) első előfordulásának megkeresésére kézenfekvő, bár lassú módszer az úgynevezett lineáris keresés: A keresendő minta első karakterét rendre a szöveg 1., 2., ...karakteréhez illesztjük, azaz a mintát végigléptetjük balról jobbra a szöveg felett mindaddig, amíg egy olyan illesztéshez nem jutunk, melynél a minta minden karaktere megegyezik a szöveg megfelelő karakterével.

Ha az ábécé a minta hosszához képest viszonylag számos, akkor jelentős gyorsulást érhetünk el a következő módszerrel: a keresendő mintát és a szöveget ismét csak balról jobbra hasonlítjuk össze, de ha az összehasonlítás közben különbséget találunk, akkor nem csak egy karakterrel léptetjük tovább (jobbra) a mintát, hanem a szöveg minta utáni első karakterétől függően akár többel is.

Ha ugyanis a szöveg minta utáni első karaktere egyáltalán nem fordul elő a mintában, akkor az összehasonlítást (mintaillesztést) biztosan elegendő az ez utáni karaktertől kezdődően folytatni.

Ha pedig a szöveg minta utáni első karaktere előfordul a mintában, akkor a minta eltolása az ábrán látható módon jobbról az első előfordulás illesztésével történik.

A végrehajtást gyorsítja, hogy a minta eltolása minden szövegben előforduló karakterre előre kiszámítható.

Írjunk programot, amely a parancssori argumentumban megadott szövegállományban megkeresi a billentyűzetről begépelt, legfeljebb 255 karakter hosszú szövegrészlet első előfordulását, és az azt tartalmazó mondatot a képernyőn megjeleníti. A mondat az előfordulást megelőző mondatvégi írásjel (,,.!?'' vagy fájlkezdete) utáni első nem szóköz karakterrel kezdődjön, és az előfordulás utáni első mondatvégi írásjellel vagy fájlvége jelnél fejeződjön be. A keresés során a kis- és nagybetűket ne különböztessük meg.

Beküldendő a program forráskódja (i210.pas, i210.cpp, ...), valamint a program rövid dokumentációja (i210.txt, i210.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ő 2009. április 15-én LEJÁRT.


S. 43. Egy téglalap alaprajzú labirintus folyosói és falai egységnyi vastagságúak. A labirintusba egy bejárat van valamelyik oldalon, ahonnan a labirintus bármely pontjába el lehet jutni. A folyosók és a falak a labirintus oldalfalaival párhuzamosan haladnak, előfordulhat, hogy egy pontból egy másikba több út is vezet.

A labirintust szeretnénk úgy megvilágítani, hogy mindegyik részébe jusson fény valamelyik lámpából. A labirintus folyosóinak mennyezetére elhelyezett lámpák az elhelyezési ponthoz csatlakozó (egyenes) folyosószakaszokat azok teljes hosszában megvilágítják. A kérdés csupán az, hogy hová helyezzük el a lámpákat, hogy a lehető legkevesebb lámpával megoldjuk a teljes megvilágítást.

A kérdésre választ adó program az első parancssori argumentumaként megadott szöveges állományból olvassa be a labirintus alaprajzát, és a második argumentumaként megadott szöveges állományba írja ki a megoldást. A bemeneti állomány legfeljebb 100 sorában soronként azonos számú, legföljebb 100 darab ,,0'' vagy ,,1'' szerepel egymás mellett: a ,,0'' a folyosót, az ,,1'' pedig a falat jelöli a labirintus négyzethálós térképén. A kimeneti állományban a bemeneti állományhoz hasonlóan jelöljük a falakat és folyosókat, valamint egy-egy ,,X'' szerepeljen minden lámpa helyén. A képernyőre írjuk ki a szükséges lámpák számát. Az értékelésnél figyelembe vesszük a programok futási sebességét kisebb-nagyobb labirintusokra, illetve részpontszámot adunk az egyes esetekben az optimálisnál több lámpát felhasználó megoldásokra is.

Beküldendő a program forráskódja (s43.pas, s43.cpp, ...), valamint a program rövid dokumentációja (s43.txt, s43.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


Figyelem!

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