Az I. 614. feladat (2024. január) |
I. 614. Egy iskolai nyári táborban az egyik este szellemi vetélkedőt tartanak. A vetélkedő során kérdéseket tesznek fel a csapatoknak, valamint megadnak négy választ. A négy válaszból minden kérdésre pontosan egy a helyes. A kerdesek.txt UTF-8 kódolású szöveges állomány hat-hat egymás követő sorában van minden kérdés: az első sorban a feltett kérdés, a következő négy sorban a lehetséges válaszok, és a hatodik sorban a helyes válasz sorszáma. Az állomány első néhány sora a következő, amelyből kiolvasható, hogy 23 fenyőfa áll a tábor területén, és 7 vízibiciklivel lehet evezni a tavon.
Készítsünk programot i614 néven, amely beolvassa az adatokat tartalmazó állományt, majd válaszol az alábbi kérdésekre és megoldja a kitűzött feladatokat. Amennyiben a szöveges állomány ékezethelyes kezelése nem megoldható, akkor használjuk a kerdesek2.txt egyszerű ASCII kódolású állományt, amelyben az ékezetes karakterek helyett azok ékezet nélküli párja szerepel.
A felhasználóval történő párbeszéd során mindig adjuk meg, hogy milyen adatot kérdezünk és milyen eredményt adunk meg, illetve a feladatok megoldása előtt írjuk ki a feladat sorszámát. A megoldáshoz mintaként használhatjuk a feladatok után mellékelt mintát.
- Írjuk ki, hogy hány kérdés szerepel az adatállományban, valamint írjuk ki az első kérdést és a hozzá tartozó válaszokat, jelezve, hogy melyik a jó válasz. A válaszokat egy-egy nagybetűvel és nyitó zárójellel vezessük be.
- Adjuk meg, hogy melyek azok a kérdések, amelyekre a válaszok mindegyike egész szám. Írjuk ki a kérdések első 30 karakterét és három pontot, ha a kérdés hosszabb 30 karakternél, illetve a teljes kérdést, ha az nem hosszabb 30 karakternél. A kérdést követően írjuk ki a válaszok számát egy-egy szóközzel elválasztva úgy, hogy a helyes választ tegyük zárójelbe.
- Készítsünk az állomány adataiból egy 10 kérdésből álló véletlen kérdéssorozatot. Figyeljünk arra, hogy ne szerepeljen egy kérdés sem többször. Írjuk ki a kérdések szövegét és lehetséges válaszokat az 1. feladatban megadott formában. Kérjük be a felhasználó tippjét, ami az a, b, c, d betűk egyike lehet kis- vagy nagybetűvel. A hibás tippeket ne fogadjuk el, tehát addig ne lépjünk tovább, amíg a felhasználó a négy elfogadható betű egyikét nem adja meg.
- Az előző feladatban kapott tippek és a helyes válaszok alapján adjuk meg, hogy a felhasználó hány kérdésre adott helyes választ, valamint készítsünk egy nemjo.txt szöveges állományt, amelybe elhelyezzük azokat a kérdéseket, amelyekre a felhasználónak nem sikerült helyesen válaszolnia. A fájlban minden kérdés két sorban szerepeljen: az egyik sorban a kérdés szövege, az őt követő sorban a helyes válasz. A kérdések és válaszok között egy üres sort hagyjunk ki. Ha a felhasználó minden kérdésre jól válaszolt, akkor a fájlba ne írjunk semmit.
Minta egy lehetséges programfutásra:
Beküldendő egy tömörített i614.zip állományban a program forráskódja és rövid dokumentációja, amely megadja, hogy a forrásállomány melyik fejlesztői környezetben fordítható.
A megoldáshoz szükséges letölthető állományok: kerdesek.txt, kerdesek2.txt.
(10 pont)
A beküldési határidő 2024. február 15-én LEJÁRT.
Mintamegoldásként Szabó Imre Bence budapesti, 10. évfolyamos tanuló C++ nyelven készült megoldását (i614.cpp), valamint Nagy Korina kecskeméti, 11. évfolyamos versenyző Python nyelvű megoldását (i614.py) adjuk közre.
Statisztika:
10 dolgozat érkezett. 10 pontot kapott: Bátorfi Balázs, Farkas Roland, Gyönki Dominik, Nagy 292 Korina, Pál Benedek József , Puppi Barna, Szabó Imre Bence. 7 pontot kapott: 1 versenyző. Nem számítjuk a versenybe a születési dátum vagy a szülői nyilatkozat hiánya miatt: 2 dolgozat.
A KöMaL 2024. januári informatika feladatai