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 2011. decemberi 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ő 2012. január 10-én LEJÁRT.


I. 280. Szilárd anyagokon folyadék átszivárgásának vizsgálatára, perkolációjára az I. 271. feladat statisztikai modell program készítését kérte. Egy n×n-es (1\len\le50) négyzet alakú terület -- az anyag függőleges metszete -- minden cellája p (0,00\lep\le1,00) valószínűséggel átengedi a folyadékot (például egy mikrorepedés alakul ki), és 1-p valószínűséggel pedig nem. Modellünket azzal bővítjük, hogy feltételezzük, a folyadék nyomása biztosítja, hogy a repedéshálózatban tetszőleges irányba, akár felfelé is áramolhat a folyadék. Az ábrán látható anyag átengedi a folyadékokat.

A lehetséges lépésirányok a cellák között a 8 szomszéd felé mutatnak. Készítsünk programot, amely a p valószínűség 0-ról való növelésével megkeresi az első átengedő állapotot. A négyzet n oldalhossza a megadott feltételek között tetszőleges lehet. A p valószínűség értékét 0,05-dal növeljük, amíg átengedő állapotot nem generálunk. Elegendő minden p értéknél egy táblázatot készíteni. Ezt az állapotot tetszőleges módon jelenítsük meg a képernyőn, amelyen az át- és nem átengedő cellákat, valamint egy lehetséges átvezető utat lehessen látni.

Beküldendő egy tömörített i280.zip állományban a program forráskódja (i280.pas, i280.cpp, ...), és a program rövid dokumentációja (i280.txt, i280.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)

megoldás, statisztika


I. 281. Az alábbi táblázat négy középiskola néhány osztályának természettudományos felmérésben elért eredményeit mutatja. A 30 feladatból álló feladatsor javításakor 0, 1, 2, és 9 kóddal lehetett értékelni az egyes feladatokat. A kódok jelentése: a 0, 1 és 2 egyben a feladatban elért pontot jelenti, míg a 9-es kód is 0 pontot ér, de még azt is jelzi, hogy a diák egyáltalán nem dolgozott a feladaton.

Készítsünk munkafüzetet i281 néven, mentsük a táblázatkezelő alapértelmezett formátumában és értékeljük ki az eredményeket az alábbiak szerint (a mintán néhány oszlopot elrejtettünk, hogy a megoldás jobb oldali része is látható legyen):

A feladat leírásában szereplő oszlopoktól jobbra, illetve az adatok alatt segédszámításokat végezhetünk. Amennyiben egy értéket nem tudunk kiszámítani, úgy szerepeltessünk helyette odaillő mennyiséget. Így az adott eredményektől függő további feladatokat is meg tudjuk oldani.

1. Nyissuk meg a honlapunkról letölthető term6forras.txt. UTF-8 kódolású szöveges állományt egy Term6 nevű munkalap A1-es cellától kiindulva. A táblázat első sorában az egyes feladatokra kapható maximális pontszámok szerepelnek.

2. Szúrjuk be a második sorba a mintának megfelelően a táblázat fejlécét, és az első sort rejtsük el.

3. Az AI:AL oszlopok második sorába írjuk be a feladatok értékeléseként kapható kódokat, az alattuk lévő egyes sorokba pedig számítsuk ki függvény segítségével, hogy hányszor kapta az adott sorban lévő diák az adott oszlop fejlécében lévő kódot. A kiszámítást végző képlet legyen minden oszlopban és sorban másolható.

4. Az AM oszlopba számítsuk ki a diák által kapott összes pontszámot. Az oszlop fejléce az Elért pontszám szöveg legyen.

5. Az AN oszlopba számítsuk ki a diák által elérhető maximális pontszámot. Az oszlop fejléce az Elérhető pontszám szöveg legyen.

6. Az AO oszlop fejlécének a Tanulói eredmény szöveget írjuk be, és alatta számítsuk ki a diák teljesítményét az előző két oszlop értékéből. Az eredmények egész számként, százalékosan jelenjenek meg.

7. Az AP oszlop fejléce Osztályátlag legyen. Számítsuk ki minden egyes diák adata mellé az osztályának átlagát is. A számítást végző képlet legyen azonos az oszlop tetszőleges sorában.

8. A felmérés eredménye alapján minden diákot besorolunk 1-től 7-ig egy képességszintbe, illetve a leggyengébbeket az 1. képességszint alá (0-s szint). Készítsük el az alábbi táblázatot az AS2:AZ4 tartományban.

9. A táblázat és a tanuló teljesítményének felhasználásával adjuk meg az AQ oszlopban minden tanuló képességszintjét 0-tól 7-ig egész számként egy a teljes oszlopban azonos képlet fölhasználásával. A táblázatot úgy kell érteni, hogy a 3. képességszintűek azok, akik legalább 40%-ot értek el, de még nem érték el az 55%-ot. Az oszlop fejléce legyen Képességszint.

10. Rendezzük az adatokat az iskola, az osztály betűjele alapján és azon belül a diák teljesítménye szerint csökkenően.

11. Készítsünk a minta szerint oszlopdiagramot az átrendezés utáni első iskola első osztályának adatait fölhasználva. A diagram címe az iskola neve, a ,,6.'' utána a megfelelő osztály betűjele és a fölmérés időpontja, azaz 2012. január legyen.

Beküldendő egy i281.zip állományban a táblázatkezelő munkafüzet (i281.xls, i281.ods, ...), illetve egy rövid dokumentáció (i281.txt, i281.pdf, ...), amelyben szerepel a megoldáskor alkalmazott táblázatkezelő neve, verziószáma.

(10 pont)

megoldás, statisztika


I. 282. Az interneten több szabadon fölhasználható, vagy ingyenes próbaverziójú Javascript megoldás létezik diagramok weboldalon történő megjelenítésére. A legtöbbjükhöz hasznos súgó és dokumentáció is elérhető, így könnyen beépíthetjük őket saját programunkba. Készítsünk az egyik segítségével weboldalt, amely adatok beírását és grafikus megjelenítését teszi lehetővé.

Az adatok bevitelét az urlap.html oldalon végezzük. Ez az oldal tartalmazzon egy 10×10-es beviteli mezőkből álló táblázatot, melynek első sorába az adatok fejlécét, első oszlopába az egyes adatsorok nevét, az első sor első cellájába a később megjelenítendő diagram címét lehessen megadni. Az űrlap használatakor a táblázat többi cellájába egész számokat írunk. A táblázat azon részét tekintsük a diagram adattartományának, amelynek fejléce és adatsorának neve nem üres. A táblázat így kiválasztott részében üresen maradó cellákat vegyük nulla értékűnek. A táblázat után rádiógombok segítségével lehessen kiválasztani, hogy milyen típusú diagramot szeretnénk: oszlop, kör vagy vonal. Az űrlap utolsó részében ötféle színsorozatból lehessen egyet kiválasztani, mely a leendő diagram egyes adatpontjainak színét tartalmazza.

Az urlap.html oldal végén helyezzünk el egy parancsgombot, melynek megnyomására a diagram.html oldal töltődjön be. Ezen az oldalon jelenjen meg a diagram az előző oldalon fölvett adatokkal. Amennyiben oszlop- vagy vonaldiagramot rajzolunk, akkor legyenek tengelyek, a függőleges tengelyen vegyünk fel megfelelő beosztást, az adatpontok értékét azok fölött jelenítsük meg. Kördiagram esetén jelenjenek meg az egyes adatsorozatok nevei és hogy az adott adatpont hány százalékát teszi ki az egésznek.

Beküldendő egy tömörített i282.zip mappában a két HTML oldal és a működéshez szükséges további programállományok, valamint egy rövid i282.txt nevű dokumentáció, amiben szerepel a megoldáshoz alkalmazott Javascript diagramkészítő internetes elérhetősége.

(10 pont)

megoldás, statisztika


S-jelű feladatok

A beküldési határidő 2012. január 10-én LEJÁRT.


S. 67. Régen, amikor a számítógép-hálózatok többnyire még koaxiális kábelekből és BNC csatlakozókból álló láncok voltak, a Pokoli Rendszergazda egyik kedvenc hobbija volt a hálózati topológia menet közbeni átalakítása, és az ezt követő felhasználói reakciók monitorozása.

Sajnos az újabb és újabb hálózatépítési módszerek elterjedésével a fenti szórakozás sokat vesztett értékéből, így a Pokoli Rendszergazda elhatározta, hogy a régi szép idők emlékére hobbiját virtuális környezetben újraéleszti. Minket kért fel annak a programkomponensnek a kifejlesztésére, amely a hálózat állapotát, illetve a felhasználói visszajelzéseket szimulálja.

A szimulátor egy N darab összeköttetés nélküli számítógépből álló ,,üres'' hálózatból indul ki, majd összesen M darab hálózatépítési és diagnosztikai műveletet vár. Feladata, hogy az egyes műveletekről rendre eldöntse, hogy azok megvalósíthatóak-e, és a megvalósítható hálózatépítési műveleteket sorra végrehajtsa.

A hálózatépítési műveletek részletesen a következők:

-- add <A> <B>\ ahol 1\leA\neB\leN a két számítógép sorszáma, melyek között új (kétirányú) összekötést kell kiépíteni. A művelet megvalósítható, ha jelenleg mindkét számítógéphez legfeljebb 1 kábel csatlakozik, és az új összekötés nem eredményez kört.

-- remove <A> <B>\ ahol 1\leA\neB\leN a két számítógép sorszáma, melyek közötti közvetlen összekötést meg kell szüntetni. A művelet megvalósítható, ha A és B között vezet kábel.

Az alábbi diagnosztikai művelet pedig annak vizsgálatára szolgál, hogy az adott felhasználóktól várható-e visszajelzés a közeljövőben:

-- ping <A> <B>\ ahol 1\leA\neB\leN a két számítógép sorszáma, melyek közötti elérhetőséget vizsgáljuk. A művelet megvalósítható, ha A és B között vezet út a hálózatban.

Mindhárom műveletre a megvalósíthatóságtól függően ,,yes'', illetve ,,no'' választ kell adni.

A program 2\le N\le 1\;000\;000 és 0\le M\le 1\;000\;000 értékét a standard bemenet első sorában kapja, egyetlen szóközzel elválasztva. Az ezt követő M darab sor pedig egy-egy műveletet ír le a fenti formátumban.

A standard kimenetre szintén pontosan M darab sor kerüljön, minden sorba rendre a megfelelő művelet eredménye. A maximális pontszám eléréséhez a programnak legfeljebb néhány másodpercen belül le kell futnia a legnagyobb bemenetekre is.

Beküldendő egy tömörített s67.zip állományban a program forráskódja (s67.pas, s67.cpp, ...) az .exe és más, fordító által generált állományok nélkül, valamint a program rövid dokumentációja (s67.txt, s67.pdf, ...), amely tartalmazza a megoldás rövid leírását, és megadja, hogy a forrás melyik fejlesztő környezetben fordítható.

(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.