Céllövészet

A Sor Lövészegylet rendszeresen rendez versenyt az alábbi, igen egyszerű szabályokkal.
- A lövések leadására korlátozott idő áll rendelkezésre, ezért a versenyzők eltérő számú lövést adhatnak le.
- A lövéseket sorszámozott korongokra kell leadni.
- A lövésekhez pontértéket rendelnek: amíg nem hibázik valaki, minden találata 20 pontot ér; de rontás esetén minden hiba 1 ponttal csökkenti – egészen nulláig – a későbbi lövésekkel szerezhető pontszámot.
A verseny.txt állományban versenyzőnként tartalmazza a lövések eredményét.
A fájl első sorában a versenyzők száma szerepel. A következő sorokban egy versenyző lövéseinek sorozata. Egy lövést egy karakter ír le, a – karakter a sikertelen, a + karakter a sikeres lövést rögzíti. Például:
5
+--+
-+-+++-
-+--+--
...
A példában a 4. sor azt mutatja, hogy a 3-as rajtszámú lövőnek a 2. és az 5. lövése talált, tehát a versenyző csak két korongot talált el. Mivel elsőre hibázott, az első találat 19 pontot ér, aztán a két újabb hiba miatt már csak 17 pontot jelentett a második találat. Tehát összesen 36 pontot szerzett.
Készíts programot, amely a verseny.txt állomány adatait felhasználva az alábbi kérdésekre válaszol! A program forráskódját mentsd el loves néven!
- Olvasd be a verseny.txt állományban található adatokat, és annak felhasználásával old meg a következő feladatokat!
- Írd a képernyőre azon versenyzők rajtszámát, akiknek az első két lövése talált! A versenyzők rajtszámát egy-egy szóközzel válassza el egymástól!
2. feladat:
4 12 18
- Írd a képernyőre, hogy melyik versenyző adta le a legtöbb lövést! Ha többen is ugyanannyi lövést adtak le, elegendő egyikük rajtszámát kiírni.
3. feladat:
A legtöbb lövést leadó versenyző rajtszáma: 2
- Készíts függvényt loertek néven az alábbi algoritmus alapján! A függvény egy + és – jeleket tartalmazó karaktersorozathoz hozzárendeli a pontértékét. A függvény elkészítésekor az algoritmusban megadott változóneveket használd! Az elkészített függvényt a további feladatok megoldásánál fel kell felhasználnod! A függvény bemenő paramétere az egy játékos lövéseit leíró karaktersorozat, értéke pedig az ahhoz rendelt pontszám.
Függvény loertek(sor:karaktersorozat):egész szám
aktpont:=20
ertek:=0
Ciklus i:=1-től hossz(sor)-ig
Ha aktpont>0 és sor[i]=”-” akkor
aktpont:=aktpont-1
Különben
ertek:=ertek+aktpont
Elágazás vége
Ciklus vége
loertek:=ertek
Függvény vége.
- Kérd be a felhasználótól egy versenyző sorszámát, majd írd ki, hogy:
- hányadik lövései találtak (az értékeket egymástól szóközzel válassza el!),
- hány korongot talált el összesen,
- hány pontot ért el!
5. feladat:
Adjon meg egy rajtszámot! 2
5a. feladat: Célt erő lövések: 2 4 5 6
5b. feladat: Az eltalált korongok száma: 4
5c. feladat: A versenyző pontszáma: 73
- Rendezd az elért pontszámok alapján a versenyzőket! Az eredményt csökkenő sorrendben írd ki a sorrend.txt nevű állományba! Az egyes adatsorokban a versenyzők rajtszáma és elért pontszáma tabulátorral elválasztva kerüljön!
2 73
4 40
1 38
5 38
3 36
...
forrás: oktatas.hu