Középiskolai Matematikai és Fizikai Lapok
Informatika rovattal
Kiadja a MATFUND Alapítvány
Már regisztráltál?
Új vendég vagy?

Az I. 334. feladat (2013. december)

I. 334. A bingo igen egyszerű társasjáték. A feladat az USA-ban és Ausztráliában népszerű 90-es bingón alapul. Ebben változatban a játékosok háromszor 5 számot kapnak. Ezen számötösök alapján határozható meg a három nyertes:

- az egyik, akinek valamely számötöséből először húztak ki minden számot (A);

- a második, akinek két számötöséből először húztak ki minden számot (B);

- a harmadik, akinek először húzták ki minden számát (C).

A bingo.txt fájl első sorában a számok (1-90-ig) kihúzásuk sorrendjében szerepelnek. Az azt követő sorokban egy-egy játékos számötösei (összesen 15 szám) vannak egy-egy szóközzel elválasztva. A számötösök: 1-5, 6-10, 11-15. számok a sorban. A fájl legfeljebb 100 játékos számait tartalmazza. A bemenet és a képernyőkép mintája letölthető honlapunkról.

Írjunk programot i334 néven, amely megoldja az alábbi feladatokat. Az egyes feladatok megoldása előtt jelenítsünk meg a képernyőn a feladat sorszámát tartalmazó szöveget (például: 5. feladat), a beolvasás előtt pedig a beolvasás tartalmára vonatkozó üzenetet (például: Add meg a versenyző számát!) Az ékezet nélküli kiírás is megengedett.

1. Olvassuk be a fájlban tárolt adatokat és őrizzük meg személyenként három számötöst tárolni képes adatszerkezetben.

2. Írjuk a képernyőre, hogy hány játékos volt.

3. Olvassunk be egy számot és jelenítsük meg a képernyőn, hogy hányadik húzásra választották.

4. Határozzuk meg azokat a számokat, amelyek egyetlen játékos lapján sem szerepeltek és jelenítsük meg a képernyőn egymástól szóközzel elválasztva.

5. Olvassunk be egy versenyző sorszámát és egy húzás sorszámát. Írjuk a képernyőre az adott versenyző minden számát úgy, hogy a már kihúzott számok mögött egy felkiáltójel jelenjen meg.

6. Készítsünk függvényt melyikutan névvel, amely egy számötös kapcsán meghatározza, hogy hányadik húzást követően húzták ki annak minden elemét. A húzott számokkal kapcsolatos változókat globális változóként is használhatjuk.

7. Határozzuk meg a nyerteseket. Egy személy többször is nyerhet. Egy-egy esetben több nyertes is lehet, de elegendő csak az egyiküket meghatározni. Soronként tüntessük fel a nyertes típusát (A/B/C), mellette a nyertes játékos(ok) sorszámát.

8. Állítsunk elő egy húzási sorrendet. A sorrend véletlenszerű legyen. A számokat a huzas.txt fájl első sorába írjuk, vesszővel tagoltan.

Beküldendő a program forráskódja (i334.pas, i334.cpp, ...), valamint a program rövid dokumentációja (i334.txt, i334.pdf, ...), amely megadja, hogy a forrásállomány melyik fejlesztő környezetben fordítható.

Letölthető fájl: bingo.txt

(10 pont)

A beküldési határidő 2014. január 10-én LEJÁRT.


A versenyzők hétféle nyelven készült megoldást küldtek be. 5 C++, 3-3 Visual Basic és FreePascal, 2-2 C# és Java, 1-1 C és Lazarus.

A feladat összességében nem bizonyult nehéznek, bár a 7. részfeladatot csak kevesebb, mint a versenyzők fele tudta tökéletesen megoldani.

A 6. részfeladat egy függvény elkészítését írta elő, de többen jól láthatóan nem voltak tisztában a függvény programon belüli szerepével, így csak formailag tekinthető függvénynek az elkészült alkotás.

A 8. részfeladat egy 90 hosszú számsor véletlenszerű sorrendbe állítását kérte. Sokan sokféle módszerrel próbálkoztak. Kevesen alkalmazták azt az ismert módszert, hogy egy ciklus futtatunk 90-től 2-ig (ciklusváltozó n), egy számot választunk az [1,n] intervallumból, amely által megadott helyen lévő értéket az n. értékkel felcseréljük.

Az értékelés leírása: bingoertekeles.pdf

Az értékelés során használt fájlok: bingok.txt, bingon.txt

A beküldők közül ezúttal Tegzes Tamás munkáját emeljük ki: i334tegzes.pas, valamint érdekességképpen egy Python nyelven született, versenyen kívüli megoldást: bingo.py


Statisztika:

17 dolgozat érkezett.
10 pontot kapott:Csernák Tamás, Gercsó Márk, Kovács Balázs Marcell, Tegzes Tamás.
9 pontot kapott:Fehér Balázs, Fényes Balázs, Kelkó Balázs, Kovács 246 Benedek, Németh 123 Balázs, Uzonyi 000 Ákos.
8 pontot kapott:1 versenyző.
7 pontot kapott:2 versenyző.
6 pontot kapott:2 versenyző.
5 pontot kapott:1 versenyző.
4 pontot kapott:1 versenyző.

A KöMaL 2013. decemberi informatika feladatai