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ű feladatokA 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)
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)
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)
S-jelű feladatokA 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 1N1000 számát, illetve a rendelkezésre álló időkeretet. Az ezt követő N sor mindegyike három, szóközzel elválasztott egész számot, az i-edik kincs koordinátáit és 0Ci1000 értékét tartalmazza.
A program a megoldást a standard kimenetre írja. Ennek első sorában az összegyűjtött kincsek 1KN 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)
Figyelem!
Az informatika feladatok megoldásait ne e-mailben küldd be! A megoldásokat az Elektronikus munkafüzetben töltheted fel.