Az I. 380. feladat (2015. szeptember) |
I. 380. Táblázatkezelő programokkal viszonylag könnyű meghatározni, hogy egy adott dátum milyen napra esik. Sajnos ezek a programok az 1900. január 1. előtti dátumokat nem kezelik. Ezekben az esetekben a ,,számítógép előtti idők'' hagyományos módszerét alkalmazhatjuk, amely három segédtáblából áll. Az első segédtábla az évhez rendel egy indexszámot, a második az így kapott indexszámhoz és a hónap sorszámához ad egy kulcsszámot. Végül az így kapott kulcsszám és a nap sorszámának összegéből a harmadik tábla adja meg a nap nevét.
Példánkban 1848. március 15-ét keressük. Az 1848-hoz tartozó indexszám 45, a 45-höz és a márciushoz tartozó kulcsszám pedig 2. Végül \(\displaystyle 2+15\) összegét visszakeresve szerdát kapunk.
Ebben a feladatban a segédtáblák birtokában kell elkészítenünk egy táblázatkezelő munkalapját úgy, hogy az meghatározza, milyen napra esett egy adott dátum. A segédtáblákat a tablak.txt UTF kódolású, tabulátorokkal tagolt állomány tartalmazza.
1. Töltsük be a táblázatkezelő program egyik munkalapjára az A1 cellától kezdve a tablak.txt adatfájlt, majd mentsük a munkafüzetet oroknaptar néven a program alapértelmezett formátumában.
2. Első feladatunk az év indexszámának meghatározása, amit két lépésben fogunk elvégezni. Első lépésben képlet segítségével jelenítsük meg a 36. sor celláiban, hogy a C2 cellában megadott év a B5:T35 segédtábla adott oszlopában hányadik sorban szerepel. Ha az adott oszlopban nem szerepel az évszám, úgy a 36. sor megfelelő cellájában 0-t jelenítsünk meg.
3. Második lépésben függvény segítségével jelenítsük meg a C1 cellában lévő év indexszámát a C2 cellában. Az indexszámot az A5:A35 tartományban találjuk, sorszámát a 36. sor 0-tól különböző eleme adja meg.
4. Következő feladatunk a kulcsszám meghatározása az E2 cellában. A kulcsszám az előzőekben meghatározott indexszámtól és a hónap E1 cellában megadott sorszámától függ. A kulcsszámot az A39:M53 segédtáblából kell függvény alkalmazásával visszakeresnünk, a segédtábla oszlopait a hónapok azonosítják (B39:M39), sorait pedig az indexszámok (A40:A53).
5. A nap visszakereséséhez határozzuk meg képlettel a G2 cellában a kapott kulcsszám (E2) és a nap sorszámának (G1) összegét.
6. Utolsó lépésként meghatározzuk az adott nap elnevezését. Ehhez keressük meg képlet alkalmazásával az A57:G63 segédtáblában a G2 cellában kapott összeget, és írassuk az I2 cellába a szám sorában, az utolsó oszlopban található nap nevét.
7. Mindhárom segédtábla (A5:T35, A39:M53, A57:G63) celláit határoljuk belül vékony, kívül vastag vonallal. A megadott dátumhoz tartozó három cella, valamint a nap elnevezését tartalmazó cella tartalma legyen félkövér, háttere pedig halványszürke.
8. Feltételes formázás alkalmazásával emeljük ki félkövér, sötétvörös színnel:
\(\displaystyle a)\) a B5:T39 segédtáblából a C1 cellában szereplő évszámot,
\(\displaystyle b)\) a B39:M39 oszlopfejlécből az E2 cellában szereplő hónapot,
\(\displaystyle c)\) az A40:A53 sorfejlécből az C2 cellában szereplő indexszámot, és
\(\displaystyle d)\) a A57:F63 segédtáblából a G2 cellában szereplő számértéket.
Letölthető fájl: tablak.txt.
Minta:
Beküldendő egy tömörített i380.zip állományban a megoldást tartalmazó munkafüzet és a megoldás rövid leírását bemutató dokumentáció.
(10 pont)
A beküldési határidő 2015. október 12-én LEJÁRT.
Megoldásokról:
A feladat az I2 cellába kerülő képlet kivételével viszonylag sok segítseget adott. Ennek ellenére a megoldásokban a klasszikus INDEX-HOL.VAN, illetve FKERES mellett extrémebb ötletek is megjelentek, pl. az INDIREKT-CÍM függvénypárosítás is. Az I2 cellába kerülő képletre sok érdekes megoldás született. A legegyszerőbb a G2-es cella 7-es maradékának vizsgálata, de használható volt az indexszám meghatározásánál (C2-es cella) használt módszer, néhányan tömbfüggvényeket, egy versenyző pedig 36 egymásba ágyazott HA függvényt alkalmazott.
Minta megoldás:
Radnai Bálint 10. osztályos tanuló (Lovassy László Gimnázium, Veszprém) megoldása i380.zip
Statisztika:
13 dolgozat érkezett. 10 pontot kapott: Hamrik Szabin, Kelkó Balázs, Kovács 246 Benedek, Nagy Ábel, Németh 729 Gábor, Olexó Gergely, Radnai Bálint, Rittgasszer Ákos, Uzonyi 000 Ákos. 9 pontot kapott: Jakab 042 Richárd, Szakali Benedek, Tersztenyák Balázs. 8 pontot kapott: 1 versenyző.
A KöMaL 2015. szeptemberi informatika feladatai