Dusza Árpád Országos Programozói Emlékverseny 2012/2013

Hasonló dokumentumok
Regionális forduló november 19.

Regionális forduló november 19.

Regionális forduló november 18.

Regionális forduló november 30.

Regionális forduló november 27. A oszt{lyosok feladata. Bemeneti adatok DUSZA ÁRPÁD ORSZÁGOS PROGRAMOZÓI EMLÉKVERSENY 2010/2011

(Forrás:

Kirakós játék. Döntő február 22. Alakzatok (katalógus) DUSZA ÁRPÁD ORSZÁGOS PROGRAMOZÓI EMLÉKVERSENY 2013/2014

Regionális forduló november 28. A oszt{lyosok feladata. A nyereménykuponok sz{mít{sa

A 2013/2014 tanévi Országos Középiskolai Tanulmányi Verseny második forduló javítási-értékelési útmutató. INFORMATIKA II. (programozás) kategória

Programozási alapismeretek beadandó feladat: ProgAlap beadandó feladatok téma 99. feladat 1

Megjegyzés: A programnak tartalmaznia kell legalább egy felhasználói alprogramot. Példa:

Tájékoztató. Használható segédeszköz: -

Bevezetés az SPSS program használatába

PLC Versenyfeladat. XIV. Országos Irányítástechnikai Programozó Verseny Budapest, március Összeállította az EvoPro Kft.

Algoritmizálás és adatmodellezés tanítása beadandó feladat: Algtan1 tanári beadandó /99 1

Pálya : Az a vonal, amelyen a mozgó test végighalad. Út: A pályának az a része, amelyet adott idő alatt a mozgó tárgy megtesz.

NULLADIK MATEMATIKA ZÁRTHELYI

VIII. Robotprogramozó Országos Csapatverseny Regionális versenyfeladatok évfolyam

Pálya : Az a vonal, amelyen a mozgó tárgy, test végighalad. Út: A pályának az a része, amelyet adott idő alatt a mozgó tárgy megtesz.

VI. Robotprogramozó Országos Csapatverseny Döntő versenyfeladatok. 5. évfolyam

VI. Robotprogramozó Országos Csapatverseny évfolyam

A statisztika alapjai - Bevezetés az SPSS-be -

Haladó mozgások A hely és a mozgás viszonylagos. A testek helyét, mozgását valamilyen vonatkoztatási ponthoz, vonatkoztatási rendszerhez képest adjuk

Pálya : Az a vonal, amelyen a mozgó test végighalad. Út: A pályának az a része, amelyet adott idő alatt a mozgó tárgy megtesz.

2. Készítsen awk szkriptet, amely kiírja az aktuális könyvtár összes alkönyvtárának nevét, amely februári keltezésű (bármely év).

cím létrehozása

Programozási nyelvek 1. előadás

Programozás I. zárthelyi dolgozat

ÁGAZATI SZAKMAI ÉRETTSÉGI VIZSGA TÁVKÖZLÉS ISMERETEK EMELT SZINTŰ GYAKORLATI VIZSGA MINTAFELADATOK

HTML ÉS PHP ŐSZI FÉLÉV

Feladat. Bemenő adatok. Bemenő adatfájlok elvárt formája. Berezvai Dániel 1. beadandó/4. feladat április 13. Például (bemenet/pelda.

48. ORSZÁGOS TIT KALMÁR LÁSZLÓ MATEMATIKAVERSENY Megyei forduló HETEDIK OSZTÁLY MEGOLDÁSOK = = 2019.

Szög. A Wikipédiából, a szabad enciklopédiából:

A 2017/2018 tanévi Országos Középiskolai Tanulmányi Verseny döntő fordulójának feladatai. INFORMATIKA II. (programozás) kategória

Oktatási Hivatal. A 2014/2015 tanévi Országos Középiskolai Tanulmányi Verseny döntő fordulójának feladatai. II. (programozás) kategória

OKTV 2007/2008 Informatika II. kategória döntő forduló Feladatlap. Oktatási Hivatal

Tömegpontok mozgása egyenes mentén, hajítások

6000 Kecskemét Nyíri út 11. Telefon: 76/ ; Fax: 76/ Gyakorló feladatok

EGY ABLAK - GEOMETRIAI PROBLÉMA

Space Invaders Dokumenta cio

Regionális forduló november 28. A és a oszt{lyosok feladata DUSZA ÁRPÁD ORSZÁGOS PROGRAMOZÓI EMLÉKVERSENY 2009/2010

HTML é s wéblapféjlészté s

A LEGO Mindstorms EV3 programozása

A 2016/2017 tanévi Országos Középiskolai Tanulmányi Verseny első forduló javítási-értékelési útmutató. INFORMATIKA II. (programozás) kategória

Tájékoztató. Használható segédeszköz: -

INFORMATIKAI ALAPISMERETEK

Országos Középiskolai Tanulmányi Verseny, 2004/2005-ös tanév INFORMATIKA, II. (programozói) kategória második fordulójának javítási útmutatója

Mechatronika segédlet 10. gyakorlat

8. Laboratóriumi gyakorlat INKREMENTÁLIS ADÓ

Algoritmizálás és adatmodellezés tanítása beadandó feladat: Algtan1 tanári beadandó /99 1

A 2013/2014 tanévi Országos Középiskolai Tanulmányi Verseny döntő forduló javítási-értékelési útmutató. INFORMATIKA II. (programozás) kategória

Kinek szól a könyv? A könyv témája A könyv felépítése Mire van szükség a könyv használatához? A könyvben használt jelölések. 1. Mi a programozás?

Programozás alapjai gyakorlat. 4. gyakorlat Konstansok, tömbök, stringek

XCZ állományok ellenőrzése, átadása elektronikus beküldésre és közvetlen beküldése parancssori funkcióval az ÁNYK programban

BASH script programozás II. Vezérlési szerkezetek

1. gyakorlat. Egyenletes és egyenletesen változó mozgás. 1. példa

A 2010/2011 tanévi Országos Középiskolai Tanulmányi Verseny második fordulójának megoldása. II. (programozás) kategória

Felhasználói és Telepítői Kézikönyv AT 7070 Elektronikus vezérlő garázskapukhoz

Osztályozó, javító vizsga 9. évfolyam gimnázium. Írásbeli vizsgarész ELSŐ RÉSZ

Változók. Mennyiség, érték (v. objektum) szimbolikus jelölése, jelentése Tulajdonságai (attribútumai):

Tájékoztató. Használható segédeszköz: -

1. Olvassuk be két pont koordinátáit: (x1, y1) és (x2, y2). Határozzuk meg a két pont távolságát és nyomtassuk ki.

Scratch bevezető foglalkozás Scratch bevezető foglalkozás

Szélkövetés: Ehhez az üzemmódhoz a PR3-as paraméter értékét 0-ra kell állítani.

HORVÁTH ZSÓFIA 1. Beadandó feladat (HOZSAAI.ELTE) ápr 7. 8-as csoport

Egy kinematikai feladat

Bevezetés az informatikába

1. beadandó feladat: Programozási tételek alkalmazása. Közös követelmények:

Oktatási Hivatal. A 2014/2015 tanévi Országos Középiskolai Tanulmányi Verseny első fordulójának feladatai. II. (programozás) kategória

Operációs rendszerek. 9. gyakorlat. Reguláris kifejezések - alapok, BASH UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

NULLADIK MATEMATIKA ZÁRTHELYI

IV. LEGO Robotprogramozó Országos Csapatverseny

BASH SCRIPT SHELL JEGYZETEK

ÉVFOLYAM ZH PRÓBA. Feladat (projekt- és exe-név: miki; tömörített fájl neve: EHA-kód)

Gyakorlati vizsgatevékenység A

1. ábra. 24B-19 feladat

Pontfelhő létrehozás és használat Regard3D és CloudCompare nyílt forráskódú szoftverekkel. dr. Siki Zoltán

openbve járműkészítés Leírás az openbve-hez kapcsolódó extensions.cfg fájl elkészítéséhez

A képernyőre írást igénylő részfeladatok eredményének megjelenítése előtt írja a képernyőre a feladat sorszámát (például: 3. feladat:)!

A 2014/2015 tanévi Országos Középiskolai Tanulmányi Verseny második forduló javítási-értékelési útmutató. INFORMATIKA II. (programozás) kategória

SCM motor. Típus

SCM motor. Típus

Adóhátralék kezelés egyszerűen. Használati útmutató

A 2014/2015 tanévi Országos Középiskolai Tanulmányi Verseny döntő forduló javítási-értékelési útmutató. INFORMATIKA II. (programozás) kategória

Programozás I. házi feladat

Objektumok és osztályok. Az objektumorientált programozás alapjai. Rajzolás tollal, festés ecsettel. A koordinátarendszer

7. Laboratóriumi gyakorlat: Vezérlési szerkezetek II.

3. ZH-ban a minimum pontszám 15

Gépészmérnöki alapszak, Mérnöki fizika ZH, október 10.. CHFMAX. Feladatok (maximum 3x6 pont=18 pont)

A +Q töltés egy L hosszúságú egyenes szakasz mentén oszlik el egyenletesen (ld ábra ábra

A Wiki lényege, hogy könnyen kialakítható Website-ot lehet benne megvalósítani, amelyben az egyes oldalak között linkek mutatnak.

Ütközések vizsgálatához alkalmazható számítási eljárások

BME MOGI Gépészeti informatika 1.

Összeállítás 01 gyakorló feladat

ASTER motorok. Felszerelési és használati utasítás

2017 Az Informatika-Számítástechnika Tanárok Egyesületének kiadványa

Operációs rendszerek. 11. gyakorlat. AWK - szintaxis, vezérlési szerkezetek UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

Megoldás. Feladat 1. Statikus teszt Specifikáció felülvizsgálat

Tájékoztató. Használható segédeszköz: -

Baran Ágnes. Gyakorlat Függvények, Matlab alapok

Átírás:

Regionális forduló 2012. november 24. 11-13. osztályosok feladata 8-13. osztályosok feladata Egy játékgyár az olimpiához kapcsolódva egy speciális, mechanikus reklámtáblát készít. Azt tervezik, hogy az olimpiai ötkarikán játékautókat mozgatnak körbe-körbe. Az autók mozgatását körönként egy-egy speciális motor végzi, amelyeket a körök középpontjában helyeznek el. A motorokhoz erősített vékony rudak végén rögzítik a kisautókat, melyek így a köríven mozoghatnak. A kisautók színe megegyezik a karikák színével, minden körön egy kisautó van. Az autók mozgatását számítógép segítségével szeretnék megtervezni, ezért egy szimulációs program elkészítésére kérnek titeket. A gyártók sokféle mozgásformát ki akarnak próbálni, ezért a programnak sokféle problémát kell kezelnie: Egy adott pillanatban hol vannak a kisautók, mekkora a sebességük, lesz-e ütközés, és ha igen mikor, mennyi idő alatt tesznek meg egy teljes kört, stb. Az egyes autók sebessége nem biztos, hogy egyforma lesz; többféle kezdőhelyről indulhatnak, nem feltétlenül egyszerre indulnak, nem mindegyik kering azonos irányban a körökön. Ha két kör metszéspontjához egyszerre ér két kisautó, összeütköznek, és ez a szerkezet meghibásodását okozza. Az is probléma, ha két kisautó egy időben a másik kör területén belül van, ilyenkor a rudak összeakadhatnak. 60 15 180 15 kék fekete piros 90 + 0 cs3 cs7 cs2 cs6 270 cs1 cs4 cs5 cs8 sárga zöld 1

Az ábrán a tervezett pálya, az olimpiai ötkarika látható. A karikák színe a feliratok alapján azonosítható. A feladat elkészítéséhez szükséges szögértékek leolvashatóak, a körök metszéspontjait, a csomópontokat sorban a cs1, cs2, cs8 jelölik. A csomópontok pozícióját az egyes körökön az alábbi táblázat tartalmazza: (A megfelelő kör színe és a csomóponthoz rendelt pozíció fokban szerepel az adatokban.) cs1 (kék:285, sárga:165) cs2 (kék:345, sárga:105) cs3 (sárga:75, fekete:195) cs4 (sárga:15, fekete:255) cs5 (fekete:285, zöld:165) cs6 (fekete:345, zöld:105) cs7 (zöld:75, piros:195) cs8 (zöld:15, piros:255) A program elkészítéséhez szükséges feltételeket a játékgyár a következő módon adta meg: A kisautók a körökön 4 helyről indulhatnak, a 0, 90, 180 vagy 270 fokkal jelölt pozícióból. (Ezeket csak a kék körön jelölték be.) A kisautóknak háromféle sebességük lehet. Egy másodperc alatt a tengelyükhöz erősített rudat a motorok 1, 3 vagy 5 fokkal tudják elfordítani. A forgásirány pozitív, ha az óramutató járásával ellentétes, ellenkező esetben negatív. Nem minden körön mozog az autó. A mozgó autók nem feltétlenül egyszerre indulnak. Ha egy kisautó úgy ér egy csomóponthoz, hogy a körpályája belsejében a metsző körön egy másik autó fut, akkor el kell dönteni 1, hogy a hajtókarok összeakadása nélkül tovább tud-e haladni. Ha igen, akkor tovább halad, ha nem, akkor a adott ideig 2 várakoznia kell. Ha egy csomóponthoz két autó ér egyszerre, akkor ütközés történik, mindegyik autó megáll. A kísérletnek vége szakad. A kisautók méretétől eltekintünk. Nem tekintjük ütközésnek azt az esetet, amikor a csomópontban várakozó autó mellett a csomópontban elhalad egy másik, mozgó autó. 1 A hajtókarok biztosan összeakadnak, ha a két közös csomópont között egymással szembe haladnak a kisautók. A hajtókarok összeakadhatnak, ha az autók haladási iránya megegyezik, és a csomóponthoz később érkező autó nagyobb sebességű, vagy ha a csomóponthoz később érkező autó sebessége nem nagyobb a másikénál, de az még nem tette meg a csomópontok közötti távolság felét (30 fokot). 2 Ha a másik autó szembe jön, akkor addig kell várakozni, amíg az ki nem ér a közös területről. Ha a másik autó azonos irányba mozog, de lassabban halad, addig, amíg az ki nem ér a közös területről. Ha a másik autó azonos irányba mozog, és nem lassúbb, akkor addig, amíg a másik autó mozgató karjának elfordulása a közös részen el nem éri a 30 fokot, meg nem teszi a közös részre eső útjának felét. 2

Bemeneti adatok A gyártó azt kéri, hogy az általa tesztelni kívánt mozgásváltozatokat a program a bemeneti paraméterek alapján elemezze. Ezeket a kezdeti paramétereket a kisautok.txt nevű fájl tartalmazza. A bemeneti fájl minimum 1, maximum 5 sorból áll, attól függően, hogy melyik körökön mozognak autók. Egy sorban mindig 5 adat van egymástól egy szóközzel elválasztva. Ezek sorrendben a következők: 1. az autó színe (ékezetes betűk használata nélkül) 2. az autó sebessége (1, 3 vagy 5 fok/sec) 3. kezdőpozíció (0, 90, 180 vagy 270 fok) 4. menetirány (+ vagy - ) 5. a késleltetés másodpercben az első autó indulásához képest Pl.: piros 3 0 + 5 kek 1 90-0 fekete 5 180 + 3 A fájlban a színek sorrendje bármilyen lehet. A program feladata 1. A program induláskor a felhasználó bevonása nélkül olvassa be az aktuális paramétereket a bemeneti fájlból, majd kérjen be egy időpontot, amelynek alapján számolja ki, és a képernyőre írja ki az alábbi adatokat (a bekért időpont az időmérés kezdetétől, a 0 időpillanattól eltelt, másodpercben mért idő): A kisutók helye: 0 vagy annál nagyobb, de 360 foknál kisebb szög az ábrán megadott módon A kisautók sebessége: 0 vagy az autó induláskor érvényes sebessége fok/másodpercben Az egyes kisautók által az adott időpontig megtett teljes körök száma. (Minden színre külön.) Az adott időpontig összesen mennyi ideig várakoztak az egyes autók. (Csak azoknak az autónak kell megadni külön-külön az összesített várakozási idejét, amelyek csomópontban várakoztak. Az el sem indulókét nem kell kiírni.) Az egyes kisautók mennyi idő alatt tették meg az első teljes kört. Ha ütközés miatt a szerkezet leállt, akkor csak azokat kell felsorolni, amelyek legalább egy teljes kört megtettek az ütközés időpontjáig. (A várakozás ideje természetesen növeli a teljes kör befutási idejét.) Ha az adott időszakban volt ütközés, akkor az ütköző autók színét és az ütközés idejét. A szerkezet által 10 perc alatt elhasznált energiát az 5 autóra összesítve. Az autók indítása 8 egység energiát igényel, a leállítása 5 egységnyit. A mozgatáshoz szükséges energia függ a sebességtől. Ha a motor másodpercenként egy fokkal fordít, akkor ez másodpercenként 2 egység energiát jelent, ha három fokkal, akkor ez 6 3

egységet, és az öt fokos forgatás 10 egységnyit. A felhasználóbarát felület és az egyértelmű adatközlés érdekében az adatok kiírásánál mindig közölni kell, hogy a megjelenített adat mire vonatkozik. Az is fontos, hogy az adatokat tetszőleges ideig lehessen tanulmányozni. (Ez megoldható úgy, hogy az összes kiírt adat egyszerre látszódik a képernyőn, vagy görgetéssel/lapozással láthatóvá tehető bármelyik.) 2. Írja ki a cspont.txt fájlba, hogy a megadott időszakban az egyes csomópontokon melyik kisautó haladt keresztül és mikor! Ha az adott csomóponton nem haladt át autó, akkor ezt kell jelezni a nem haladt át autó szöveg kiírásával A cspont.txt fájl pontosan 9 sorból áll. Az első sor a megadott időtartamot/időpontot tartalmazza, a további sorok pedig rendre az egyes csomópontokon áthaladó autókra vonatkozó adatokat az alábbiak szerint: Minden sor a csomópont azonosítóval kezdődik, majd az áthaladás sorrendjében következnek az autókra vonatkozó információk; az áthaladás ideje és az áthaladó autó színe. Pl. 180 cs1 165:kek cs2 105:kek cs3 6:fekete 78:fekete 150:fekete cs4 18:fekete 90:fekete 162:fekete cs5 24:fekete 96:fekete 168:fekete cs6 36:fekete 108:fekete 180:fekete cs7 70:piros cs8 90:piros A szóközök és az egyéb elválasztójelek használata nem kötelező, ezek tetszőlegesen alkalmazhatóak, de a fájl olvashatóságát biztosítaniuk kell. Beadandó A program forráskódja (a programozási környezettől függően a forráskód több fájl is lehet, esetleg mappák is tartozhatnak hozzá) és a lefordított reklam.exe állomány. A bemeneti adatokat tartalmazó fájl mindig az aktuális (fejlesztői környezetben az alapértelmezett) könyvtárban található. A kimeneti fájlt is ide kell menteni. (A program kódja nem tartalmazhat abszolút elérési útvonalat.) Feltételezzük, hogy a bemeneti fájlokban szereplő adatok minden esetben helyesek. 4

Kódolási alapelvek A forráskód minőségét is értékeljük. Irányelvek, szempontok: Egységes kódolási szabályok az azonosítókra: o a változók egységes elnevezése (kis- és nagybetűk vagy más speciális karakterek használata), o az osztályok egységes elnevezése (objektum-orientált programnyelv esetén, pl. C++), o a függvények és eljárások tartalomra utaló elnevezése, o a programkód egységes strukturáltsága, tagoltsága. A kód minősége (könnyen emberek számára érhető illetve karbantartható kód): o áttekinthető, lehetőség szerint rövid eljárások, függvények, fájlok, o beszédes, tömör elnevezésű azonosítók, o objektum-orientált nyelveknél globális változók mellőzése. Kommentezés: o A kommentezés elsődleges célja, hogy a programban a miért? kérdésre adjon választ. (A mit? kérdésre az azonosítók megfelelő elnevezése és a megfelelően strukturált kód, a hogyan? kérdésre pedig az áttekinthető forráskód ad választ.) o A túlzásba vitt kommentezés csökkenti az áttekinthetőséget, a túl kevés komment nehezíti a megértést. o Elvárás a változók, osztályok, függvények és eljárások szerepének rövid, értelemszerű kommentezése. Elérhető pontszám: 120 pont (Ebből a helyes dokumentálás kommentezés 15 pont) Jó munkát kíván a Versenybizottság! 5