Középiskolai Matematikai és Fizikai Lapok
Informatika rovattal
Kiadja a MATFUND Alapítvány
Már regisztráltál?
Új vendég vagy?

Az I. 412. feladat (2016. november)

I. 412. Egy társasházban új liftet adnak át, amelynek forgalmát egy adatállományban rögzítik. Ezzel az utazási szokások később elemezhetők. A liftet minden lakó csak a személyes, sorszámozott kártyájával tudja igénybe venni. Az utasok a kártyával történő azonosítás után tudják a liftet az induló szintre hívni és a célnak beírt szintre utazásra használni. Rendelkezésünkre állnak az első hónap napi forgalmi adatai a forgalom.txt állományban.

A napi lifthasználati adatok csoportosítva szerepelnek az adatállományban. Egy-egy naphoz két sor tartozik. Az első sorban a nap sorszáma van, a másodikban az lift igénybevételének adatai szóközzel elválasztva. Egy-egy utazáshoz három adat tartozik: a \(\displaystyle K\) (\(\displaystyle 0\le K\le 15\)) kártyasorszám, az \(\displaystyle I\) induló- és \(\displaystyle C\) célszint (\(\displaystyle 0\le I,C\le 5\)) értéke. A napi utazás számhármasai egy sorban, időrendben szerepelnek egymás után. (Feltételezhetjük, hogy minden utas egyedül utazik, illetve napi 100 utazásnál több nem történik, és legfeljebb 30 nap adatait vizsgáljuk.) Például:

A példában az első napon a 11-es sorszámú kártyával a 3. emeletről a földszintre utaztak, majd az 5. kártyával az 5. emeletről szintén a földszintre.

Készítsünk programot i412 néven, amely a forgalmat leíró állomány adatait felhasználva az alábbi kérdésekre válaszol. A program forráskódját hianyzasok néven mentsük.

A képernyőre írást igénylő részfeladatok eredményének megjelenítése előtt írjuk a képernyőre a feladat sorszámát (például 4. feladat: ). A beolvasás előtt a várt tartalomra vonatkozó üzenetet jelenítsünk meg. Az ékezet nélküli kiírás is megengedett.

1. Olvassuk be a forgalom.txt állomány adatait és a következő feladatokat ezek alapján oldjuk meg.

2. Számoljuk meg, hogy az adatállományban hány lifthasználat adata szerepel.

3. Írjuk ki a képernyőre, hogy hányféle kártyával használták a liftet.

4. Soroljuk fel azokat a kártyasorszámokat külön-külön, amelyekkel csak felfelé, illetve csak lefelé utaztak. Amennyiben nincs ilyen, írjuk ki, hogy ,,Nincs''.

5. Adjuk meg az összes utazási adat figyelembe vételével külön-külön, hogy a lift összesen hány emeletnyi utat tett meg felfelé és lefelé az üresen közlekedéssel együtt. A lift az első nap első utazása előtt a földszinten tartózkodott.

6. Készítsünk függvényt lakhat néven, amely egy paraméterként megadott kártyasorszámhoz megadja, hogy a földszinten kívül, melyik a leggyakoribb cél szint.

7. Legtöbbször a földszintről a lakásuk szintjére utaznak a lakók. Soroljuk fel minden kártyához, hogy a földszinten kívül, melyik a leggyakoribb cél emelet. Ha nem eldönthető a kérdés, akkor írjuk ki ,,Nem eldönthető''.

8. Soroljuk fel azokat a kártyasorszámokat, amelyekkel minden emeletre és a földszintre is utaztak.

9. Kérjünk be egy napot és egy kártyasorszámot, és egy lista.txt nevű szöveges állományba írjuk ki két oszlopban, hogy közvetlenül az utazásai előtt és után milyen kártyasorszámú lakótárs használta a liftet. Ha nem volt ilyen, akkor a megfelelő oszlopba szóköz kerüljön. Például:

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

Letölthető fájl: forgalom.txt

(10 pont)

A beküldési határidő 2016. december 12-én LEJÁRT.


Statisztika:

6 dolgozat érkezett.
10 pontot kapott:Horváth 237 Lili, Kis Lázár Bence, Kovács 246 Benedek.
9 pontot kapott:Rittgasszer Ákos.
7 pontot kapott:1 versenyző.
3 pontot kapott:1 versenyző.

A KöMaL 2016. novemberi informatika feladatai