Középiskolai Matematikai és Fizikai Lapok
Informatika rovattal
Kiadja a MATFUND Alapítvány
Már regisztráltál?
Új vendég vagy?

Az I. 244. feladat (2010. szeptember)

I. 244. Geometrikus elemekből álló és kevés színt tartalmazó ábrákat tömörítve tárolunk. Minden egyes sorról csak azt tartalmazza a tömörített állomány, hogy mi változott az előző sorhoz képest. Ha egy sor megegyezik az előzővel, akkor a tömörített állományban erről nem szerepel bejegyzés.

A honlapunkról letölthető zaszlo5.be állomány első sorában a kép sorainak száma, N (1\leN\le100) és oszlopainak száma, M (1\leM\le100) van. A következő sorok a kódolt képet tartalmazzák, soronként és azon belül oszloponként növekvő sorrendben. Az első szám a tömörítetlen kép megfelelő sorát jelenti, a második és a harmadik szám kezdő és végpozíciót, amelyen belül a negyedik nagybetű szerepel.

Például:

Készítsünk programot i244 néven, amely az alábbi problémákat oldja meg, a parancssor első argumentumaként megadott zaszloX.be állományban talált adatok felhasználásával.

Minden részfeladat megoldása előtt írja a képernyőre a feladat sorszámát (például 3. feladat: ).

1.] Olvassuk be és megfelelő adatszerkezetben tároljuk el a bemeneti adatállomány tartalmát.

[2.] Állítsuk elő és írjuk ki a képernyőre a tömörítetlen ábrát. A betűk között egy-egy szóköz legyen.

[3.] Írjuk ki, hogy melyik színből (betűből) hány darab van az ábrán.

[4.] A parancssor második argumentumaként megadott kimeneti zaszloX.ki állományba másik tömörítési módszerrel mentsük el az ábra kódját. Az N soros ábra tömörített állománya N sorból álljon. Minden sorban szóközzel elválasztva egy-egy színt megadó nagybetű és az egymás utáni ismétlődések száma következik.

Például a fenti dán zászló tömörítve:

[5.] A program kérje be az ábra egy pontjának koordinátáját és írja ki annak a színét és azt, hogy mekkora azonos színű összefüggő területhez tartozik. A színezés csak oldalszomszédos egyezőség esetén összefüggő.

[6.] Jelenítsük meg a képernyőn kétszeres méretben az ábrát, azaz az eredeti ábra minden pontjának, betűjének vízszintesen és függőlegesen is két-két betű feleljen meg.

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ó (i244.txt, i244.pdf, ...) egy tömörített mappában (i244.zip).

(A 2009. évi programozás OKTV 2. fordulójának feladat ötlete alapján)

(10 pont)

A beküldési határidő 2010. október 11-én LEJÁRT.


Megoldásokról

Összesen 15 megoldás érkezett a feladatra. Tartalmi és formai szempontból összesen három megoldás volt 100%-os. Néhány tipikusan előforduló hiányosság:

A be- és kimeneti állományok nevét a parancssor argumentumaként kellett volna megadni. Ezt többen nem így oldották meg. A megoldásokat több teszt bemeneti állománnyal próbáljuk ki. A javítást, a vizsgálatot nehezíti, ha minden futtatáskor be kell írni 1-2 állománynevet.

A program rövid dokumentációja is teljesen hiányzott néhány versenyzőnél, pedig a feladat külön felhívta erre a figyelmet. Fontosnak gondoljuk, hogy a megoldások elvét, algoritmusát megértsük, illetve a programok fordítási környezetét is illik megadni.

Az 5. részfeladat megoldása több versenyzőnél hiányzott. Ez nem véletlen, hiszen ehhez kellett a legtöbb ötlet. Megoldást jelenthet, ha a zárt görbék kifestéséhez hasonló rekurzív eljárást készítünk az azonos értékű tömbelemek számának meghatározásához.

Mintamegoldás zaszlo.dpr

Teszteléshez be- és kimeneti állományok: i244beki.zip


Statisztika:

15 dolgozat érkezett.
10 pontot kapott:Hoffmann Áron, Nagy 111 Miklós, Szabó 928 Attila.
9 pontot kapott:Barta 111 János, Gema Barnabás, Nagy 319 Vendel, Papp Gergely.
8 pontot kapott:1 versenyző.
7 pontot kapott:3 versenyző.
6 pontot kapott:1 versenyző.
5 pontot kapott:2 versenyző.
4 pontot kapott:1 versenyző.

A KöMaL 2010. szeptemberi informatika feladatai