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. 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