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


I. 505. Egy tájfutó versenyen nem lehet mindenki egyszerre a terepen, ezért különböző időben indítják a versenyzőket. A célba befutó sportoló csak az addig beérkezett versenyzők eredményeit tudhatja meg.

Egy lezajlott verseny után ismerjük az \(\displaystyle N\) számú (\(\displaystyle 3< N\le 200\)) versenyző START indulási és CEL beérkezési idejét (\(\displaystyle 0< \texttt{START}, \texttt{CEL}\le 10\,000\)). Készítsünk programot, amely meghatározza, hogy hány versenyző gondolhatta magáról a beérkezés pillanatában, hogy a legjobb háromban végezhet, tehát van esélye a dobogón állni.

A standard bemenet első sora a versenyzők \(\displaystyle N\) számát és az ezt követő \(\displaystyle N\) sor soronként két számot tartalmaz: a versenyzők indulási és érkezési idejét másodpercben, a beérkezés ideje szerint növekvő sorrendben.

A standard kimenetre írjuk ki azon versenyzők számát, akik beérkezéskor dobogós helyre számíthattak.

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

(10 pont)

statisztika


I. 506. Az idei Nemes Tihamér Nemzetközi Informatikai Tanulmányi Verseny 2. fordulójában a 9–10. évfolyamosoknak a következő, Fasor nevű programozási feladatot kellett megoldaniuk:

,,A Százholdas Pagonyban van egy \(\displaystyle N\) fából álló fasor, a szomszédos fák távolsága 1 pagométer. Bagoly akkor boldog, ha olyan fa tetején ül, ahonnan nem lát magasabb fát. Mivel Bagoly öregszik, ezért csak a legfeljebb \(\displaystyle K\) pagométer távolságra lévő fákat látja. Egy sajátjánál magasabb fát tehát akkor láthat, ha a fasorban a sorszámuk különbsége nem nagyobb, mint \(\displaystyle K\).''

Adjuk meg táblázatkezelő segítségével az első olyan fát, amelynek tetején Bagoly boldogan ücsöröghet. A munkafüzet B1-es cellájába lévő \(\displaystyle N\) érték alapján készítsünk egy véletlen számsorozatot egymás melletti cellákba, amely a fasor fáinak magasságát adja meg pagométerre kerekített értékben. A munkafüzet B2-es cellájában lévő \(\displaystyle K\) érték segítségével jelöljük feltételes formázással az első megfelelő fa magasságát mutató cellát. Ha nincs ilyen fa, akkor ne jelöljünk meg egy cellát sem.

A megoldáshoz segédszámításokat lehet végezni a munkafüzetben, de csak a táblázatkezelő beépített függvényei használhatók, vagyis a megoldás makrót vagy programot ne tartalmazzon.

Beküldendő egy i506.zip tömörített mappában a táblázatkezelő munkafüzet, valamint egy rövid leírás, ami megadja az alkalmazott táblázatkezelő nevét és verzióját.

(10 pont)

megoldás, statisztika


I. 507. (É). A honlapok látogatottságáról a webszerverek legtöbbször naplót vezetnek. Az általunk vizsgált weboldal naplójából részletek találhatók a webstat.txt szöveges állományban. A napló időrend szerint rendezett, egy-egy sorában egy látogatás adatai szerepelnek:

\(\displaystyle \bullet\) a használt böngésző neve, vagy egy kötőjel, ha a böngésző típusa nem volt megállapítható;

\(\displaystyle \bullet\) a böngészés dátuma (minden dátum 2020. februári);

\(\displaystyle \bullet\) a weboldalt felkereső kliensszámítógép IP-címe;

\(\displaystyle \bullet\) amennyiben a látogató az oldal címét beírva kereste föl a weboldalt, akkor a ,,honlap'' szó, egyébként annak a weboldalnak vagy alkalmazásnak a címe, ahonnan hivatkozással a honlapra került a látogató.

A szöveges állományban a fenti adatokat szóköz választja el a mintának megfelelően:

Készítsünk programot, amellyel megoldjuk a következő feladatokat. Minden feladatrész elkészítésekor írjuk ki a feladat sorszámát (pl. 1. feladat:), valamint a beolvasás és a kiírás formátumát a minták alapján oldjuk meg. Az ékezetmentes kiírás is elfogadott.

1. Olvassuk be és tároljuk el a webstat.txt állományt, majd adjuk meg, hogy hány adatsor szerepel a naplóban. Például: A beolvasott sorok száma: 300.

2. Adjuk meg táblázatos elrendezéssel, hogy az egyes napokon hány látogató adatai szerepelnek a naplóban. Például: 2020.02.11   59 látogató.

3. Soroljuk fel azokat a böngészőket, amelyek szerepelnek a naplóban. A listában minden név egyszer szerepeljen és a neveket vesszővel válasszuk el. Például: A böngészők: Chrome, Firefox, Safari, Edge, Opera.

4. Adjunk statisztikát arról, hogy a honlapot Chrome böngészővel felkeresők hogyan érték el a weboldalt. Számítsuk ki, hogy hány százalékuk adta meg a honlap címét, illetve hány százalékuk jött máshonnan a honlapra. Az eredményt egy tizedesjegyre kerekítve írjuk ki, például:

5. Vizsgáljuk meg az adatokat, és adjuk meg azokat az IP címeket, amelyekről egy adott napon többször is fölkeresték a weboldalt. A listában minden IP-cím csak egyszer szerepeljen. Az eredményt az alábbi formában adjuk meg:

Amely címekről többször is jártak az oldalon egy adott napon: 176.63.29.84, 176.63.7.203, 188.156.108.17 ...

6. Kérjünk be egy IP-címet, és adjuk meg, hogy mely napokon keresték föl a weboldalt a bekért címnek legalább az első két bájtjával azonos címekről. Készítsünk egy szöveges állományt, amelybe soronként megadjuk a talált napokat és IP-címeket a napló szerinti sorrendben. Az állomány neve a bekért IP-címből épüljön fel úgy, hogy a címben szereplő pontok helyére az aláhúzásjel kerüljön, és a kiterjesztése txt legyen.

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

Letölthető állomány: webstat.txt.

(10 pont)

megoldás, statisztika


I/S-jelű feladatok

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


I/S. 43. Jelölje \(\displaystyle f(n)\) az \(\displaystyle n\)-edik Fibonacci-számot, ahol \(\displaystyle f(0)=1\), \(\displaystyle f(1)=1\), valamint \(\displaystyle f(n+2) = f(n) + f(n+1)\). Készítsünk programot, amely adott \(\displaystyle N\)-re meghatározza az \(\displaystyle f\big(f(N)\big)\) értékének utolsó két számjegyét.

Bemenet: az első sor tartalmazza az \(\displaystyle N\) nemnegatív egész számot.

Kimenet: az egyetlen sorban \(\displaystyle f\big(f(N)\big)\) utolsó két számjegye.

Példa:

Bemenet Kimenet
677

Korlátok: \(\displaystyle 1\le N\le {10}^{15}\). Időkorlát: 0,4 mp.

Értékelés: a pontok 50%-a kapható, ha \(\displaystyle N\le 10\).

Beküldendő egy is43.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ői környezetben futtatható.

(10 pont)

statisztika


S-jelű feladatok

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


S. 142. Egy élelmiszerfeldolgozással foglalkozó cég raktárában az almák egy futószalagon érkeznek sorban. Mindegyik almáról tudjuk, hogy mennyire finom. Az almákat szeretnék zsákokba rendezni úgy, hogy az első néhány az első zsákba kerül, a következő néhány a második zsákba, a következő néhány a harmadikba, és így tovább. Egy zsákba legfeljebb \(\displaystyle K\) darab alma fér. Egy zsák alma annyira finom, mint a benne lévő legfinomabb alma. Írjunk programot, ami úgy osztja be az almákat a zsákokba, hogy a legfinomabb és legkevésbé finom zsák almák finomsága közötti különbség a lehető legkisebb legyen.

Bemenet: az első sor tartalmazza az almák \(\displaystyle N\) számát és a zsákok \(\displaystyle K\) méretét. A második sor \(\displaystyle N\) darab számot tartalmaz: az \(\displaystyle i\)-edik szám azt jelenti, hogy az \(\displaystyle i\)-edik alma finomsága \(\displaystyle F_{i}\).

Kimenet: egyetlen szám, amely megadja a legkisebb finomságbeli különbséget a legfinomabb és legkevésbé finom zsák alma között optimális beosztás esetén.

Példa:

Korlátok: \(\displaystyle 1\le N, K\le 100\, 000\), \(\displaystyle 1\le F_{i}\le {10}^{9}\). Időkorlát: 0,3 mp.

Értékelése: a pontok 30%-a kapható, ha \(\displaystyle N\le 1000\).

Beküldendő egy s142.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ői környezetben futtatható.

(10 pont)


Figyelem!

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