Gábor Dénes Számítástechnikai Emlékverseny 2013/2014
2. forduló
Programozói kategória
Gábor Dénes Számítástechnikai Emlékverseny 2013/2014 Programozói kategória 2. forduló
Kedves Versenyző!
•
A feladatsor megoldására 180 perc áll rendelkezésre.
•
A forrásállományokat a forras_prog mappa megfelelő almappáiban találod!
•
A három, különböző felépítésű feladatsor közül egyet kell megoldanod. Választásod, továbbjutás esetén a döntőre is vonatkozik.
•
A feladatok megoldásához használható eszközök: a versenyző számára kijelölt számítógép, papír, toll, ceruza, lepecsételt jegyzetlap.
•
Hozz létre egy XXXXXXXXXXX szerkezetű könyvtárat, melybe a feladatok megoldásait mentheted! Az X-ek helyére a 11 jegyű oktatási azonosítód kerüljön.
•
Felhívjuk a figyelmedet a gyakori (10 percenkénti) mentésre!
•
Munkáidat a verseny végén ellenőrizd, hogy minden megoldás a megadott könyvtárban van-e, mert csak ezek értékelésére van lehetőség!
•
Javasoljuk, hogy a feladatokat először olvasd végig, utána egyenként oldd meg az egyes részfeladatokat!
•
Amennyiben a számítógéppel műszaki probléma adódna, jelezd a felügyelő tanárnak! A jelzés tényét és a megállapított hibát jegyzőkönyvezni kell. A kiesett idővel a verseny ideje meghosszabbítható.
A feladatok megoldásával maximálisan 100 pontot érhetsz el.
Jó versenyzést kívánunk!
Feladatok programozói, 2. forduló
1. oldal
2014. január 23.
Gábor Dénes Számítástechnikai Emlékverseny 2013/2014
2. forduló
Programozói kategória
1. Programozás – Népesség (érettségi típusú feladat) Az Európai Unió népességadatainak vizsgálata lesz a feladatod. A feladatok megoldásához szükséges állományok a forras_prog\nepesseg mappában találhatók nok.txt, ferfiak.txt és terulet.txt néven. Az első két állomány az Európai Unió 28 tagállamának évenkénti népességi adatait tartalmazza 2004-től 2013-ig országonként a nők illetve a férfiak esetében. Mindkét állomány minden sora 11, egymástól egyetlen szóközzel elválasztott adatot tartalmaz: az ország nevét, és az elmúlt tíz év népességi adatait. Néhány esetben nem állt rendelkezésre adat, ilyenkor kettős pont (:) szerepel az adatelem helyén. Málta 198099 199580 200838 201519 202734 204607 206203 206405 207695 209880 Luxemburg 224708 228156 232100 235792 239607 244835 249406 254619 261820 268412 Ciprus 354562 359321 364582 371514 380458 389926 399605 408758 418993 421040 Észtország 630137 628066 625996 623976 623108 622815 622754 622827 622482 618793 Lettország 1044465 1032109 1022058 1013791 1007041 992648 970931 947939 934812 926580
…
A terulet.txt állományban Európa államainak neve és területe szerepel, egymástól egyetlen szóközzel elválasztva. Ausztria 83858 Belgium 30510 Bulgária 110910 Ciprus 9250 Csehország 78866
…
Készíts programot, mely az Európai Unió tagállamaival kapcsolatos statisztikai feladatokat végez el. A program forráskódját nepesseg néven mentsd el! A program készítése során ügyelj a következőkre! • A képernyőre írást igénylő részfeladatok eredményének megjelenítése előtt írd ki a képernyőre a feladat sorszámát (például: 3. feladat). • Ha a billentyűzetről olvasol be adatot, jelenítsd meg a képernyőn, hogy milyen érték vár beolvasásra. • Ügyelj arra, hogy a feladatok eredményének megjelenítésekor ne csak az eredmény jelenjen meg, hanem az is, hogy mit határoz meg a feltüntetett érték! • Az adatszerkezet készítése során vedd figyelembe a használt programozási környezetben az adatok tárfoglalási igényét! 1. Olvasd be a nok.txt és a ferfiak.txt állományban talált adatokat, s ezen adatok felhasználásával oldd meg a következő feladatokat! Ha az állományok tartalmát nem tudod beolvasni, akkor Belgium, Németország, Magyarország, Ciprus és Málta adatait vedd fel a programba és úgy oldd meg a következő feladatokat!
Feladatok programozói, 2. forduló
2. oldal
2014. január 23.
Gábor Dénes Számítástechnikai Emlékverseny 2013/2014
2. forduló
Programozói kategória
2. Kérj be a felhasználótól egy ország nevet, majd írd ki a képernyőre az adott ország esetében a nők és a férfiak népességi adatait a vizsgált időszak utolsó 5 évében a következő formában! Vegyél fel egy új sort Összesen felirattal. Jelenítsd meg az egyes években a nők és a férfiak számának összegét! Például:
Belgium népessége 2009 Nők 5484429 Férfiak 5268651 Összesen
2010 5527684 5312221
2011 5598920 5401718
2012 5643070 5451780
2013 5674206 5487436
3. Határozd meg az egyes országok össznépességét évenként a nőkre és a férfiakra vonatkozó adatok felhasználásával. Az összesítésnél ügyelj arra, hogy nem minden adat ismert. Amennyiben egy adott évben akár nőkre, akár a férfiakra vonatkozóan is hiányzik a számadat, akkor az összesítésben 0-t vegyél fel! 4. Tárold el, hogy az egyes években mekkora volt az EU népessége! Az összesített adatok alapján válaszolj a következő kérdésekre 5. Melyik évben volt legnagyobb az Európai Unió népessége? 6. 2010-ben melyik országban éltek a legtöbben? 7. Írasd ki az egyes országok átlagos népességét a következő formában Például: Átlagos népesség (2003-2014 közötti időszak adatai alapján) ország1 neve XXXXXXX ország2 neve XXXXXX … 8. Az összesített adatokat osszes.txt állományba írd ki a következők figyelembe vételével! • Az állomány egy-egy sorába egy-egy ország népességi adatai kerüljenek a vizsgált 10 évben. • Az országok ABC sorrendben következzenek. • Minden számérték mellett jelenjen meg a „fő” elnevezés is. • Amennyiben az összesített érték nulla, akkor az állományba az „NA” betűpáros kerüljön bejegyzésre! 9. A terulet.txt állomány adatainak felhasználásával határozd meg országonként, hogy az egyes években mekkora volt a népsűrűség km2-ként. Az adatokat két tizedesjegy pontosságig jelenítsd meg! Népsűrűség (2004-2012) Egy km2-re jutó lakos
ország1 neve ország2 neve … Feladatok programozói, 2. forduló
2004 XXXXXXX XXXXXX
2006 XXXXXXX XXXXXX 3. oldal
2008 XXXXXXX XXXXXX
2010 XXXXXXX XXXXXX
2012 XXXXXXX XXXXXX 2014. január 23.
Gábor Dénes Számítástechnikai Emlékverseny 2013/2014
2. forduló
Programozói kategória
2. Programozás – Családfa (vizuális fejlesztő eszközök használata) A csaladfa.dat file adatai alapján grafikusan jelenítse meg a családfát! A megjelenítés formája szabadon tervezhető. A megjelenítés előtt futtasson le egy ellenőrzést az adatokon, és tájékoztasson a hibákról! Lehetséges hibák: •
A gyermek hamarabb született, mint valamelyik szülője.
•
Olyan kód szerepel a file második részében, ami nem szerepel az elején.
•
Csak férfi és nő kapcsolatát fogadjuk el (csak a feladat kedvéért).
•
A gyermek saját magának az apja, nagyapja, dédapja stb.
•
A gyermek a saját testvérének az őse.
•
Egy gyermek többször szerepel (pl. 1:2:6:7:8:6 nem jó).
•
Egy kapcsolat többször is előfordul.
•
A file szerkezete nem felel meg az alábbi leírásnak.
•
A csaladfa.dat file szerkezete a következő:
Először a nyilvántartott emberek kódja szerepel. A kódot kettőspont követi. A kettőspont utáni karakter a nemet jelenti. Közvetlenül a nemet jelölő karakter után jön a név. A nevet kettőspont követi. A kettőspont után szerepel a születés éve. Az emberek adatait üres sor zárja. Az üres sor után szerepelnek a származási adatok. Először az apa kódja szerepel. Az apa kódját kettőspont követi. A kettőspont után szerepel az anya kódja. Ezután a gyermekek kódja jön kettősponttal elválasztva. Például: 1:FKiss Csaba:1967 2:NNagy Erzsébet:1970 3:FBalogh Máté:1968 4:FKiss Vilmos:1980 5:NSzép Ilona:1980 6:NKiss Eleonóra:2000 7:NKiss Bea:2002 8:FKiss András:2004 9:NBalogh Éva:2003 10:NBalogh Ildikó:2004 11:NBalogh Péter:2005 12:FKiss Antal:1937 13:NÁcs Mária:1939 1:2:6:7:8 3:5:9:10:11 12:13:1
A file karbantartásához készítsen egy kezelőprogramot! Lehessen adatokat rögzíteni, törölni, módosítani, lépegetni a rekordok között. Feladatok programozói, 2. forduló
4. oldal
2014. január 23.
Gábor Dénes Számítástechnikai Emlékverseny 2013/2014
2. forduló
Programozói kategória
3. Programozás – „Jump” Sportáruház (webprogramozás) Hozz létre egy weblapot a „Jump” Sportáruház részére! A weblap szerkezete a következő legyen: fejléc div (neve:fejlec) menü div (neve:menu)
kiválasztott menük tartalma div (neve:tartalom)
A következő beállításokat stíluslappal hozd létre, amit csatolj a laphoz: háttérkép a hatter.jpg kép legyen A betűk színe: #3e047c A táblázat 80% széles, és szegélyének színe: #fe5604 A menü betűi felett, ha elhúzzuk az egeret, változzon a betű színe fehérre! A div-ek szélessége 80%-a legyen a teljes weblapnak. A menü div szélessége 30%-a a fejléc divnek. A fejléc div tartalmazza a sportáruház nevét és logóját, valamint egy flash animációt. •
Készítsd el a logót, mely 200 px magas legyen, és tartalmazza a „Jump” szót!
•
Az animáció tartalmazzon egy statikus képet háttérként, valamint váltakozva beúszó tartalmat: először a sportáruház neve, azután a címe, végül pedig az elérhetőségek jelennek meg. Az animáció lejátszása ismétlődjön folyamatosan!
A menü div tartalmazza a következő 3 választható menüt: Rólunk Termékeink Rendelés A kiválasztott menük tartalma div-be töltődjön be az a menü, amit a felhasználó kiválaszt. A RÓLUNK lapon jelenjen meg a rolunk.txt fájlban található szöveg. Használd fel a sb1.jpg és sb2.jpg képet is! Formázd meg ízlésesen! A TERMÉKEINK lapon 2 oszlopos 6 soros táblázatban jelenjenek meg a választható termékek. A bal oldali oszlopban a képek, a jobb oldali oszlopban az eszköz megnevezése. Minden kép egyforma nagyságú legyen! Használd fel a feladathoz csatolt képeket (t1.jpg...t6.jpg)! A termékek nevei a termekek.txt fájlban találhatók. A RENDELÉS lapon a termékeket lehessen legördülő menüből választani! A termékek árai az arak.txt fájlban találhatók! A termék mellett jelenjen meg egy szövegdoboz, ahova a darabszámot írhatjuk! A végén helyezz el egy SZÁMOLJ! feliratú gombot, amely kiszámolja a fizetendő összeget a megrendelt darabszámtól függően! • Részletesen írja ki, melyik termék lett kiválasztva, hány darabot kérnek, és írja ki a végösszeget! Feladatok programozói, 2. forduló
5. oldal
2014. január 23.