Az I. 229. feladat (2010. január) |
I. 229. A sportlövő edzéseken a hagyományos lőfegyvereken kívül elektronikus változatokat is használnak. A lőállásokból ekkor monitorokon szimulált lőlapokra történik a ,,tüzelés''. Elektronikus rendszer tárolja a lövések koordinátáit és értékeli ki az eredményeket.
A lősorozat megkezdése előtt a céltábla közepének (cx;cy) koordinátáit tárolják. Majd -- ugyanebben a koordinátarendszerben -- rögzítésre kerülnek a versenyző lövéseinek (lx;ly) vízszintes és függőleges koordinátái. A kiértékeléshez a találatok körértékét számolják ki. Ennek szabályai a következők:
-- A középponttól mért távolság (x;y) irányú összetevőinek meghatározásához a találat vízszintes és függőleges koordinátáiból kivonják a céltábla középpontjának megfelelő koordinátáit:
x=lx-cx; y=ly-cy.
-- A lövés a maximális 10 kört éri, ha a céltábla közepébe talált. Az érték annyival csökken, ahány egységgel messzebb van a középponttól: .
-- Ha a találat a középponttól 10-nél nagyobb távolságra van, akkor a körérték 0. -- A körértéket végül két tizedesre kerekítik.
A lolap.txt állomány első sorában N (3N500) a lövések száma, a második sorában a céltábla közepének cx, cy (25,00cx;cy75,00) koordinátái találhatók. Az ezt követő N sorban a versenyző egyes találatainak lx, ly (0,00lx;ly100,00) koordinátái olvashatók.
Például:
|
A példa jelentése:
-- 65 találat eredményét értékeljük ki.
-- A céltábla középpontjának koordinátái: (28,95;31,60).
-- Az első találat esetén x=23,67-28,95=-5,28 és y=30,18-31,60=-1,42. A körérték tehát .
-- A második találat körértéke 0.
Készítsünk programot loveszet néven, amely az alábbi problémákat oldja meg:
A képernyőre írást igénylő részfeladatok eredményének megjelenítése előtt írjuk a képernyőre a feladat sorszámát (például 3. feladat: ). A körértékeket mindig két tizedes pontossággal jelenítsük meg, felesleges tizedes jegyek ne legyenek.
1. Olvassuk be a lolap.txt állományban talált adatokat, és annak felhasználásával oldjuk meg a következő feladatokat. Ha az állományt nem tudjuk beolvasni, akkor a forrás első 10 sorának adatait jegyezzük be a programba, és úgy oldjuk meg a következő feladatokat.
2. Listázzuk ki a legnagyobb találat sorszámát és körértékét.
3. A célra tartás egyenletességének jellemzéséhez adjuk meg, hogy a lősorozatban hány 0 körértékű találat volt.
4. Határozzuk meg, hogy melyik egymás utáni tíz lövés körértékének átlaga a legnagyobb. A képernyőre írassuk ki a sorozat első lövésének sorszámát.
5. A lövész teljesítményét jellemzi, ha valamelyik irányban több találata van, mint a többiben. Adjuk meg, hogy a nem 0 körértékű találatok közül hány volt az egyes síknegyedekben. Írjuk képernyőre az eredményeket a következőhöz hasonló formában: ,,1. síknegyedben: 13 találat, 2. síknegyedben: 18 találat, ...''.
(x0 és síknegyed =1) és (x0 és síknegyed =4) és
(x<0 és síknegyed =2) és (x<0 és síknegyed =3).
6. Adjuk meg, hogy volt-e olyan egymás utáni négy lövés, hogy a találatok az 1., a 2., a 3. és a 4. síknegyedbe csapódtak egymás után.
7. Kérjünk be egy körértéket, és adjuk meg annak a leghosszabb lövéssorozatnak a hosszát, amelyben ennél rosszabbat a lövész nem lőtt.
Beküldendő egy tömörített i229.zip állományban a program forráskódja (i229.pas, i229.cpp, ...), valamint a program rövid dokumentációja (i229.txt, i229.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)
A beküldési határidő 2010. február 10-én LEJÁRT.
Megoldásokról
Összességében a beküldött megoldások jól sikerültek. A feladat könnyűnek mutatkozott. A pontvesztések oka első sorban a figyelmetlenségből következő hiányosságok voltak. Többen az 5. alfeladat megoldásában tévedtek. Nem értelmezték precízen, hogy "a nem 0 körértékű találatok közül" kellett megszámolni az egyes síknegyedekbe eső találatokat. Ketten részfeladat megoldását felejtették ki, illetve a síknegyed meghatározásánál a relációs jeleket tévesztették el.
Mintamegoldás
Barta János (Salgótarján, Madách Imre Gimnázium 10. osztály) megoldását közöljük: i229.pas
Statisztika:
10 dolgozat érkezett. 10 pontot kapott: Balla Attila, Barta 111 János, Szabó 928 Attila. 9 pontot kapott: Horváth 135 Loránd, Janosov Milán, Nagy 111 Miklós, Pap 999 Dávid. 8 pontot kapott: 2 versenyző. 7 pontot kapott: 1 versenyző.
A KöMaL 2010. januári informatika feladatai