A KöMaL 2008. 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ű feladatokA beküldési határidő 2008. október 15-én LEJÁRT. |
I. 190. Egy téglalap alakú edényben lévő olvadék kristályosodását, fagyását szimulációval szemléltetjük. Az edényt gondolatban egybevágó négyzet alakú részekre bontjuk, és az olvadék egyes részeinek állapotát egy N×M-es táblázatban tároljuk. Az edényben lévő olvadt anyagot 0, a kristályt pedig 1 jelöli a táblázat megfelelő celláiban. Az olvadék adott állapotában a kristályosodás azokban a cellákban megy végbe, ahol az olvadt anyag 8 szomszédja közül legalább 3 kristály.
Példa a szomszédságra:
A kristályosodás folyamatának párhuzamosságát azzal biztosítjuk, hogy minden szimulációs lépésben az összes cellát megvizsgáljuk, és ha szükséges, az olvadt részt kristályosra változtatjuk. Az előbbi példában a középső 0 érték 1-re változik, mert három vele szomszédos cellában van kristály. Hasonlóan az első sor negyedik cellája is 1-re változik. A többi cella állapota ebben a szimulációs lépésben nem változik.
Készítsünk szimulációs programot, amely a bemeneti adatállományban megadott kristályokat tartalmazó olvadék teljes kikristályosodásának lépésszámát a standard kimenetre kiírja.
A program parancssori argumentuma legyen az olvadék mátrixát leíró adatállomány neve. A fájl első sorában két pozitív egész szám szerepel: az első a táblázat sorainak N számát (3N200), a második a táblázat oszlopainak M számát (3M200) adja meg. Az ezt követő N db sor mindegyikében M db érték szerepel, amely a megfelelő cellák állapotát (0 vagy 1) írja le.
A program kimenete egy pozitív egész szám, amely azt adja meg, hogy hány lépésben kristályosodik ki a teljes olvadék, vagy ha a szabályok figyelembevételével ez nem történik meg, akkor az ,,A kristályosodás leállt'' felirat.
Beküldendő a program forráskódja (i190.pas, i190.cpp, ...), valamint a program rövid dokumentációja (i190.txt, i190.pdf, ...), 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ó.
(10 pont)
I. 191. Egy mozit kedvelő diák feljegyezte a letölthető mozadat.txt állományba, hogy milyen filmeket nézett meg 2001. február 1. és 2008. február 29. között.
1. Készítsünk adatbázist i191 néven. A mellékelt adattáblát, amely a filmek címét, a megtekintés időpontját és a jegyek árát tartalmazza, importáljuk az adatbázisba moz_adat néven. A txt típusú adatállomány tabulátorokkal tagolt és az első sora tartalmazza a mezőneveket.
2. Beolvasás után állítsuk be a megfelelő adatformátumokat és a kulcsot. A táblába vegyünk fel új azonosító mezőt.
Készítsük el a következő feladatok megoldását. A zárójelben lévő néven mentsük el azokat.
3. Lekérdezéssel írassuk ki a születésnapján, április 14-én megtekintett filmek minden adatát. (3szulinapiak)
4. Adjuk meg lekérdezés segítségével azokat a dátumokat, amikor egy nap több filmet is megnézett. Ezekben az esetekben az egy nap megtekintett filmek számát is írjuk ki. (4tobbfilm)
5. Soroljuk fel lekérdezés segítségével, hogy havonta hány filmet nézett meg és mennyit költött mozijegyre. A listában szerepeljen az év, a hónap, a filmek száma és a jegyek árának összege. (5havibontas)
6. Határozzuk meg lekérdezés segítségével, hogy 2001. február 1. és 2008. február 29. között mely hónapokban nem volt moziban. (6szunet)
7. Készítsünk lekérdezést, amely a cím egy részét paraméterként megadva kiírja az ennek megfelelő filmcímeket ábécé-sorrendben. (7lista)
8. Soroljuk fel azokat a filmeket, amelyeket többször látott, de különböző árú mozijegyekkel. (8kulonbozo)
9. Határozzuk meg lekérdezés segítségével, hogy a filmek hány százalékát látta nyári hónapokban (6., 7. és 8. hónap). (9nyari)
Beküldendő az adatbázis (i191.odb, i191.mdb), vagy egy szöveges dokumentum (i191.txt, i191.pdf, ...), amelyben szerepel a tábla létrehozása és a lekérdezések áttekinthető SQL kódja, valamint egy rövid dokumentáció (i191dok.txt, i191dok.pdf, ...), amelyből kiderül az alkalmazott adatbázis-kezelő neve, verziószáma.
(10 pont)
I. 192. Készítsünk prezentációt a magyar olimpiai csapat pekingi szereplésének bemutatására. Az összes dia bal felső sarkában legyen az olimpia hivatalos logója, jobb felső sarkában egy magyar zászló, háttérként egy olyan kép, amelynek alsó része egy dobogó. A diákon időrendben, naponként egy dián, mutassuk be a magyar csapat érmeit úgy, hogy a képtér felső részében soronként megjelenítjük mindegyik szerzett éremnél a sportág hivatalos logóját, a sportág nevét, a versenyszámot, valamint a versenyző, illetve csapat esetén a versenyzők nevét, helyezését; ezzel egy időben a dobogó megfelelő fokára helyezzük el a versenyző, illetve a csapat képét. Például az augusztus 11-ét bemutató dián szerepeljen a következő sor:
Az augusztus 24-ét bemutató dián pedig a következő sor:
Ugyanakkor a dobogó megfelelő fokán jelenjen meg a versenyzők fényképe. A sorok 1-2 másodpercenként, a diák az utolsó versenyző megjelenése után 4-5 másodperccel automatikusan kövessék egymást. A megoldáshoz szükséges képek az olimpia hivatalos oldaláról (is) letölthetőek. Csak azokról a napokról készítsünk diát, amelyeken a magyar csapat szerzett legalább egy érmet.
A naponkénti eredményeket követően az utolsó dián a dobogó megfelelő fokain annyi arany, ezüst és bronzszínű logója jelenjen meg az egyes sportágaknak, ahányat a magyar versenyzők szereztek az adott sportágból.
Beküldendő a prezentáció (i192.ppt, i192.odp, ...), valamint egy rövid dokumentáció (i192.txt, i192.pdf, ...), amely megadja, hogy a bemutató melyik prezentációkészítő szoftver hányas számú verziójával készült.
(10 pont)
S-jelű feladatokA beküldési határidő 2008. október 15-én LEJÁRT. |
S. 37. A Bergengóciai Félvezetőgyár kétmagos processzorok bevezetését tervezi. Az új processzorok esetében is szeretnék alkalmazni azt a már jól bevált módszert, hogy az egyes legyártott példányokat nem előre meghatározott sebességtartományokba sorolják, hanem minden egyes példányra méréssel meghatározzák azt a legnagyobb órajelet, amelyen az hosszú távon biztonságosan üzemeltethető, és a processzort e frekvencián árulják. Mivel a legyártott chipek minősége széles tartományban változik, a gyártó kínálatában a legkülönfélébb órajeleken üzemelő processzorok megtalálhatók.
A vállalat új, kétmagos processzorai gyakorlatilag két egymagos processzorból állnak, melyeket egybe tokoznak. Noha az egyenkénti gyártás miatt a magok legnagyobb órajele eltér, a két mag csak azonos frekvencián üzemeltethető, a kettő minimumán. A gazdaságosság érdekében ezért a magokat úgy kell párosítani, hogy legnagyobb órajelük csak kis mértékben térjen el.
Írjunk programot, mely a legyártott magok közül a lehető legtöbbet párosítja úgy, hogy egy páron belül a két mag legnagyobb órajele egy adott tűréshatárnál nem tér el jobban egymástól. A program a legyártott processzormagok legnagyobb órajeleit fájlból olvassa, az eredményt fájlba írja. A bemeneti, illetve kimeneti fájlok nevei az első, illetve második parancssori argumentumok.
A bemeneti fájl első sorában két, szóközzel elválasztott egész szám: a legyártott processzormagok száma és a 0T1000 tűréshatár szerepel, az ezt követő N sor mindegyikében pedig egy-egy egész szám: az (i+1)-edik sorban az i-edik mag megengedhető legnagyobb órajele. A kimeneti fájl első sorában az elkészíthető párok maximális P száma szerepeljen, az ezt követő P darab sorban pedig a párokban szereplő két mag sorszáma egymástól szóközzel elválasztva. A párok kiírásának sorrendje tetszőleges, több megoldás esetén bármelyik megadható.
Beküldendő a program forráskódja (s37.pas, s37.cpp, ...), valamint a program rövid dokumentációja (s37.txt, s37.pdf, ...), 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ó.
(10 pont)
Figyelem!
Az informatika feladatok megoldásait ne e-mailben küldd be! A megoldásokat az Elektronikus munkafüzetben töltheted fel.