Loading [MathJax]/jax/output/HTML-CSS/jax.js
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. 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 (5N,M15) 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