Feladat: I.229 Korcsoport: - Nehézségi fok: -
Füzet: 2010/január, 36 - 38. oldal  PDF  |  MathML 
Témakör(ök): Feladat

A szöveg csak Firefox böngészőben jelenik meg helyesen. Használja a fenti PDF file-ra mutató link-et a letöltésre.

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: É=10-x2+y2.
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 honlapunkról letölthető 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:

65
28.95  31.60
23.67  30.18
35.12  50.27
30.45  34.67
...

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 10-(-5,28)2+(-1,42)2=4,53.
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  y0síknegyed=1)  és  (x0  és  y<0síknegyed=4)  és(x<0  és  y0síknegyed=2)  és  (x<0  és  y<0sí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ó.