Céllövészet

logo

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!

  1. Olvasd be a verseny.txt állományban található adatokat, és annak felhasználásával old meg a következő feladatokat!
  2. Í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
  1. Í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
  1. 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.

  1. Kérd be a felhasználótól egy versenyző sorszámát, majd írd ki, hogy:
    1. hányadik lövései találtak (az értékeket egymástól szóközzel válassza el!),
    2. hány korongot talált el összesen,
    3. 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
  1. 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