Az I. 248. feladat (2010. október) |
I. 248. Egy N×N képpontból (N100) á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