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. 384. feladat (2015. október)

I. 384. Készítsünk alkalmazást egyszerű (hurok- és többszörös élek nélküli) gráfok szerkesztésére. A program legyen alkalmas legföljebb 20 csúcsot tartalmazó gráf vizuális szerkesztésére, valamint szöveges állományba mentésére és beolvasására.

Szerkesztéskor az üres rajzterületen történő kattintás jelentse egy új csúcspont fölvételét. Két csúcsra kattintás egymás után jelentse az elsőt a másodikkal összekötő (irányítatlan) él berajzolását, ha még nem voltak összekötve; illetve az él törlését, ha már össze voltak kötve. A jobb egérgombbal történő hasonló művelet jelentse irányított élek rajzolását és törlését. Csúcsot a fölötte lenyomva tartott egérgombbal lehessen mozgatni. A csúcsok kapjanak 1-től kiindulva sorszámot. Csúcsot törölni a csúcsra történő dupla kattintással lehessen. Ha egy csúcsot törlünk, akkor természetesen minden élét is töröljük, ugyanakkor minden nála nagyobb sorszámú csúcs száma csökkenjen eggyel. Így egy \(\displaystyle N\) csúcsú gráfban a sorszámok mindig 1-től \(\displaystyle N\)-ig terjedjenek. A csúcsokat ábrázoljuk egyszerű körként, a sorszámukat írjuk a kör belsejébe. Az éleket szakaszként rajzoljuk, az irányított éleket a szakasz végén nyíllal jelöljük. A programnak nem kell megoldania olyan megjelenítési problémákat, hogy csúcsok körei átfedik egymást vagy egy nem a csúcsba befutó élt. Tételezzük föl, hogy a programot egy ügyes felhasználó kezeli, aki igyekszik a gráf jó elrendezésére.

A program az M gomb megnyomására vagy a menüből kiválasztva a Mentés funkciót írja egy graf.txt szöveges állományba a gráf adatait. Az állomány első sorában a csúcsok száma (\(\displaystyle N\)) és az élek száma (\(\displaystyle E\)), valamint a rajzterület szélessége és magassága legyen egy-egy szóközzel elválasztva, a következő \(\displaystyle N\) sorban a csúcsok grafikus szerkesztéskor alkalmazott koordinátái (egész számpárok szóközzel elválasztva), majd a következő \(\displaystyle E\) sorban a gráf élei (egész számpárok szóközzel elválasztva) szerepeljenek. A program a B gomb vagy a Beolvasás funkció esetén törölje a munkaterület és olvassa be a graf.txt állományt további szerkesztésre.

A megoldáshoz a versenykiírásban szereplő programozási nyelveket és fejlesztőeszközöket használhatjuk, illetve kliens oldalon futó webes alkalmazásokat is elfogadunk.

Beküldendő egy i384.zip tömörített állományban a program forráskódja, valamint a program rövid dokumentációja, amely tartalmazza a megoldás rövid leírását, és megadja, hogy a forrásállomány melyik fejlesztő környezetben fordítható.

(10 pont)

A beküldési határidő 2015. november 10-én LEJÁRT.


Mintamegoldásként Kazal Soma veszprémi (i384-ks.zip) és Olexó Gergely budapesti (i384-og.zip) versenyző C# nyelven készült megoldásait adjuk közre.


Statisztika:

2 dolgozat érkezett.
10 pontot kapott:Kazal Soma, Olexó Gergely.

A KöMaL 2015. októberi informatika feladatai