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. 489. feladat (2019. szeptember)

I. 489. (É). Tamás a kedvenc fényképeit rendezgette. Ezek mindegyikén szerepelnek emberek, akiket a programban egy ékezetek nélküli keresztnév vagy megszólítás azonosít. Előfordulnak a képeken Tamás és családtagjai (őket a programban az En, Apa, Anya, Mama, Papa, Ocsi, Hugi szöveggel jelöljük), valamint Tamás barátai, osztálytársai (a programban például Anna, Zsolt, Judit, Evi). Minden képen legalább egy személy szerepel, de egy képen természetesen egy személy csak egyszer. A képeken csak ismert, azonosítóval rendelkező személyek láthatók, minden azonosító egy szóból áll.

A képek némelyikéről tudni lehet, hogy hol vagy milyen alkalommal készült, melyeket a programban szintén ékezetek nélkül azonosítunk, például Otthon, Erdei_suli, Tisza-to (a többszavas neveket aláhúzásjellel kapcsoltuk össze). Sok esetben szerepel a képen a felvétel időpontja, például 2017.3.18.

A képek készítésének helye, ideje és a rajta szereplő személyek megtalálhatóak a kepszem.txt szöveges állományban. A hiányzó időpont vagy helyszín helyett egy (`-') kötőjel szerepel a megfelelő helyeken.

A fájl első sorában a képek \(\displaystyle K\) száma (\(\displaystyle 5 \le K \le 100\)), és a következő \(\displaystyle K\) sorban egy-egy kép adatai találhatók az alábbi minta szerint.

40
Szeged 2016.11.21. Juli Ocsi En
Fociedzes - Mama Ivan En Szabolcs
Otthon 2012.8.8. Szasa Laci Andras Hanna Zsuzsi Benedek Marci
...

Készítsünk programot, amely beolvassa a szöveges állományból az adatokat, és azok földolgozásával megoldja a következő feladatokat. Minden feladat be- és kimenete előtt írjuk ki a feladat sorszámát egy külön sorba a következő formában ,,3. feladat:''.

1. Adjuk meg, hogy Tamás hány ismerőse szerepel a képeken. Az eredmény például a következő szöveg legyen: ,,Tamasnak 27 ismerose szerepel a kepeken.''.

2. Határozzuk meg, hogy hány olyan kép van, ahol nem ismert a készítés helye és időpontja sem. Az eredményt a következőképp írjuk ki: ,,6 kep keszitesenek ideje es helye ismeretlen.''.

3. Adjuk meg, hogy hányan szerepelnek azon a képen, ahol a legtöbb személy fordul elő. A kiírás a következők szerint történjen: ,,12 embernel nincs több egy kepen sem.''.

4. Írjuk ki a képeken szereplő összes személy azonosítóját ABC-sorrendben egy sorban, vesszővel elválasztva és ponttal a végén. A kiírás formája: ,,A kepeken szerepel: Anna, Balazs, Cecil ...''.

5. Kérjük be az egyik ismerős nevét, és adjuk meg azokat az ismert időpontokat (az adatfájlban adott sorrendben), amikor Tamás (azonosítója En) és a bekért személy a fényképek szerint együtt volt. A bekérés formája: ,,Kerem adj meg egy szereplot: Ocsi''. Az eredményt a következőképp írjuk ki: ,,Tamas es Ocsi kozos idopontjai: 2019.5.10. 2020.7.7.'' Ha nincs közös időpont, akkor a ,,Tamas es Ocsi nem szerepel kozosen ismert idopontban keszitett kepen.'' mondatot írjuk ki.

6. Tamás szeretne egy családi tablót készíteni, ezért összegyűjti azokat a képeket, amelyeken legalább két, Tamáson kívüli családtag szerepel (hogy Tamás szerepel-e vagy sem, az nem lényeges). Készítsünk egy listát ezekről a képekről úgy, hogy megadjuk a készítés helyét, a készítés idejét, valamint a családtagok azonosítóját. A listában a képek legyenek az adatfájlban szereplő sorrendben, az egyes képen szereplő személyek ABC-sorrendben.

A lista formája legyen a következő (az adatokat táblázatosan jelenítsük meg, az első két oszlop szélessége 16-16 karakter):

Beküldendő egy i489.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: i489forrasbeki.zip

(10 pont)

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


Mintamegoldásként a következőket adjuk közre:

Mócsy Mátyás budapesti tanuló Java-ban készült programja: i489.java,

Varga Balázs deberceni diák megoldása C++ nyelven: i489.cpp,

Szabó Barbara Noémi miskolci versenyző Pythonban készült megoldása: i489.py,

Nagy Márton váci versenyző C# programja: i489.cs.


Statisztika:

11 dolgozat érkezett.
10 pontot kapott:Csahók Mihály, Endrész Balázs, Mócsy Mátyás, Nagy 793 Márton, Szabó Barbara Noémi, Ürmössy Dorottya, Varga 225 Balázs.
9 pontot kapott:Bagladi Milán Zsolt, Borus Benedek, Papp Marcell Miklós.
8 pontot kapott:1 versenyző.

A KöMaL 2019. szeptemberi informatika feladatai