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. áprilisi 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ő 2011. május 10-én LEJÁRT.


I. 265. Valószínűleg mindenki ismeri a 15-ös játékot, ahol egy 4×4-es táblán 15 tologatható négyzet alakú elem és egy üres hely található. A játék során erre az üres helyre lehet a szomszédos elemek egyikét betolni. A 15 elemnek van egy helyes sorrendje, amely az értékek sorfolytonos növekvő elrendezését jelenti.

Az eredeti változat tehát 4×4-es tábláról szól, de változatlan szabályok mellett játszhatnánk N×M méretű táblán is.

Készítsünk programot, amely az N×M tábla eredeti állapotát helyreállító lépéssorozatot adja meg. A program első paramétere a bemeneti fájl, a második paramétere a kimeneti fájl neve legyen.

A bemeneti fájl első sora az N\le20 és M\le20 értékét tartalmazza, egymástól egyetlen szóközzel elválasztva. Az ezt követő N sor mindegyikében M darab szám található, egymástól pontosan egy szóközzel elválasztva, amely egy összekavart állapotot ír le. Az üres helyet a 0 jelöli.

A kimeneti fájl első sora az eredeti állapot helyreállításához szükséges -- nem feltétlenül minimális -- lépésszám legyen, a második sorban pontosan ennyi karakter szerepeljen. Minden karakter azt az irányt írja le, amely felé az üres helyre egy elemet tolunk. (B -- balról, F -- fentről, J -- jobbról, L -- lentről). Amennyiben a helyes sorrend a szabályos lépésekkel nem alakítható ki, az első sorban -1 szerepeljen.

Beküldendő egy tömörített i265.zip állományban a program forráskódja (i265.pas, i265.cpp, ...), valamint a program rövid dokumentációja (i265.txt, i265.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. 266. A számítógépes programok többsége a ,,véletlenszámok'' előállításra az úgynevezett lineáris kongruencia módszer speciális esetét használja.

Adott k darab egész szám (a1,a2,...,ak), ezek a kongruencia együtthatói és k darab kezdőérték (R1,R2,...,Rk). A soron következő álvéletlenszámot az előzőekből az


R_{n+1} =\big(a_1 \cdot R_{n-k+1} +a_2 \cdot R_{n-k+2} +\ldots +a_k \cdot R_n \big) \bmod M

formula alapján számoljuk.

Az előállított álvéletszámtól elvárjuk, hogy minden lehetséges értéket előbb-utóbb felvegyen, illetve a számsorozatot megfigyelve ne lehessen következtetni a később előállítottakra.

Táblázatkezelő segítségével a lineáris kongruencia módszerét alkalmazva állítsunk elő 1000 darab álvéletlenszámot és hasonlítsuk össze a táblázatkezelő által generált véletlenszámokkal. Az együtthatók, a kezdőértékek, és ezzel a szorzatösszeg tagjainak száma legyen k=10. A véletlenszámok 0 és 49 közöttiek legyenek, azaz M=50. A véletlenszámok előállításához használjuk az A:K oszlopokat. Az első sorokban szerepeljenek az együtthatók és a kezdőértékek, amelyek tetszőleges, általunk adott pozitív, kétjegyű számok.

Az összehasonlításhoz először a K oszlopban lévő véletlenszámokból hivatkozás segítségével alkossunk párokat az N:O oszlopba. Ezeket, mint koordinátákat felfogva, ábrázoljuk PontXY típusú diagramon. A diagramnak ne legyen feliratozása és a pontok töltsék ki a rendelkezésre álló helyet. Összehasonlításként a P:Q oszlopban a táblázatkezelő saját véletlenszám-függvényével hasonló számpárokat generáljunk és hasonló módon, de másik diagramon ábrázoljuk.

Második módszerként a Q oszloptól jobbra határozzuk meg, hogy az általunk készített véletlenszámok, illetve másik oszlopban a táblázatkezelő saját véletlenszám-függvényével melyik szám hányszor fordul elő. Rendezzük az előfordulásokat növekvő sorrendbe, és ábrázoljuk közös oszlopdiagramon. Ügyeljünk, hogy a táblázat újraszámításakor is a helyes eredmények jelenjenek meg.

Beküldendő egy tömörített állományban (i266.zip) a táblázatkezelő munkafüzet (i266.xls, i266.ods, ...), illetve egy rövid dokumentáció (i266.txt, i266.pdf, ...), amelyben szerepel a megoldáskor alkalmazott táblázatkezelő neve, verziója, valamint a megoldás rövid leírása.

(10 pont)

megoldás, statisztika


I. 267. A honlapunkról letölthető chelsea_minta.pdf fájllal tartalomban és formában egyező dokumentumot kell előállítanunk. A megoldáshoz szükséges állományokat a chelsea_forras.zip tömörített fájlban találjuk.

A dokumentum A4-es lapokon készült, balra 6, jobbra 7 cm széles margókkal. Bizonyos karakterek a forrásfájlban nem találhatók meg. Ezek használatára fokozottan figyeljünk.

Az a megoldás értékesebb, amely kihasználja a szövegszerkesztő hatékony munkát segítő eszközeit.

Beküldendő a szövegszerkesztő alapértelmezett formátumában készült dokumentum (i267.doc, i267.docx ,i267.ods, ...), valamint egy szöveges dokumentum (i267.txt, i267.pdf, ...), amely tartalmazza a használt szövegszerkesztő nevét és verzióját.

Minta:

Letölthető fájlok: chelseaforras.zip, chelseaminta.pdf

(10 pont)

megoldás, statisztika


S-jelű feladatok

A beküldési határidő 2011. május 10-én LEJÁRT.


S. 62. Egy cső alakú dobozba különböző sugarú labdákat dobunk. Készítsünk programot s62 néven, amely meghatározza, hogy a labdák milyen sorrendjénél lesz a teljes magasságuk a minimális.

A program a labdák számát, a doboz átmérőjét és a labdák sugarát fájlból olvassa be. Az eredményt, a labdák sorrendjét, illetve a minimális magasságot a képernyőre írja ki hat tizedes jegy pontosan. A bemeneti fájl neve parancssori argumentum legyen.

A bemenet első sorában a labdák száma (3\len\le30), a doboz átmérője (10\led\le100) és az ezt követő n sorban a labdák sugara (d/3<r<d/2) található.

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), valamint a megoldás menetét röviden bemutató dokumentáció (s62.txt, s62.pdf, ...) egy tömörített mappában (s62.zip).

(Project Euler 222 feladata nyomán)

(10 pont)

megoldás, statisztika


Figyelem!

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