A KöMaL 2006. májusi informatika feladatai
Kérjük, ha még nem tetted meg, olvasd el a versenykiírást.
Feladat típusok elrejtése/megmutatása:
I-jelű feladatokA beküldési határidő 2006. június 15-én LEJÁRT. |
I. 133. Írjunk programot síkbeli zárt töröttvonalak osztályozására. A töröttvonalat a csúcsaival adjuk meg; először a csúcsok számát, majd soronként két-két koordinátát. A program döntse el, hogy a töröttvonal pozitív körüljárású, negatív körüljárású vagy önmetsző. Azokat az eseteket is önmetszőnek tekintsük, amikor több csúcs egybeesik vagy egy csúcs egy másik oldal belsejébe esik.
Példák:
Beküldendő a program forráskódja (i133.pas, i133.cpp, ).
(10 pont)
I. 134. Készítsünk HTML és JavaScript eszközökkel webes egyenletszerkesztőt, ami a KöMaL internetes fórumán és az elektronikus munkafüzetben használt TeX parancsokból épít fel képletet.
Az oldal két részből álljon. Az alsó rész egy POST típusú webes űrlap (form) legyen, amely egy szövegdobozból és egy OK feliratú gombból áll. A gomb megnyomására a böngésző küldje el a http://www.komal.hu/forum/forum.cgi címre a következő adatokat:
Változó érték
a tk
src a szövegdoboz tartalma
Az oldal felső részén nyomógombokon és/vagy legördülő menükön szerepeljen a legfontosabb TeX parancsok közül néhány, de legalább 8 (pl. tört, alsó és felső index, szumma, görög betűk), a WYSIWYG egyenletszerkesztőkhöz hasonlóan. Ha a felhasználó valamelyik nyomógombra klikkel, a program a szövegdobozban, az aktuális pozíciótól kezdve illessze be a megfelelő TeX parancsot és a szükséges kapcsos zárójeleket. Például a tört jelre kattintás hatására írja be a ,,\frac{ }{ }'' szöveget, és a kurzort állítsa az első kapcsos zárójelpár közé.
A megoldások értékelésénél figyelembe vesszük az alkalmazott eszközöket, esztétikai szempontokat és azt is, hogy többféle böngészőn (Internet Explorer, Mozilla, Opera stb.) is helyesen működnek-e.
Beküldendő az oldal forráskódja (i134.html).
(10 pont)
I. 135. Egy iskolában az informatikatanárt bízták meg a nyári táborok adminisztrációjával, aki erre SQL adatbázist szeretne használni. A turnusok különböző napokon kezdődnek és végződnek, és a résztvevő diákok és tanárok által befizetendő összegek is különbözők. Az igazgató rendszeresen érdeklődik a tábor alakulásáról, és ilyenkor -- többek között -- a következő típusú kérdésekre vár választ:
1. Soroljuk fel a turnusok nevét, időpontját, a jelentkezett fiúk, lányok és tanárok számát.
2. Listázzuk ki a 3. turnusba jelentkezett fiúk névsorát.
3. Számítsuk ki, hogy augusztus 5-én hány diák és hány tanár lesz a táborban.
4. Számítsuk ki turnusonként, hogy összesen hány forintot fizettek már be a résztvevők.
5. Számítsuk ki turnusonként, hogy a jelentkezett diákok összesen mennyi pénz befizetésével tartoznak még.
6. Soroljuk fel, hogy az egyes diákok mennyi pénzt fizettek már be, és mennyivel tartoznak még.
Tervezzük meg az adatbázis tábláit úgy, hogy minden esetben elég legyen egyetlen (subquery-t nem használó) SQL lekérdezés, és adjuk meg ezeket a lekérdezéseket.
Beküldendő az adatbázistáblák definíciója és a hat SQL parancs egy-egy egyszerű szöveg fájlban (i135def.txt, i135kerd.txt).
(10 pont)
S-jelű feladatokA beküldési határidő 2006. június 15-én LEJÁRT. |
S. 18. Egy nagyméretű bináris adatfájl 8 bájtos, lebegőpontos számokat tartalmaz, legfeljebb 200 millió darabot. Írjunk programot, ami a számokat nagyság szerint sorba rendezi és visszaírja a fájlba. A program legfeljebb 50 MB memóriát használhat, az adatfájlon kívül más fájlt nem nyithat meg, és annak hosszát sem változtathatja meg. A programnak a fájl méretétől függően legfeljebb néhány perc alatt le kell futnia.
Az adatfájl nevét a parancssorban adjuk meg, pl. az
s18.exe adatok.dat
parancs hatására a program az adatok.dat nevű fájlt rendezze.
Beküldendő a program forráskódja (s18.pas, s18.cpp, ...) és dokumentációja.
(10 pont)
Figyelem!
Az informatika feladatok megoldásait ne e-mailben küldd be! A megoldásokat az Elektronikus munkafüzetben töltheted fel.