Az I. 109. feladat (2005. szeptember) |
I. 109. Írjunk programot, amely a következő játékot játssza. A felhasználó minden lépésben azt mondja, hogy fej, vagy azt, hogy írás. A program mindig előre tippel, hogy mit fog a felhasználó mondani, és folyamatosan statisztikát készít arról, hogy hány esetben találta el.
A program a standard bemenetről olvassa be a felhasználó lépését, ami egyetlen F vagy I karakterből és egy soremelésből áll. Ezután egy sorban kiírja az előre kitalált tippet és azt, hogy eddig összesen hányszor találta el, illetve hányszor nem találta el a lépést. A játék addig tart, amíg a felhasználó le nem állítja a programot.
A program készítsen nyilvántartást a felhasználó szokásairól, és az alapján tippeljen. Gyűjtse össze, hogy az utolsó két lépéstől és tipptől függően -- ez összesen 16-féle eset -- a felhasználó fejet vagy írást mondott többször. (Például, ha az utolsó két lépés fej volt, és a gép mindkétszer eltalálta, akkor vizsgálja meg, hogy a korábban előfordult hasonló esetekben a felhasználó fejet vagy írást mondott többször.) Ha az adott eset korábban még nem fordult elő, vagy a játékos éppen ugyanannyiszor mondott fejet és írást, akkor a gép tippeljen véletlenszerűen.
Példa (dőlt betűvel szedtük a számítógép üzeneteit):
Beküldendő a program forráskódja (i109.pas, i109.c, ...)
(10 pont)
A beküldési határidő 2005. október 17-én LEJÁRT.
Megoldás. Egy lehetséges Pascal program letölthető innen.
Statisztika:
31 dolgozat érkezett. 10 pontot kapott: Balambér Dávid, Gilián Zoltán, Gombos Gergely, Györök Péter, Hunyady Márton, Kacz Krisztián, Kovács 129 Péter, Ozsvárt László, Szentandrási István, Szoldatics András, Szolnoki Lénárd, Véges Márton, Vincze János. 8 pontot kapott: 8 versenyző. 6 pontot kapott: 1 versenyző. 5 pontot kapott: 1 versenyző. 4 pontot kapott: 2 versenyző. 2 pontot kapott: 3 versenyző. 0 pontot kapott: 3 versenyző.
A KöMaL 2005. szeptemberi informatika feladatai