Az I. 315. feladat (2013. február) |
I. 315. Azt kaptuk feladatul, hogy készítsük el a KöMaL pontversenyén részt vevő iskolák rangsorát. A lista évenként készüljön, a sorrend az induló diákok száma szerint legyen csökkenő. A 2010/2011-es tanév listája például a
http://www.komal.hu/eredmeny/eredmeny.h.shtml?a=isklist&ev=2010 címen érhető el. Az url utolsó négy karakterének értelemszerű módosításával a többi év adatai is hozzáférhetők 2001-től.
A rangsor az alábbi táblázatos formában készüljön:
A feldolgozást kézzel is elvégezhetnénk, azonban az meglehetősen időt rabló megoldás, ezért egy tapasztaltabb informatikustól kértünk tanácsot. Ő ránézett néhány ilyen oldalra, majd azt mondta, PHP nyelven írt programmal oldaná meg a feladatot. Mivel PHP-ben nem, de más nyelven tudunk programozni, ezért megkértük, hogy vázolja a megoldást. A vezérlési szerkezetek és néhány utasítás ismerősnek tűnt, ezért csak néhány szót, kifejezést jegyeztünk le, amely ,,jól jöhet'': strip_tags, explode, asszociatív tömb. A program fejlesztéséhez a XAMPP multiplatform eszközt ajánlotta és megemlítette, hogy a PHP-ről minden megtalálható az online dokumentációban a www.php.net címen.
Tehát a feladat adott: írjunk programot PHP nyelven, amely például a 2009/2010-es tanév rangsorát az i315.php?ev=2009 címen megjeleníti a böngészőben.
Beküldendő a program forráskódja (i315.php) és rövid dokumentációja (i315.txt, i315.pdf, ...), amely tartalmazza a megoldás rövid leírását, és megadja a megoldás során használt PHP verziószámát.
(10 pont)
A beküldési határidő 2013. március 11-én LEJÁRT.
A feladat nem volt túlságosan nehéz, a kitűzéskor megadott segítség elegendő volt működő program készítéséhez, ennek ellenére kevés megoldás érkezett.
A megoldás során problémát jelentett, hogy a 2007 előtti éveket másképpen kellett - volna - kezelni a fővárosi iskolák miatt. Ezt sajnos csak egy beküldő vette észre, de ő sem kezelte.
Egy rendezési feladatnál mindig felmerül, mi határozza meg a sorrendet holtverseny esetén. A többség sem a programban, sem a dokumentációban nem utalt erre a problémára.
A php script HTML dokumentumot állít elő, így vizsgáltuk, hogy szerepel-e title tag - a feladathoz köthető tartalommal - és a http://validator.w3.org/ oldal segítségével megnéztük azt is, hogy az oldal helyes-e. A validálás során egy-egy error előfordult, de ezek olyan helyen jelentkeztek (doctype, meta tag), amit túl szigorú lett volna pontlevonással büntetni az egyik első php próbálkozás esetén.
A maximális pontszámmal értékelt Fényes Balázs kódját tesszük közé. (Ő a 2007 előtti adatok problémájára utalt a dokumentációban.) i315.php.zip
Statisztika:
5 dolgozat érkezett. 10 pontot kapott: Fényes Balázs. 8 pontot kapott: 2 versenyző. 7 pontot kapott: 1 versenyző. 5 pontot kapott: 1 versenyző.
A KöMaL 2013. februári informatika feladatai