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. 248. feladat (2010. október)

I. 248. Egy N×N képpontból (N\le100) álló fekete-fehér képen egyetlen folytonos fekete vonal van. A vonal úgynevezett lánckódját ismerjük és feladatunk ebből a képet előállítani.

A lánckód a kezdőpont koordinátáiból és a vonal körüljárása során kapott iránykódsorozatból áll. A kezdőpont a vonal egy tetszőleges végpontja. Az iránykódokat úgy állították elő, hogy a kezdőponttól indulva haladtak a vonalon annak másik végéig, és közben minden lépésben feljegyezték a lépés irányát. Egy-egy pontból 8 irányba lehet lépni, ezeket az ábrán látható számokkal kódoljuk.

Táblázatkezelő program segítségével egy vonal lánckódja alapján állítsuk elő a képét.

Készítsünk egy ,,Be'' nevű munkalapot, amelyen a következőket helyezzük el:

-- a kezdőpont koordinátáit

-- az iránykódokat, amelyeket egymás alá lehessen beírni

-- a segédtáblázatokat és számításokat, amelyek a kép előállításához szükségesek. A számításoknál vegyük figyelembe a kép lehetséges maximális méretét.

Készítsünk egy ,,Ki'' nevű munkalapot, amelyen a képet jelenítjük meg. Az oszlopok szélességét és a sorok magasságát állítsuk be úgy, hogy a cellák négyzet alakúak és láthatóak legyenek a képernyőn. A vonal pontjait tartalmazó cellákat tetszőleges karakterrel jelöljük meg. Ezek felhasználásával jelenítsük meg a képet a mintának megfelelő formátumban.

A megoldás során ne használjunk makrót vagy programmodult, kizárólag képleteket és beépített függvényeket. A felhasznált részletszámítások látszódjanak és semmilyen módon ne rejtsük el azokat.

Példa a munkalapokra:

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

(10 pont)

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


Megoldásokról

A táblázatkezelési feladat nem jelentet nehézséget a versenyzőknek. Tartalmilag mindenki jó megoldást küldött be. Sajnos a formai elvárásoknak viszont kevesen feleltek meg. A munkalapokat át kellett volna nevezni Be és Ki-re, valamint a megoldások elvét néhány mondatban kértük. Ez több versenyzőnél elmaradt.

Mintamegoldásként Gema Barnabás 10. osztályos (Veszprém, Lovassy László Gimnázium) tanuló munkáját közöljük: i248.xls

A kezdőpont koordinátái a C1 és D1 cellákba, a lánckódok pedig a B2:B12000 cellatartományba írhatjuk. A táblázat először a C és D oszlopokba, a lánckódok mellé kiszámolja a pontok koordinátáit, majd az E oszlopban összefűzi egy cellában a kettőt vesszővel elválasztva. Ezt a koordinátát kell visszakeresni egy képpont megjelenítéséhez.

Ha a bevitt adatok valamiért nem megfelelőek, akkor az A3-mas cellában figyelmeztetés jelenik meg. Hibás a bevitt adat, ha egy képpont átlépné a kép határát, vagy a lánckódok közé nem megfelelő érték kerül. A kép készítése a hibás sornál leáll. Az A4-es cellában megjelenik a megadott kódok száma. Ezt a megjelenítésnél figyelembe kell venni. A cellatartományok hivatkozási címeit az A5 és az A6 cellákba generáljuk.

Az E1:E12000 cellatartományban keressük a pontok koordinátáit. A szükséges erőforrások minimalizálásának érdekében mindig csak abban a tartományban keresünk, ahol még vannak koordináták. Ezért van szükség az A4, az A5 és az A6 cellákban lévő adatokra. Az INDEX és a HOL.VAN függvények egymásba ágyazásával kapott kereső függvény hibát jelez, ha nem találja meg a keresett cellát, ezért szükség volt egy másik függvényre is. Ez megállapítja, hogy a keresőfüggvény jelez-e hibát. Ha igen, akkor nem jelenít meg semmi, Ha nem, akkor kitölti a képpontot egy n betűvel.

A kép először csak a Be munkalapon jelenik meg, ezt másolja át a táblázat a Ki munkalapra, ahol már megfelelő méretben jelenik meg.


Statisztika:

8 dolgozat érkezett.
10 pontot kapott:Barta 111 János, Gema Barnabás, Szabó 928 Attila.
9 pontot kapott:Kalló Kristóf, Kovács Kornél, Leitereg András, Nánási József, Paróczi Gergő.

A KöMaL 2010. októberi informatika feladatai