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 2014. márciusi 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ő 2014. április 10-én LEJÁRT.


I. 343. Egy N×N-es (1\leN\le50) tábla cellái üres vagy színes négyzetek. A táblát függőlegesre állítva a színes négyzetek a legalacsonyabb üres helyet foglalják el, azaz a gravitáció miatt egymásra csúsznak. Háromféle: piros, kék és zöld színű négyzet lehetséges, amelyeket P, K és Z betűk jelölnek, az üres cellát a . karakter. A táblát szegély veszi körbe, ami megakadályozza, hogy a színes négyzetek kiessenek.

A táblát balra, jobbra, illetve függőlegesen át lehet forgatni. A forgatás hatására a színes négyzetek újra a legalacsonyabb szabad cellába csúsznak.

A tábla egyik oldalán egy nyílás van, amely induláskor a tábla legalsó sorának K-adik (1\leK\leN) oszlopába esik. Ezen keresztül a felette lévő színes négyzetek kicsúsznak, azaz a táblából törlődnek.

K=4 esetén:

A tábla forgatását egy utasítássor adja meg. Az utasítássor B, J és F betűkből áll. A B a balra, a J jobbra és az F a függőleges átforgatást írja le.

Készítsünk programot i343 néven, amely a tábla forgatását leíró utasítássort végrehajtja.

A program első parancssori argumentuma a táblát és az utasítássort leíró adatállomány neve legyen. A fájl első sorában N (1\leN\le50) a tábla méretét és K (1\leK\leN) a nyílás helyét adja meg. Az ezt követő N sor a tábla indulás előtti cellánkénti tartalmát adja meg, majd a rákövetkező sorban a forgatásokat leíró utasítássor (1\lekarakterek száma\le50) következik.

A parancssor második argumentumaként megadott kimeneti állomány első három sorába az utasítássor végrehajtása utáni színes négyzetek számát írjuk. Az ezt követő N sorba a tábla forgatások utáni állapotát adjuk meg cellánként.

Beküldendő a program forráskódja (i343.pas, i343.cpp, ...) és rövid dokumentációja (i343.txt, i343.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. 344. Hazánk egyik legnagyobb érdeklődésre számot tartó sporteseménye a nyár közepén évről-évre megrendezésre kerülő Formula 1-es verseny a mogyoródi Hungaroringen. Ez a feladat a 2013-as verseny adatait dolgozza fel. Nyissuk meg a honlapunkról letölthető tabulátorokkal tagolt, UTF-8 kódolású f1.txt állományt a táblázatkezelő programban. Mentsük a táblázatot i344 néven a táblázatkezelő program alapértelmezett formátumában.

A megoldás során vegyük figyelembe a következőket:

- A megoldás során törekedjünk képlet, függvény és hivatkozás használatára.

- A megoldás során az R oszloptól jobbra, illetve az 50. sor alatt végezhetünk segédszámításokat.

1. Határozzuk meg az egyes (nem kiesett) versenyzők futamidejét órában, és a le nem körözöttek esetén (annyi kört mentek, mint a verseny köreinek száma) a győzteshez képesti beérkezési időt másodpercben.

2. A B30:B32 tartományban jelenjen meg az első három helyezett versenyző átlagsebessége km/h mértékegységben.

3. A B33-as cellában jelenjen meg annak az országnak a sportban használatos jelzése, ahonnan a versenyzők legtöbbje érkezett.

4. A nem lekörözött versenyzőknél jelenjen meg az a távolság, amennyire a célvonaltól lettek volna a leintés pillanatában, amennyiben folyamatosan az átlagsebességükkel haladtak volna.

5. Írjuk az A37-es cellába a ,,Csapatpontszámok'' szöveget. A következő 11 sorban az A oszlopban névsorban jelenjenek meg a csapatnevek képlet segítségével. Mellettük a B oszlopban a csapat összpontszáma látszódjon, vagy maradjon üres, ha a csapat egyik pilótája sem szerzett pontot. (A megoldásnál felhasználhatjuk azt a tényt, hogy minden csapatnak két versenyzője indul a futamon.)

6. A csapat oszlopcímke alá a modell alapján hozzuk létre a csapat nevét, a név a modell neve, leválasztva róla a szöveg végén egy szóközzel elválasztott azonosítót. Például a Lotus E21 modellnévből a csapatnév ,,Lotus''.

7. Ha az A35-ös cellába beírunk egy érvényes helyezést, akkor a B35-ös cellában jelenjen meg a csapat eredménye az alábbi minták szerint:

A35 B35
5 Fernando Alonzo (ESP) a Ferrari pilótája, csapattársa, Felipe Massa (BRA) hátrébb, a 8. helyen végzett.
10 Pastor Maldonado (VEN) a Williams pilótája, csapattársa, Valtteri Bottas (FIN) kiesett.
4 Mark Webber (AUS) a Red Bull pilótája, csapattársa, Sebastian Vettel (GER) előrébb, a 3. helyen végzett.

8. A munkalapon a kiszámított és fizikai tartalommal rendelkező cellákban jelenjen meg a mértékegység (h, s, km/h, m).

9. A versenyzők adatait tartalmazó tábla fejrészét formázzuk meg a minta alapján.

10. Hozzunk létre egy új munkalapot pepita néven. Ennek a munkalapnak a celláit állítsuk négyzet alakúra. Ennek a munkalapnak az A1 és B1 cellájába két tetszőleges, 250-nél nem nagyobb pozitív egész számot írhatunk. Alkalmazzuk a megfelelő módszert, hogy a beírt adatoktól függően a C3 cellától kezdve jelenjen meg a Formula 1 legendás pepita (fekete-fehér) zászlója, amellyel a futamokat leintik, mégpedig annyi oszlopa legyen amennyi az A1 cella értéke, és annyi sora, mint amekkora értéket a B1 cella tartalmaz. A munkalap többi cellája maradjon üres, se alap-, se származtatott adat ne szerepeljen benne.

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

Minták:

Letölthető fájl: f1.txt

(10 pont)

megoldás, statisztika


I. 345. Az elmúlt néhány száz év emlékeit levéltárakban kutathatjuk. Felmerülhet a kérdés, hogy miképpen őrizzük, sőt, őrizzük-e egyáltalán a digitális korunk emlékeit jelentő weblapokat.

Korunk egyik levéltára a http://web.archive.org címen lelhető fel. Válasszunk ki öt weblapot és elemezzük azok fejlődését. Figyeljük az egyes weblapok időbeli fejlődését és az egyes ,,korszakok'' általánosan megjelenő formai és tipikus tartalmi jellemzőit. A weblapok között legyen egy hírportál, egy televíziós portál, egy sportegyesület, egy magyar vállalkozás, és a tanuló iskolájának weblapja.

Beküldendő PDF formátumban (i345.pdf), a visszatekintésünket tartalmazó, néhány ezer karakteres, képekkel illusztrált leírás.

(10 pont)

megoldás, statisztika


S-jelű feladatok

A beküldési határidő 2014. április 10-én LEJÁRT.


S. 88. Adott egy irányítatlan gráf \(\displaystyle N\) (\(\displaystyle 1 \le N \le 100\;000\)) csúccsal és \(\displaystyle M\) (\(\displaystyle 1 \le M< N\)) éllel. Számítsuk ki, hogy hányféleképpen lehet az éleket úgy irányítani, hogy minden csúcsból legfeljebb egy él induljon ki. Adjuk meg ennek a számnak az 1000000007-tel vett osztási maradékát.

A program olvassa be a standard input első sorából \(\displaystyle N\)-et és \(\displaystyle M\)-et, majd a következő \(\displaystyle M\) sorból az \(\displaystyle a_i\), \(\displaystyle b_i\) (\(\displaystyle 1 \le a_i, b_i \le N\)) szóközzel elválasztott egészeket, melyek mindegyike egy-egy irányítatlan él két végpontját jelöli. Mivel a gráf nem feltétlenül egyszerű, ezért ugyanaz a számpár többször is szerepelhet a bemenetben. Írjuk a standard output első és egyetlen sorába a lehetőségek számát modulo 1000000007.

Pontozás és korlátok: A programhoz mellékelt, a helyes megoldás elvét tömören, de érthetően leíró dokumentáció 1 pontot ér. A programra akkor kapható meg a további 9 pont, ha bármilyen hibátlan bemenetet képes megoldani az 1 mp futásidőkorláton belül.

Részpontszámok a következőkre kaphatóak:

\(\displaystyle \bullet\) a program \(\displaystyle N\le 200\)-ra megoldást ad;

\(\displaystyle \bullet\) a program \(\displaystyle N\le 5000\)-re megoldást ad.

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

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