![]() |
Az I. 376. feladat (2015. május) |
I. 376. A keresztrejtvényfejtés széles körben elterjedt népszerű játék. Sok változatát fejlesztették ki. A hagyományos változatban a szavak elválasztására fekete mezők szolgálnak. A megfejtésekkel az üres mezők vízszintesen balról jobbra, illetve függőlegesen felülről lefelé tölthetők ki. A mezők számozása a bal felső sarokból indul, ahol a vízszintes vagy függőleges megoldás szava kezdődik. Minden olyan mező számot kap, ahol vízszintesen vagy függőlegesen megfejtés kezdődik. A feladatban szereplő keresztrejtvények egybetűs szavakat nem tartalmaznak. Ha egy mező vízszintes és függőleges szó első betűjét is tartalmazza, akkor csak egy számot kap.
Keresztrejtvény hálója és számozása:
A feladatok megoldásának teszteléséhez rendelkezésünkre áll egy, a honlapunkról letölthető halo.txt fájl, amelyben egy N×M (5≤N,M≤15) méretű keresztrejtvény hálója van leírva. Az állomány első sorában N és M értéke szerepel szóközzel elválasztva, majd a következő N sor a mezők állapotát tartalmazza. A fekete mezőket ,,f'', az üreseket ,,.'' karakter ábrázolja.
Készítsünk programot i376 néven, amely az alábbi problémákat oldja meg:
Minden képernyőre írást igénylő részfeladat megoldása előtt írjuk ki a feladat sorszámát. Ha a felhasználótól kérünk be adatot, jelenítsük meg a képernyőn, hogy milyen értéket várunk (például a 4. feladat esetén: ,,4. feladat - Adjunk meg egy mezőt: ''). Az ékezetmentes kiírás is elfogadott.
1. Olvassuk be a halo.txt állományban talált adatokat, és azok felhasználásával oldjuk meg a következő feladatokat.
2. Írjuk ki a képernyőre, hogy a keresztrejtvény hálójában hány fekete és hány üres mező van.
3. Határozzuk meg azt a sort, illetve azt az oszlopot, amelyben a legtöbb fekete mező van. Ha több ilyen van, akkor a legkisebb sorszámút írassuk ki a képernyőre.
4. Kérjük be a felhasználótól a keresztrejtvény egy mezőjének koordinátáját (például: 10h) és írjuk ki, hogy be kell-e majd számozni.
5. Írjuk ki a képernyőre, hogy a keresztrejtvény hálójában vízszintesen hány 2,3,…,10 betűs szó helyezhető el.
6. A szabályoknak megfelelően számozzuk be a keresztrejtvény mezőit és írjuk az eredményt a szamozott.txt állományba. A mezők tartalmát 3 karakternyi helyre írjuk ki.
7. Írassuk ki, hogy a keresztrejtvénybe írandó szavakhoz hány vízszintes és hány függőleges meghatározás tartozik.
Beküldendő a program forráskódja (i376.pas, i376.cpp, ...), valamint a program rövid dokumentációja (i376.txt, i376.pdf, ...), amely tartalmazza a megoldás leírását, és megadja, hogy a forrásállomány melyik fejlesztő környezetben fordítható.
Letölthető fájl: halo.txt
(10 pont)
A beküldési határidő 2015. június 10-én LEJÁRT.
Megoldás elve:
A keresztrejtvényben egy mezőt akkor kell számozni, ha üres, és teljesül rá, hogy felette fekete, alatta pedig üres mező van, vagy hogy tőle balra fekete, jobbra pedig üres mező található. Ha a mező a keresztrejtvény szélénél van, akkor a keresztrejtvény szélét fekete mezőnek tekintjük.
Minta megoldás:
Radnai Bálint 9. osztályos tanuló (Veszprém, Lovassy László Gimnázium) megoldása: main.cpp
Statisztika:
13 dolgozat érkezett. 10 pontot kapott: Fényes Balázs, Kazal Soma, Kovács 246 Benedek, Mócsy Miklós, Nagy Ábel, Olexó Gergely, Radnai Bálint, Rittgasszer Ákos, Szemerédi Levente. 9 pontot kapott: Kovács Balázs Marcell. 8 pontot kapott: 1 versenyző. 6 pontot kapott: 1 versenyző. 5 pontot kapott: 1 versenyző.
A KöMaL 2015. májusi informatika feladatai
|