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

A KöMaL 2008. októberi informatika feladatai

Kérjük, ha még nem tetted meg, olvasd el a versenykiírást.


Feladat típusok elrejtése/megmutatása:


I-jelű feladatok

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


I. 193. Füles Ferkó barátunk családi házuk padlásán egy régi szalagos magnetofont és sok-sok szalagot talált. Hozzáfogott, hogy a szalagokon található hanganyagokat számítógépére átvegye. Volt azonban egy olyan szalag, amelynek a lejátszása során furcsa hangokat hallott. Ennek ellenére biztos volt benne, hogy a szalag tartalma valamilyen átalakítással érthetővé tehető. A szalag tartalmának visszanyeréséhez az Audacity ingyenesen letölthető programot használta föl. Ferkó azonban nem boldogult a dologgal, ezért szerkesztőségünk segítségét kérte. Mi továbbítjuk a kérést a versenyzőinknek: magas jutalomban (10 pont) részesül, aki képes I193.mp3 hangállomány tartalmát visszaállítani, a felvételt minél inkább tisztává és érthetővé tenni.

Beküldendő az átalakított hangfelvétel (i193.mp3), illetve egy rövid dokumentáció (i193.txt, i193.pdf, ...), amelyben szerepel a megoldás menete.

(10 pont)

megoldás, statisztika


I. 194. A vonalkódoknak többféle típusa létezik, de a kereskedelemben a legelterjedtebb az EAN-13 (EAN = European Article Number, Európai árucikkszámozás), amely egy 13 jegyű számot ábrázol. A szám információtartalma:

Az egyes részek változó számú karakterből épülhetnek fel. A számtípus országkódot vagy terméktípust jelent. Például:

590 Lengyelország
594 Románia
599 Magyarország
600 - 601 Dél-Afrika
609 Mauritius
611 Marokkó
613 Algéria
977 Periodikák (ISSN)
978 Könyvek (ISBN)
979 Zene (ISMN)

Egy új termék gyártója a központi nyilvántartástól igényelheti az EAN-13 számot.

Az EAN-13 szám utolsó számjegye a véletlen elgépelés vagy a hibás leolvasás kiszűrését biztosító ellenőrző számjegy. Képzési szabálya: az első 12 számjegy közül a páratlan helyen állókat 1-gyel, a páros helyen állókat 3-mal szorozzuk meg, és a szorzatokat összegezzük, majd meghatározzuk az ellenőrző számjegyet, amely a 13. helyen fog állni. Ez az a szám, amit az összeghez hozzáadva az érték 10-zel oszthatóvá válik. Pl.:

5.1+9.3+0.1+7.3+4.1+6.3+0.1+8.3+0.1+3.3+5.1+9.3=140.

A 140 éppen osztható 10-zel, így nullát kell hozzáadni. Az ellenőrző számjegy ezért 0, tehát a példában szereplő EAN-13 szám helyes.

A vonalkód szerkezete:

- A számokat fekete-fehér területek (a leolvasó ezt képes érzékelni) kódolják.

- Az első, bal oldalon külön álló szám a kódolás módszerét határozza meg. Ennek vonalak nem felelnek meg, így más módszerrel van kódolva.

- A kód további része két számcsoportból áll. Elöl, hátul és a számcsoportok között két-két vékony elválasztó vonal van.

- A számokat 7 egységnyi szélességben 2-2 változó vastagságú vonal ábrázolja. Jelentse a fekete színt 1 és a fehéret 0. A vonalkódon belül háromféle kódolás fordul elő, jelöljük ezeket A-val, B-vel és C-vel. A vonalak számértéke az egyes kódolások szerint a következő:

Szám A B C
0 0001101 0100111 1110010
1 0011001 0110011 1100110
2 0010011 0011011 1101100
3 0111101 0100001 1000010
4 0100011 0011101 1011100
5 0110001 0111001 1001110
6 0101111 0000101 1010000
7 0111011 0010001 1000100
8 0110111 0001001 1001000
9 0001011 0010111 1110100

- Az első számcsoport (a bal oldali, önálló szám utáni 6 számjegy) A-val vagy B-vel, a második számcsoport (az utolsó 6 számjegy) C-vel van kódolva.

- Az EAN-13 kód első számjegye határozza meg az első számcsoport hat számjegyének kódolását. Ennek táblázata:

A példaként bemutatott -- lengyel lekváros üvegen szereplő -- vonalkód felépítése:

Az első szám 5, ami a vonalrendszerben közvetlenül nem jelenik meg, de az első számcsoport kódolását a táblázat szürke sora alapján meghatározza.

Vonalcsoport Jelentés Vonalrendszer
1. Bevezető két vékony vonal 101
2. [9] A kódolással 0001011
3. [0] B kódolással 0100111
4. [7] B kódolással 0010001
5. [4] A kódolással 0100011
6. [6] A kódolással 0101111
7. [0] B kódolással 0100111
8. Elválasztó két vékony vonal 01010
9. [8] C kódolással 1001000
10. [0] C kódolással 1110010
11. [3] C kódolással 1000010
12 [5] C kódolással 1001110
13. [9] C kódolással 1110100
14. [0] C kódolással 1110010
15. Záró két vékony vonal 101

A vonalrendszereket összefűzve állítjuk elő a teljes vonalkódot.

Táblázatkezelő program segítségével vizsgáljuk meg az A1 cellában megadott EAN-13 szám helyességét az ellenőrző számjegy alapján: a B1 cellába írjuk a ,,helyes'', vagy a ,,hibás'' szót a vizsgálat eredményeként. Állítsuk elő a megadott szám 15 részből álló vonalrendszerét 0-s és 1-es számjegyek segítségével az A2:A16 cellákba.

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. A kód meghatározásához szükséges segédtáblák lehetnek külön munkalapon.

Beküldendő a táblázatkezelő munkafüzet (i194.xls, i194.ods, ...), illetve egy rövid dokumentáció (i194.txt, i194.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)

megoldás, statisztika


I. 195. Az érintőképernyős mobil számítógépeken az útvonaltervező programok a települések nevének bevitelét azzal segítik elő, hogy a begépelt névrészleteknél csak a választható karaktereket jelenítik meg. Választható karakter az, amelyet ha a felhasználó kiválaszt, akkor létezik olyan település a tárolt listában, amely nevének első részlete megegyezik az eddig begépelt karakterekkel.

A betűk beütésével a program számolja, hogy hány név találat létezik az addig beütött szórészletre. Ezt az értéket a beviteli mező után jeleníti meg.

Készítsünk programot, amely a bemeneti adatállományban megadott településnevek alapján egy település nevének kiválasztását a fenti módszerrel támogatja a standard kimenetre írt információkkal. A program parancssori argumentuma legyen a településneveket tartalmazó adatállomány neve (a telepules.txt állomány felhasználható a megoldáshoz). A kimenet minden karakter bevitele után a válaszható karakterek listája és az egyező városok száma legyen. A bevitel során csak a választható karaktereket lehessen begépelni, illetve a program futását megállítani az ESC billentyűvel.

A kis- és nagybetűk legyenek egyenértékűek; az ékezetes betűket a megoldás során ne különböztessük meg. Így például: Ó, ö, Ő és o helyett egyaránt o jelenjen meg.

Minta:

Beküldendő a program forráskódja (i195.pas, i195.cpp, ...), valamint a program rövid dokumentációja (i195.txt, i195.pdf, ...), amely tartalmazza a megoldás lényeges lépéseinek leírását, és megadja, hogy a forrásállomány melyik fejlesztő környezetben fordítható.

(10 pont)

megoldás, statisztika


S-jelű feladatok

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


S. 38. A webböngészők a világhálón található oldalakat jelenítik meg számítógépeinken. Ehhez minden HTML oldal tartalmának értelmezésekor egy dokumentumfát készítenek. A dokumentumfa gyökere a <HTML> elem, minden további elem pedig az őt tartalmazó elem leszármazottja. Példaként tekintsük az alábbi HTML forrást, és a hozzá tartozó dokumentumfát:

Írjunk programot, amely egy HTML 4.01 Strict DTD verziójú (tehát érvénytelenített formázásoktól mentes és kereteket nem tartalmazó), hibátlan oldal dokumentumfáját elkészíti. Az érvényes HTML elemek a

http://www.w3.org/TR/html401/index/elements.html

oldalon találhatóak (csak a D és L jelzés nélküliek, összesen 80 elem). A program olvassa be a parancssor első argumentumaként megadott nevű forrásállományból az oldalt tartalmazó szöveget, majd írja ki a parancssor második argumentumaként megadott nevű kimeneti szöveges állományba a fenti formában a dokumentumfát.

Beküldendő a program forráskódja (s38.pas, s38.cpp, ...), valamint a program rövid dokumentációja (s38.txt, s38.pdf, ...), amely tartalmazza a megoldás rövid leírását, és megadja, hogy a forrásállomány melyik fejlesztő környezetben fordítható.

(10 pont)

statisztika


Figyelem!

Az informatika feladatok megoldásait ne e-mailben küldd be! A megoldásokat az Elektronikus munkafüzetben töltheted fel.