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


I. 478. Gyerekkoromban nagymamám padlásán egy furcsa szerkezetet találtam: egy hosszú csövet, amelyhez különböző helyeken ugyanolyan átmérőjű, de különböző hosszúságú csövek csatlakoztak. Senki nem tudta megmondani, hogy mire való, de így is feltaláltuk magunkat, az éppen beleillő labdákat dobáltuk bele a szomszéd gyerekekkel. Azt néztük, hogy milyen sorrendben esnek ki a különböző színű labdák a hosszú cső végén.

A fenti eszköz ihlette ezt a feladatot, de a labdáknak nem a színe a lényeges, hanem az, hogy milyen betűt írunk rá és azt vizsgáljuk, hogy az adott időpontokban bedobott labdák milyen szöveget adnak ki a végén. Az egyszerűség kedvéért a csövek hossza egész szám és a központi csőhöz az alsó végtől egész számnyira csatlakoznak. A központi csőhöz egy ponton csak egy cső csatlakozik. A labdák a csőben egységnyi idő alatt egységnyi utat tesznek meg. A központi csőben haladó labdának elsőbbsége van, azaz az oldalról érkező csak akkor mehet tovább, ha nem akadályozza magasabbról érkező labda. Készítsünk programot, amely a csőrendszer adatainak és a betűk csövekbe kerülési idejének ismeretében megadja a kialakuló feliratot.

A program standard bemenetének első sorában a csatlakozó csövek \(\displaystyle C\) száma és a golyók \(\displaystyle G\) száma található. A következő \(\displaystyle C\) sorban az egyes csövek hossza és a központi csőhöz való csatlakozási pontja (az alsó végétől mért távolság) szerepel, egymástól egy szóközzel elválasztva. Az ezt követő \(\displaystyle G\) sorban az angol ábécé egy betűje, a cső sorszáma és a bedobás időpontja (egész szám) található egy-egy szóközzel elválasztva. A kimenet egyetlen sora \(\displaystyle G\) darab karaktert tartalmaz: a betűket a megérkezés sorrendjében. A bemenetben a számértékek egyike sem nagyobb 1000-nél.

Beküldendő egy i478.zip tömörített állományban a program forráskódja és a működéséhez szükséges egyéb fájlok, továbbá a hozzá kapcsolódó dokumentáció. Utóbbi a problémamegoldás lényeges elemeire világít rá, valamint tartalmazza, hogy a forrásállomány melyik fejlesztő környezetben fordítható.

(10 pont)


I. 479. A Felvég és az Alvég közötti út lerövidítésére egy vízszintes alagutat fúrtak. A fúrópajzs 5-10 cm pontatlansággal végezte a munkáját. Az útépítőmérnökök az alagútban méterenként megmérték a legalsó és a legfelső pont magasságát a tengerszinthez képest, cm pontossággal. A mérési eredményeket és a tervezett alapszinti magasságot rögzítették a meresek.txt tabulátorral tagolt, UTF-8 kódolású állományban. Értékeljük ki az adatokat és segítsük a további munkát táblázatkezelő alkalmazással.

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

\(\displaystyle \bullet\) Segédszámításokat a K oszloptól jobbra végezhetünk, amelyek értelmezését felirattal segítsük elő.

\(\displaystyle \bullet\) Amennyiben lehetséges, a megoldás során képletet, függvényt, hivatkozást használjunk, hogy az alapadatok módosítása esetén is a kívánt eredményeket kapjuk.

1. Töltsük be a meresek.txt szövegfájlt a táblázatkezelő egy munkalapjára az A1-es cellától kezdődően. Munkánkat alagut néven mentsük el a táblázatkezelő alapértelmezett formátumában.

2. A C oszlop celláiban írassuk ki az alagút magasságát méterenként.

3. Az E2:F2 tartomány celláiban határozzuk meg a teljes alagút legkisebb magasságát és annak első előfordulásának távolságát a bejárattól.

Az alagút belső rendezését több lépésben végzik el:

1. lépés: Először a mennyezet egyenletesebbé tevésével kezdik. Minden magassági értéket a közvetlenül előtte és utána következővel átlagolnak és felfelé kerekítenek centiméteres pontosságra. Ha a kapott átlag nagyobb a felső pont magasságánál, akkor ott a mennyezetet levájják a kiszámított átlagig, különben nem változtatnak. Amit levájtak, az az alagút alján a magasságot növeli.

4. A G oszlop celláiban jelenítsük meg – a lehullott földet még nem figyelembe véve (az majd az alsó szintet emeli az 1. lépés végén) –, hogy a mennyezet levájásával milyen magasságokat kívánnak kialakítani. A megváltozott magasság értékeket – feltételes formázás segítségével – emeljük ki félkövér betűstílussal és piros színnel.

5. A H és az I oszlop celláiban határozzuk meg az alagút alsó és felső szintjének magasságait az 1. lépés után.

2. lépés: Az alsó szint gödreinek és a levájt föld halmainak elterítéséhez egy földgyalut küldenek végig az eredeti irányban az alagúton. A földgyalu a tervezett alapszint feletti felesleget legyalulja, a kitermelt földet maga előtt tolja. A mélyedéseket, ha van elég föld előtte, akkor kitölti. Ha nincs elég eltolt föld, akkor továbbhaladva gödröt hagy.

6. A J oszlop celláiban adjuk meg az alsó mérési pontok magasságát a földgyalu simító munkája után.

7. A minta szerinti cellában jelenítsük meg, hogy a 2. lépés után hány olyan alsó mérési pont maradt, amelynek magassága kisebb, mint a tervezett alapszint.

8. A táblázatot a minta szerint formázzuk.

Minta:

9. Vizuálisan szeretnénk megjeleníteni az alagutat a földmunkák befejezése után. Halmozott oszlopdiagram segítségével ábrázoljuk a magassági pontokat, illetve a belőlük számolt értékeket a mintához hasonlóan. A diagram tulajdonságainak beállításaival minél kifejezőbb ábrát állítsunk elő. Egy tetszőleges helyen egy magassági értéket írjunk ki.

Beküldendő egy tömörített állományban (i479.zip) a táblázatkezelő munkafüzet, valamint egy rövid dokumentáció, amelyből kiderül az alkalmazott táblázatkezelő neve és verziószáma.

Letöltendő fájl: meresek.txt.

(10 pont)

megoldás, statisztika


I. 480. A youtube-on igen népszerűek a képernyővideók, amelyek egy-egy számítógépes program használatát mutatják be. A bemutatót végző személy hang- és képernyőkép felvételt készít, majd ezeket összevágja, esetleg a fontos dolgokat feliratozza. Több ingyenesen elérhető szoftver is van, ami alkalmas a felvétel elkészítésére és az esetleges vágására, szerkesztésére.

Készítsünk oktatóvideót, amelyben egy aktuális KöMaL matematika, fizika, vagy informatika feladat online megoldását mutatjuk be. A matematika vagy fizika feladatot az Elektronikus Munkafüzetben oldjuk meg, vagyis a feladat megoldása mellett a TeX szerkesztőt is használjuk. Olyan példát válasszunk, ahol a megoldás során a szöveges leírás mellett egyenletek, képletek is vannak. Amennyiben egy informatika feladatot oldunk meg, akkor a megoldáshoz alkalmazott programot és a megoldás lépéseit ismertessük. Ha a megoldás során ismétlődő, korábban már bemutatott részek következnek, akkor azokat gyorsítsuk fel, és csak röviden jelezzük szövegesen, hogy mi történik.

Beküldendő egy youtube.com hivatkozás, amelyen elérhető az oktatóvideó, valamint egy rövid leírás, ami megnevezi a felvételhez és a szerkesztéshez alkalmazott programokat. Ha nem szeretnénk a saját hangunkon megjelenni, akkor kicsit torzíthatjuk a hangot (pl. az Audacity programmal). A teljes értékű megoldás jól érthető és követhető, de nem unalmas, az adott téma bemutatására, a feladat megoldására egy érdeklődő számára valóban használható.

(10 pont)


I/S-jelű feladatok

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


I/S. 34. Adott egy \(\displaystyle N\) sorból és \(\displaystyle M\) oszlopból álló sakktábla. A táblán kezdetben elhelyeztünk \(\displaystyle K\) darab sötét bástyát. Ezután szeretnénk feltenni \(\displaystyle Q\) darab kérdést. Egy kérdésben ideiglenesen töröljük az \(\displaystyle x\). sort (vagy oszlopot). Ezután értelemszerűen kapunk egy \(\displaystyle (N-1)\cdot M\) méretű (vagy \(\displaystyle (M-1)\cdot N\) méretű) táblát. Adjuk meg, hogy ezen a kisebb táblán legfeljebb hány világos bástyát lehet elhelyezni úgy, hogy a világosak ne üssék egymást, valamint sötét se üssön világosat (a sötét bástyák üthetik egymást). Két bástya üti egymást, ha azonos sorban vagy oszlopban vannak. Két bástya nem foglalhat el azonos mezőt a táblán. Egy kérdés után a sakktábla visszaáll eredeti állapotába, vagyis a törlés csak ideiglenes. Az oszlopokat és sorokat is 0-tól indexeljük.

Bemenet: az első sor tartalmazza az \(\displaystyle N\), \(\displaystyle M\), \(\displaystyle K\), \(\displaystyle Q\) számokat. A következő \(\displaystyle K\) sorban a sötét bástyák helyzete van megadva, minden sorban az első szám a sorindexet, a második az oszlopindexet határozza meg. A következő \(\displaystyle Q\) sor mindegyike tartalmaz egy \(\displaystyle p\) és egy \(\displaystyle x\) számot: ha \(\displaystyle p=1\), akkor az \(\displaystyle x\). sort, ha \(\displaystyle p=2\), akkor az \(\displaystyle x\). oszlopot töröljük.

Kimenet: adjuk meg minden kérdésre, hogy legfeljebb hány világos bástyát lehet elhelyezni. A kimenet elemeit szóközzel tagoljuk és sorvége jellel zárjuk.

Példa:

Korlátok: \(\displaystyle 1\le N,M\le {10}^{17}\), \(\displaystyle 0\le K\le \min(N\cdot M,{10}^{5})\), \(\displaystyle 0<Q\le {10}^{5}\). Időlimit: 0,5 mp.

Értékelés: A pontok 20%-a kapható, ha \(\displaystyle N,M\le {10}^{5}\); további 20% kapható, ha \(\displaystyle K,Q\le {10}^{3}\); további 60% kapható az eredeti korlátokra.

Beküldendő egy is34.zip tömörített állományban a megfelelően dokumentált és kommentezett forrásprogram, amely tartalmazza a megoldás lépéseit, valamint megadja, hogy a program melyik fejlesztő környezetben futtatható.

(10 pont)


S-jelű feladatok

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


S. 133. Adott \(\displaystyle N\) darab természetes szám. \(\displaystyle Q\) kérdést/feladatot fogunk adni a számokhoz kapcsolódóan. Egy feladatban vagy minden számot megnövelünk \(\displaystyle x\)-szel az \(\displaystyle [a,b]\) intervallumba eső számaink közül, vagy megkérdezzük, hogy hány szám ad \(\displaystyle M\)-mel osztva \(\displaystyle x\)-et maradékul az \(\displaystyle [a,b]\) intervallumba eső számaink közül. Készítsünk programot, amely válaszol a kérdésekre.

Bemenet: az első sor tartalmazza az \(\displaystyle N\), \(\displaystyle M\), \(\displaystyle Q\) számokat. A következő sorban az \(\displaystyle N\) darab természetes szám található. A következő \(\displaystyle Q\) sor mindegyike egy \(\displaystyle p\ x\ a\ b\) számnégyest tartalmaz. Ha \(\displaystyle p=1\), akkor megkérdezzük, hogy az \(\displaystyle [a,b]\) intervallumba eső számaink között hány ad \(\displaystyle M\)-mel osztva \(\displaystyle x\)-et maradékul. Ha \(\displaystyle p=2\), akkor az összes \(\displaystyle [a,b]\) intervallumba eső számunkat megnöveljük \(\displaystyle x\)-szel.

Kimenet: adjuk meg minden kérdésre a választ, ahol \(\displaystyle p=1\). A válaszokat szóközzel választjuk el, a kimenetet egy sorvége jel zárja.

Példa:

Korlátok: \(\displaystyle 1\le N\le 1000\), \(\displaystyle 2\le M\le 1000\), \(\displaystyle 0<Q\le {10}^{5}\), \(\displaystyle 0\le x\le 1000\), \(\displaystyle 0\le a\le b\le N-1\). Időlimit: 0,5 mp.

Értékelés: A pontok 20%-a kapható, ha \(\displaystyle Q\le 1000\); további 20% kapható, ha \(\displaystyle M=2\); további 60% kapható az eredeti korlátokra.

(10 pont)


Figyelem!

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