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.

    1. Töltsük be a kalapacsforras.txt szövegfájlt a táblázatkezelő egy munkalapjára az \(\displaystyle \textsf{A1}\)-es cellától kezdődően. Munkánkat \(\displaystyle \texttt{i434}\) néven mentsük el a táblázatkezelő alapértelmezett formátumában.

    2. A \(\displaystyle \textsf{J2:J13}\) tartomány celláiban írassuk ki a versenyzők legjobb dobásainak távolságát, azaz a versenyen elért eredményüket.

    3. Az \(\displaystyle \textsf{A2:A13}\) tartomány celláiban egyetlen képlettel és annak másolásával határozzuk meg a versenyzők helyezését.

    4. Az első három sorozat után az addigi legjobb 8 eredményt elérő versenyző folytathatja a versenyt. Az \(\displaystyle \textsf{M3}\) cellában adjuk meg a verseny folytatásához szükséges dobástávolságot.

    5. Az \(\displaystyle \textsf{M2}\) cellában a selejtező nevezési szintje szerepel. Határozzuk meg függvény segítségével, hogy a verseny összes résztvevője közül hányan teljesítették ezt.

    6. Az \(\displaystyle \textsf{M5}\) cellában képlettel adjuk meg, hogy a döntő összes dobásának hány százaléka volt érvénytelen.

    7. Az \(\displaystyle \textsf{M6}\) cellában határozzuk meg, hogy a 3. sorozat után még versenybe maradók hány százaléka tudott még a további dobásokkal az eredményén javítani.

    8. Az \(\displaystyle \textsf{M2:M6}\) cellatartományban állítsuk be a mértékegységeket.

    9. Az \(\displaystyle \textsf{A15:C22}\) tartomány celláiban függvények segítségével jelenítsük meg a végeredményt, soroljuk fel helyezési sorrendben a versenyzők nevét és országát.

    10. A \(\displaystyle \textsf{D2:I13}\) cellatartományban minden versenyző legnagyobb dobását feltételes formázással, félkövér betűstílussal jelenítsük meg.

    11. Az \(\displaystyle \textsf{A2:J13}\) cellatartományban az első három helyezett sorának celláiban a cellakitöltését az érem színének megfelelően feltételes formázással adjuk meg: arany RGB(255,215,0), ezüst RGB(192,192,192), bronz RGB(204,153,102).

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.