Az I. 403. feladat (2016. május) |
I. 403. A csucsok.txt nevű UTF-8 kódolású, szóközökkel tagolt szöveges állomány Magyarország 700 méternél nagyobb hegycsúcsainak nevét, magasságát, a hegység nevét, valamint GPS koordinátáit tartalmazza. Egy hegyhez több hegycsúcs is tartozhat. Az adatfájlban legfeljebb 300 hegycsúcs adata szerepel. Például:
A fenti példában a Hangyás-bérc nevű hegynek két feljegyzett csúcsa is van. Az első 863 m magas, a Börzsönyben található, északi szélessége 47,9409 fok, keleti hosszúsága 18,9366 fok.
Az adatfájlban ékezetes betűk és tizedesvessző szerepelnek. Megengedett lépés az ékezetes betűk lecserélése ékezet nélkülire, továbbá a tizedes vesszők lecserélése tizedes pontra, pl. Jegyzettömbbel vagy más szerkesztővel.
Készítsünk programot i403 néven a következő feladatok megoldására. A program futása során a képernyőre való kiíráskor utaljunk a feladat sorszámára.
1. Olvassuk be a fájlból a csúcsok adatait, és írassuk ki a képernyőre, hogy hány csúcs van az adatfájlban.
2. Kérjük be egy hegy nevének első betűit, és írassuk ki a képernyőre az ennek megfelelő hegycsúcs(ok) adatait. Ha az adott nevű hegy nem szerepel a fájlban, azt is jelezzük. (Például, ha a felhasználó a ,,Hangyá'' szöveget írja be, akkor jelenjen meg minden olyan hegycsúcs, amelynek neve a ,,Hangyá'' szöveggel kezdődik.)
3. Kérjük be egy hegység nevét, és írassuk ki a képernyőre legmagasabb hegycsúcsának nevét és magasságát. Ha az adott hegység nem szerepel az adatfájlban, azt is jelezzük.
4. Listázzuk ki a képernyőre ábécérendben az adatfájlban szereplő hegységek nevét, minden hegységet pontosan egyszer. A hegységek neve mellett jelenjen meg a hegységben lévő, 700 m-nél nagyobb hegycsúcsok száma is!
5. Kérjük be egy hegycsúcs nevét, és határozzuk meg, milyen távol van a Gellért-hegytől, ha a Gellért-hegy északi szélessége \(\displaystyle 47,483 \,736\,2\) fok, keleti hosszúsága \(\displaystyle 19,037\,055\) fok. (Két GPS koordinátákkal meghatározott pont távolságát légvonalban meghatározhatjuk például a Haversine-formulával (https://en.wikipedia.org/wiki/Haversine_formula.) A számításnál a hegycsúcsok magasságkülönbségét ne vegyük figyelembe. A Föld sugara 6371 km.
6. Melyik két hegycsúcs távolsága a legnagyobb? Jelenítsük meg a képernyőn a két hegycsúcs nevét és hegységének nevét, továbbá a távolságukat.
Beküldendő egy tömörített i403.zip állományban a program forráskódja és 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ó.
Letölthető fájl: csucsok.txt.
(10 pont)
A beküldési határidő 2016. június 10-én LEJÁRT.
Értékelés és mintamegoldás:
A feladatra hat megoldás született, 2 Visual Basic, 3 C# és 1 Java nyelven. Egy megoldás volt hiányos, egyben pedig kisebb hiba volt, a többiek teljes értékű megoldást adtak. Több versenyző is kihasználta a LINQ lehetőségeit.
A közölt mintamegoldás Olexó Gergely, a Budapesti Fazekas Mihály Gimnázium 11. osztályos tanulójának C# nyelven készült, a LINQ lehetőségeit is kihasználó megoldása.
Statisztika:
6 dolgozat érkezett. 10 pontot kapott: Kovács 246 Benedek, Nagy Ábel, Olexó Gergely, Rittgasszer Ákos. 9 pontot kapott: Szakali Benedek. 6 pontot kapott: 1 versenyző.
A KöMaL 2016. májusi informatika feladatai