Középiskolai Matematikai és Fizikai Lapok
Informatika rovattal
Kiadja a MATFUND Alapítvány
Már regisztráltál?
Új vendég vagy?

A KöMaL 2009. szeptemberi 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ű feladatok

A beküldési határidő 2009. október 12-én LEJÁRT.


I. 217. A kristályosodás folyamatát és eredményét például az itt leírt módon vizsgálhatjuk. Legyen N kristályosodási góc egy M×M-es, olvadt anyagot tartalmazó reakciótérben. Az olvadékot fehér és minden növekvő kristályt más szín jelöl. A kristályosodás a már kivált (színes) kristály felszínén megy végbe, tehát a kristály reakciótérbeli oldalszomszédai felé folytatódik. Minden kristály azonos sebességgel, 1 réteggel nő lépésenként.

Az 1. ábrán egy példa látható a kristályok növekedésére 3 lépés után.

1. ábra

A kristályosodás folyamatának párhuzamosságát azzal biztosítjuk, hogy minden lépésben az összes növekvő kristályt megvizsgáljuk, és ha lehetséges, a felszínükre újabb réteg válik ki. Csak az olvadt anyag tud kristályosodni, a kivált anyag már nem változhat.

Készítsünk szimulációs programot, amely N (3\leN\le15) kristályosodási gócot véletlen helyre elhelyez az M×M (10\leM\le600) reakciótérben. A kristályok véletlenszerűen választott színnel növekedjenek ott, ahol még olvadék van. A szimuláció addig tartson, ameddig az összes olvadék ki nem kristályosodik.

Egy lehetséges eredmény látható a 2. ábrán.

2. ábra

Beküldendő a feladat megoldását tartalmazó forrás és projektállományok (az .exe és más, a fordító által generált kiegészítő állományok nélkül) egy tömörített mappában (i217.zip).

(10 pont)

megoldás, statisztika


I. 218. Az informatikában jártas felhasználók, a fórumok és blogok mellett, igen hatékonyan használják a levelezési listákat is. A nyílt listák minden beérkező levelet továbbítanak, a zárt listák viszont csak a listatagok leveleit.

Az alábbi adatbázis egy listaszerver által kezelt listákat, azok forgalmát és tagságát tartalmazza. (Az adatbázis által tárolt adatok kitaláltak.)

1. Készítsünk új adatbázist levlista néven. A mellékelt négy adattáblát (lista.txt, szemely.txt, tagsag.txt, log.txt) importáljuk az adatbázisba a fájlnévvel azonos lista, szemely, tagsag és log táblanéven. Az állományok tabulátorral tagolt, UTF-8 kódolású szövegfájlok, az első sorok a mezőneveket tartalmazzák. A létrehozás során minden táblában állítsuk be a megfelelő típusokat, és jelöljük meg a kulcsnak alkalmas mezőt. A log táblához adjunk hozzá az néven egyedi azonosítót.

Táblák

lista (nev, admin, zart)

nev A lista neve (szöveg), ez a kulcs.
admin A lista adminisztrátorának e-mail címe (szöveg).
zart Ha a lista zárt, akkor arra csak a listatagok leveleit továbbítja (logikai).

szemely (nev, email)

email A személy e-mail címe (szöveg), ez a kulcs.
nev A személy neve (szöveg), megadása nem kötelező.

tagsag (az, email, listanev, felirido, leirido)

az A tagság azonosítója (szám), ez a kulcs.
email A listatagot azonosító e-mail cím (szöveg).
listanev A listát azonosító listanév (szöveg).
felirido A listatag ekkor iratkozott fel a listára (dátum). Ettől az időponttól a személy zárt listára küldött leveleit a szerver kipostázza.
leirido A listatag ekkor iratkozott le a listáról (dátum). Ha még nem iratkozott le, a mező üres. Zárt lista esetén a tagságukat megszüntetett személyek levelet a szerver nem postázza ki.

log (az, listanev, felado, ido)

az A logfájl-bejegyzés azonosítója (számláló), ez a kulcs.
listanev A listaszerverre érkező levél címzettje (szöveg).
felado A levél feladójának e-mail címe (szöveg).
ido a levél érkezési ideje (dátum).

A következő feladatok megoldásánál a lekérdezéseket és a jelentést a zárójelben olvasható néven mentsük. Ügyeljünk arra, hogy a megoldásban pontosan az előírt oszlopok szerepeljenek, felesleges adatokat ne jelenítsünk meg.

2. Készítsünk lekérdezést, amely ábécérendben jeleníti meg a tel.hu-s címmel rendelkező személyek nevét (2tel).

3. Készítsünk jelentést, amely adminisztrátoronként csoportosítva sorolja fel a levelezési listákat. Az adminisztrátor e-mail címe mellett jelenjen meg a kezelt listák száma (3admin).

4. Készítsünk lekérdezést, amely listánként megadja, hogy a listaszerverre hány zárt listára címzett levél érkezett 2007-ben (4zart2007).

5. Készítsünk lekérdezést, amely megadja, hogy melyik listán indult meg utoljára a forgalom. Adjuk meg a lista nevét és az első levél érkezési idejét (5utolso).

6. Készítsünk lekérdezést, amely megadja, hogy jelenleg mely listák tagjaihoz juttathatja el leveleit az a.and@suli.eu e-mail című személy (6and).

7. Készítsünk lekérdezést, amely megadja azokat a listákat, amelyeknek 2008. január 1-jén 0 órakor 40 főnél több tagja volt (7tagszam).

8. Készítsünk lekérdezést, amely kilistázza a matek listáról kiküldött leveleket. Jelenítsük meg a feladó e-mail címét és a levél érkezési idejét. A megjelenítés sorrendjét a levél érkezési ideje szabja meg (8matek).

Beküldendő az adatbázis (i218.odb, i218.mdb) valamint egy rövid dokumentáció (i218.txt, i218.pdf), amelyből kiderül az alkalmazott adatbázis-kezelő neve, verziószáma egy i218.zip tömörített állományban.

Az adatbázisba importálandó adattáblák: i218source.zip

(10 pont)

megoldás, statisztika


I. 219. A www.kísérletek.hu (ékezetes domain) oldalon gyakorlati fizika feladatok, érdekes kísérletek találhatók, melyek egy részét a honlap alkotói filmeken is bemutatják. Készítsünk kb. félperces videoklipet a honlap népszerűsítésére annak öt szabadon választott kísérlete egyes részleteinek felhasználásával.

A filmet például az ingyenesen használható Pinnacle VideoSpin vagy a Cinelerra programmal készíthetjük el (letölthetőek a www.videospin.com, illetve a cinelerra.org oldalról). A filmbetétekből a számunkra legérdekesebb részeket vágjuk ki, az egyes részek között alkalmazzunk átmeneteket, ahol ezt érdemesnek gondoljuk, helyezzünk el feliratokat. A filmrészletek eredeti szövege helyett saját vagy kedves, csengő hangú ismerősünk hangján röviden ismertessük a kísérleteket és népszerűsítsük a honlapot.

Beküldendő az elkészült film Windows Media vagy MPEG-4 formátumban (i219.wmv, i219.mp4), élvezhető minőségű tömörítési beállításokkal, de 2 MB-nál kisebb méretben, és egy rövid leírás arról, hogy az egyes filmrészletek pontosan mely témakörök és kérdések filmjeiből származnak (i219.txt, i219.pdf) egy tömörített mappában (i219.zip).

(10 pont)

megoldás, statisztika


S-jelű feladatok

A beküldési határidő 2009. október 12-én LEJÁRT.


S. 46. A legtöbb hiedelemvilággal ellentétben a bergengóc mitológiát mélyen áthatják a természettudományok világából származó elemek. Úgy tartják például, hogy balszerencsét hoz, ha egy hajó fővitorlája nem négyzet alakú, vagy oldalhossza -- méterben kifejezve -- nem kettőhatvány.

Ennek megfelelően a kikötőkben is kizárólag négyzet alakú, kettőhatvány oldalhosszú vitorlavásznakat kínálnak, illetve a varrodákban is csak négy egyforma méretű vászonból készítenek egy kétszer akkorát.

Készítsünk programot, mely a kikötőben kapható, különböző méretű vásznak árainak ismeretében meghatározza, hogy legolcsóbban mennyiért tehetünk szert egy kívánt méretű vitorlára.

A standard bemenet első sorában három, szóközzel ellátott egész szám: az eladásra kínált vitorladarabok 1\le N\le 1\,000\,000 száma, a készíteni kívánt vitorla 1\leA=2a\le2048 oldalhossza, illetve a varratás folyóméterenkénti 0\leV\le1000 költsége szerepel. Azt ezt követő N darab sor mindegyike két egész számot, egy-egy portéka 1\leBi=2bi\leA oldalhosszát és 1\le C_i\le 1\;000\;000\;000 árát tartalmazza. A sorok oldalhossz, majd ár szerint monoton növekvően rendezettek.

A standard kimenet egyetlen sorába egyetlen egész szám kerüljön: az a minimális összeg, amelyből elkészíthető a kívánt vitorla. (A teljes költség az alapanyag és az esetleges varratási díj összege.) Feltehetjük, hogy mindig van megoldás.

Beküldendő a feladat megoldását tartalmazó forrás és projektállományok (az s46.exe és más, a fordító által generált kiegészítő állományok nélkül), valamint a megoldás menetét bemutató dokumentáció egy tömörített mappában (s46.zip).

A kiadott mintabemenetek: s46teszt.zip. Ezek közül legalább ötre kell rendben lefutnia és formailag helyes eredményt adnia a programnak. Részletesebb információ a Versenykiírásban, ill. a tömörített csomagban.

(10 pont)

statisztika


Figyelem!

Az informatika feladatok megoldásait ne e-mailben küldd be! A megoldásokat az Elektronikus munkafüzetben töltheted fel.