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 2017. 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ű feladatok

A beküldési határidő 2017. október 10-én LEJÁRT.


I. 433. Készítsünk programot i433 néven, amely egy szöveg karaktereit egy négyzet oldalán fényújságszerűen mozgatva jeleníti meg.

A program bemenete az \(\displaystyle \mathsf{S}\) szöveg (\(\displaystyle \mathop{\rm Hossz}{(\mathsf{S})}\le 100)\) és a négyzet \(\displaystyle N\) oldalhossza (\(\displaystyle \mathop{\rm Hossz}{(\mathsf{S})}/4\le N\le 60)\).

A program a karakteres vagy grafikus kimeneten jelenítse meg a fényújságot az óramutató járásának megfelelő irányban. A mozgatás sebességét válasszuk meg úgy, hogy a szöveg élvezhetően olvasható legyen. A szöveg mozgatása egy adott billentyű lenyomásáig folytatódjon.

Példa bemenet Kimenet
KöMaL pontverseny 2017-18
10








  KöMaL po
         n
         t
         v
         e
         r
         s
         e
8        n
102-7102 y

Beküldendő egy tömörített i433.zip állományban a program forráskódja és rövid dokumentációja, amely megadja, hogy a forrásállomány melyik fejlesztői környezetben fordítható.

(10 pont)

statisztika


I. 434. (É) A 2016. évi nyári olimpiai játékokon az atlétika férfi kalapácsvetés döntőjének eredményeit értékeljük ki táblázatkezelő-rendszerrel.

A döntő előtt a selejtező nevezési szintje 77,00 méter volt. Ezt csak ketten dobták túl, így a döntőbe a legjobb 12 eredményű versenyző jutott. A döntő 6 dobási sorozatból állt, de a 3. sorozat után csak az addigi legjobb 8 eredményt elért versenyző folytathatta tovább. A dobás távolságát centiméter pontossággal mérik. Ha a dobás érvénytelen volt, akkor az eredmény helyén az ,,\(\displaystyle \textsf{x}\)'' karakter szerepel.

A döntőbe jutott versenyzők dobási adatait rögzítettük méterben a kalapacsforras.txt tabulátorral tagolt, UTF-8 kódolású állományban.

Minta:

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

A munkafüzetbe importálandó adattábla: a kalapacsforras.txt.

(10 pont)

megoldás, statisztika


I. 435. Mint ismeretes, az Európában is használatos keresztény naptár szerinti 1. év Jézus születésének éve, és Gergely pápa naptárreformjáig a ma használatostól csak annyiban tért el, hogy minden negyedik év szökőév volt. A Gergely-naptár 1582. október 4-én csütörtökön lépett életbe úgy, hogy az azt követő nap október 15. péntek lett, és ettől kezdve a 100-zal osztható évszámok közül csak a 400-zal is oszthatók maradtak szökőévek. A keresztény időszámítás így a Nap járásához igazodik.

Az iszlám naptár a Hold járásán alapuló éveket használó holdnaptár, melynek kezdőnapja (a keresztény időszámítás szerint) 622. július 16. Ez az iszlám időszámítás kezdete, vagyis az 1. év 1. hónapjának (Muharram hónap) 1-je. (Az iszlám időszámítás a hidzsráról kapta a nevét, amelynek jelentése: kivándorlása, áttelepülése – bár az esemény, vagyis Mohamed próféta Mekkából való kivonulása valójában néhány hónappal később történt.)

A hónapok felváltva 30 (páratlan számú hónapok) és 29 naposak (páros számúak). Az éveket 30 éves ciklusokba sorolják. E ciklusokban 19 normál év (354 napos) található, míg a 2., 5., 7., 10., 13., 16., 18., 21., 24., 26. és 29. év 355 napos. Ezekben az években az utolsó hónap is 30 napból áll.

A két dátum összevetésére itt találunk egy példát:
https://calendar.zoznam.sk/islamic_calendar-hu.php.

Készítsünk táblázatkezelővel táblázatot vagy írjunk programot, amely egy hidzsra utáni iszlám dátumot átvált keresztény dátumra és fordítva. Például: 1439.01.01 – 2017.09.22.

Beküldendő egy i435.zip tömörített állományban a táblázatkezelő munkafüzet vagy a program forráskódja, továbbá a dokumentáció, amely tartalmazza a megoldás rövid leírását, és megadja, hogy a forrásállomány melyik fejlesztői környezetben fordítható vagy milyen táblázatkezelővel készült.

(10 pont)

megoldás, statisztika


I/S-jelű feladatok

A beküldési határidő 2017. október 10-én LEJÁRT.


I/S. 19. Keressük meg azt a legkisebb \(\displaystyle b\) nevezőjű \(\displaystyle \frac{a}{b}\) törtet, amelynek \(\displaystyle t\) tizedes jegyre kerekített értéke megegyezik egy \(\displaystyle t\) tizedes jegyet tartalmazó \(\displaystyle r\) tizedes törttel.

A feladatot megoldó program olvassa be a standard bemenetről \(\displaystyle r\) és \(\displaystyle t\) szóközzel elválasztott értékét (tizedesvessző helyett pontot használjunk), majd írja a standard kimenet egyetlen sorába szóközzel elválasztva \(\displaystyle a\) és \(\displaystyle b\) egészeket.

Példák:

Bemenet Kimenet
3.141592653 9 103993 33102
2017.0901 4 223897 111
1.2345678901234 13 2743458 2222201

Korlátok: az \(\displaystyle r\) pozitív szám \(\displaystyle e\) egész és \(\displaystyle t\) tizedes jegyet tartalmaz \(\displaystyle (1 \le e,t \le 14)\), \(\displaystyle (1 \le e+t \le 15)\).

Értékelés: a megoldás lényegét leíró dokumentáció 1 pontot ér. További 9 pont kapható arra a programra, amely a korlátoknak megfelelő bemenetekre helyes kimenetet ad 1 másodperc futásidő alatt. Részpontszám kapható arra programra, amely csak kisebb \(\displaystyle e\), \(\displaystyle t\) értékek esetén ad helyes eredményt 1 másodpercen belül.

Beküldendő egy is19.zip tömörített állományban a megoldást leíró dokumentáció és a program forráskódja.

(10 pont)

megoldás, statisztika


S-jelű feladatok

A beküldési határidő 2017. október 10-én LEJÁRT.


S. 118. Egy tengeren adott \(\displaystyle N\) sziget, melyek kiterjedése elhanyagolható a tenger méreteihez képest. Az \(\displaystyle i\)-edik \(\displaystyle (1 \le i \le N)\) sziget helyzetét derékszögű koordináta-rendszerben az \(\displaystyle (X_i, Y_i)\) egész számpárral adjuk meg \(\displaystyle (0 \le X_i, Y_i \le 10\,000)\). Az egyik szigetről egy másik szigetre szeretnénk eljutni. Bármely két sziget között hajóval lehet az utat megtenni. A hajók bármely szigeten tudnak üzemanyagot tankolni, amellyel egy adott távolságig tudnak közlekedni. Keressük meg, hogy mekkora az a legkisebb hatótávolságú hajó, amellyel az utazás a két kiválasztott sziget között biztosítható.

A feladatot megoldó program olvassa be a standard bemenet első sorából \(\displaystyle N\) értékét \(\displaystyle (N \le 1\,000)\) , majd a következő \(\displaystyle N\) sorból az \(\displaystyle X_i\), \(\displaystyle Y_i\) szóközzel elválasztott számokat, végül az utolsó sorból az utazás induló és érkező szigetének sorszámát. A program írja a standard kimenetre a legkisebb hatótávolság öt tizedes jegyre kerekített értékét.

Példa:

Bemenet Kimenet
5  
4 9
1 8
6 5
3 3
2 5
1 5
3.16228

Értékelés: a megoldás lényegét leíró dokumentáció 1 pontot ér. További 9 pont kapható arra a programra, amely a korlátoknak megfelelő bemenetekre helyes kimenetet ad 1 másodperc futásidő alatt. Részpontszám kapható arra programra, amely csak kisebb \(\displaystyle N\) érték esetén ad helyes eredményt 1 másodpercen belül.

Beküldendő egy s118.zip tömörített állományban a megoldást leíró dokumentáció és a program forráskódja.

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