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 2010. áprilisi 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ő 2010. május 10-én LEJÁRT.


I. 238. A matematikában és a természettudományokban a kifejezések leírásához hagyományosan zárójelezést használunk.

Készítsünk programot i238 néven, amely egy zárójeles kifejezésben megkeresi az első hibás vagy hiányzó karakter pozícióját. A kifejezésben háromféle zárójeltípus, számjegy és operátor lehet. A kifejezés más helyességét most nem ellenőrizzük.

Szabályos zárójelezés:

- ha s sorozat rendesen zárójelezett (s üres is lehet), akkor (s), [s] és {s} is az,

- ha s és p sorozat szabályos, akkor sp is szabályos,

- minden más sorozat szabálytalan.

A program első parancssori argumentuma legyen egy több tesztesetet leíró adatállomány neve. A fájl első sorában \(\displaystyle N\) (\(\displaystyle 1\le N\le 100\)) a tesztesetek száma és az ezt követő \(\displaystyle N\) sorban a tesztesetek állnak, amelyek hossza 1 és 255 közötti.

A parancssor második argumentumaként megadott kimeneti állomány \(\displaystyle N\) sorban egy-egy egész számot, az első hibás vagy hiányzó karakter pozícióját adja.

Például:

Beküldendő egy tömörített i238.zip állományban a program forráskódja (i238.pas, i238.cpp, ...), valamint a program rövid dokumentációja (i238.txt, i238.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)

megoldás, statisztika


I. 239. A Hazai Ízek fogadó nyáron igen nagy forgalmú, 5 pincér is dolgozik. A tulajdonos nem elégedett a munkájukkal, azt gyanítja, hogy a pincérek túl sok időt töltenek a konyhában. Ennek tényekkel való alátámasztásához egy napra a pincéreket jeladóval látta el. Ezek segítségével minden be- és kilépést rögzített: időpont, a jeladó azonosítója, a mozgás iránya (Be/Ki). Végezzük el a keletkezett adathalmaz feldolgozását a leírásnak és a mintának megfelelően táblázatkezelő program segítségével. Kezdetben minden pincér a konyhán kívül tartózkodott.

[1.] A hazai.txt állományban található adatokat helyezzük a táblázatban az A10-es cellától kezdődően, majd mentsük el pincer néven a táblázatkezelő alapértelmezett formátumában.

[2.] Az A1:C8 tartomány szöveget tartalmazó celláit alakítsuk ki a mintának megfelelően, a számadatokat tartalmazó cellákat a későbbi feladatok megoldása során töltsük fel.

[3.] A B2 cellában határozzuk meg, hogy a pincérek hányszor léptek be a konyhába.

[4.] A C2 cellában írassuk ki, hogy a pincérek összesen mennyi időt töltöttek a konyhában.

[5.] Az A3-as cellába jegyezzük be egy pincér jeladójának azonosítóját.

[6.] A B3 cellában határozzuk meg, hogy az A3-as cellában szereplő pincér hányszor járt a konyhában.

[7.] A C3 cellában számítsuk ki, hogy az A3-as cellában szereplő pincér összesen mennyi időt töltött a konyhában. A feladat megoldásához az E oszloptól jobbra használhatunk segédcellákat.

[8.] A 4. sorban adjuk meg, hogy az A3-as cellában szereplő pincér adatai hogyan aránylanak a teljes mennyiséghez.

[9.] A D oszlopban a 11. sortól kezdődően adjuk meg, hogy hány pincér tartózkodott a konyhában az adott sorbeli be- vagy kilépést követően.

[10.] A C6-os cellában határozzuk meg, hogy hány olyan időtartam volt, amikor minden pincér a konyhában volt.

[11.] Keressük meg, hogy mikor kezdődött először és mikor utoljára olyan időintervallum, amikor minden pincér a konyhában volt. A feladat megoldásához az E oszloptól jobbra használhatunk segédcellákat.

[12.] A mérést olcsóbban el lehetett volna végezni, ha csak az átlépés tényét kell rögzíteni, az irányát nem. Ha ilyen eszközt használtak volna, akkor a mozgás irányát (C oszlop) is meg kellett volna határozni. Bizonyítsuk be az elgondolás helyességét azzal, hogy a B oszlop adatainak felhasználásával az E oszlopban meghatározzuk a haladási irányt a teljes oszlopban hibamentesen másolható képlet segítségével.

[13.] Készítsünk diagramot, amely a konyhában tartózkodó pincérek számát mutatja az idő függvényében 12 óráig. A diagram a mintának megfelelő legyen.

Beküldendő egy tömörített állományban (i239.zip) a táblázatkezelő munkafüzet (i239.xls, i239.ods, ...), illetve egy rövid dokumentáció (i239.txt, i239.pdf, ...), amelyben szerepel a megoldáskor alkalmazott táblázatkezelő neve, verziója, valamint a megoldás rövid leírása.

(10 pont)

statisztika


I. 240. A KML kutatóintézet egyik laborjában a kifejlesztés alatt álló szupercellákból összeállított lánc üzem közbeni hőmérsékletét figyelik. A lánc elemeinek hőmérsékleti állapotát az adatgyűjtő eszközök (n+1).(m+1) méretű, tabulátorral tagolt szövegfájlokban rögzítik. Az n a lánc hossza, m pedig a mérési időpontok száma. A fájl első adata a berendezés azonosítója, első sorának további adatai a cellák láncbeli azonosítóit, az első oszlop további sorai pedig a mérési időpontokat tartalmazzák.

Az intézet munkatársainak az a kérése, hogy a szövegfájlból egy táblázatkezelőbe átmásolt (az első adat a korábban üres munkalap A1-es cellájába kerül) adathalmazt lehetőség szerint egy billentyűkombinációval az alábbi leírásnak megfelelően dolgozzuk fel:

Az első sort és az első oszlopot sárga háttéren kék, félkövér betűtípussal formázzuk, a hőmérsékleti adatokat tartalmazó cellákat lássuk el oC mértékegységgel. A kritikus hőmérsékletet jelentő 70 oC értéken felüli értékeket piros, félkövér karakterekkel jelezzük. A rendszer hőmérsékleti viszonyait egy olyan vonaldiagramon szemléltessük, amelynek kategóriatengelyéről az eszközök azonosítói olvashatók le, a diagram jelmagyarázataként pedig az egyes időpontok legyenek láthatók. A diagram címe a berendezés azonosítója legyen.

A feladat nehézségét az okozza, hogy az n és az m értéke előre nem ismert, csak annyit tudunk, hogy értékük legfeljebb 10. A megoldáshoz makrót kell készítenünk a Microsoft Excel (2003 vagy 2007), vagy OpenOffice.org 3.x táblázatkezelő programok valamelyikével.

Beküldendő egy tömörített állományban (i240.zip) a makrót tartalmazó táblázatkezelő munkafüzet (i240.xls, i240.ods, ...), a makró egy külön szövegfájlban (i240m.txt) illetve a dokumentáció (i240.txt, i240.pdf, ...), amelyben szerepel a használt táblázatkezelő neve, verziója, valamint a megoldás rövid leírása.

(10 pont)

statisztika


S-jelű feladatok

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


S. 53. Bergengóciában, a már megismert Villamoshajtó Bajnokság mellett, nagy hagyományokkal bíró nemzeti sportesemény a Mezei Kincsfelderítő és -begyűjtő Torna. Noha az idei szabálymódosítás értelmében -- miszerint a kincsek felkutatásához kémműholdak is igénybe vehetők -- a felderítéshez bevetett taktikák alapvetően megváltoztak, a kincsek gyors összegyűjtése továbbra is kihívást jelentő feladat maradt.

Írjunk programot, mely az egyes kincsek elhelyezkedése és értéke, illetve a rendelkezésre álló időkeret alapján meghatározza, hogy milyen útvonalon haladjunk, azaz milyen kincseket és milyen sorrendben érintsünk, hogy a lehető legnagyobb összértékű kincshalmazt gyűjthessük össze. Feltehetjük, hogy egy kincs begyűjtéséhez szükséges idő elhanyagolható; hogy utunkat bármelyik kincstől indíthatjuk; illetve hogy egy időegység alatt egy távolságegységet tudunk megtenni.

A program a mező leírását a standard bemenetről olvassa. Ennek első sora két, szóközzel elválasztott egész számot tartalmaz: a kincsek 1\leN\le1000 számát, illetve a rendelkezésre álló 0\le T\le 1\;000\;000 időkeretet. Az ezt követő N sor mindegyike három, szóközzel elválasztott egész számot, az i-edik kincs 0\le X_i,Y_i \le 10\;000 koordinátáit és 0\leCi\le1000 értékét tartalmazza.

A program a megoldást a standard kimenetre írja. Ennek első sorában az összegyűjtött kincsek 1\leK\leN száma szerepeljen, további K db sorában pedig az összegyűjtött kincsek sorszámai a begyűjtés sorrendjében (1-től indexelve).

A feladatra nem (csak) optimális megoldásokat várunk. A beérkezett megoldásokat rangsoroljuk a különféle teszteseteken elért futási eredmények alapján. (A megoldásokat egy Core 2 architektúrájú, 2 GHz-en működő processzoron futtatjuk. Egy program egy teszteseten legfeljebb 10 percig dolgozhat, az ennél tovább futó programoknál az adott tesztesetet nem értékeljük.) Az első helyezett 10, a második 9, a többi megoldás pedig legfeljebb 8 pontot kaphat.

Beküldendő egy tömörített s53.zip állományban a program forráskódja (s53.pas, s53.cpp, ...), valamint a program rövid dokumentációja (s53.txt, s53.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.