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 S. 23. feladat (2007. január)

S. 23. Egy egyszerű háttértáron található fájlokat és azok egyes darabjainak elhelyezkedését mutatja az alábbi táblázat:


1. idojaras.txt 160 0
2. --- 17 5
3. mese.doc 180 0
4. --- 20 2
5. --- 5 10
6. mese.doc 28 3
7. hoember 128 0
8. mikulas.jpg 560 0
9. hoember 47 7
10. --- 633 0

A táblázat sorai (legföljebb 100000 sor) a háttértár egymást követő különböző méretű részeit jelentik. Minden sorban elsőként a tárolt állomány neve, vagy három kötőjel szerepel (a sorszámokat csak a könnyebb érthetőség miatt írtuk ki, a táblázatban nem szerepelnek).

A fájlnév az angol abc kisbetűit és esetleg egy pontot tartalmaz, a három kötőjel a háttértár szabad területét jelzi. A fájlnév, illetve ,,---'' után szóközzel elválasztva a fájl, vagy szabad rész adott darabjának méretét adja (1 és 100000 közötti egész), valamint egy szóköz után a következő rész helyét a táblázatban (pozitív egész, illetve zérus, ha ez a fájl, vagy szabad rész vége).

Készítsünk programot, amely megadja a fenti szerkezetű háttértár állományait és szabad területét abc sorrendben. A név után szóközzel elválasztva megjeleníti a fájl teljes méretét, valamint megfelelő sorrendben az állomány által elfoglalt területek kezdetét és végét kötőjellel elválasztva. A fenti példa esetén a kimenet:


hoember 175 1099-1145 411-538
idojaras.txt 160 1-160
mese.doc 208 383-410 178-357
mikulas.jpg 560 539-1098
--- szabad 675 358-377 161-177 378-382 1046-1078

A program a be- és kimeneti fájlok nevét a parancssorból olvassa be, használata például S23.exe bemenet.txt kimenet.txt. A bemeneti állomány a fenti példa szerinti szerkezetű (sorszámok nélkül). A programokat több bemeneti állománnyal is teszteljük, teljes pontszámot csak a több tízezer fájl esetén is néhány perc alatt eredményt adó megoldások kaphatnak.

Beküldendő a megoldást tartalmazó program forrásállománya (S23.pas, S23.cpp, ...), valamint a megoldás rövid dokumentációja (S23.txt, S23.pdf, ...).

(10 pont)

A beküldési határidő 2007. február 15-én LEJÁRT.


A megoldások értékelését hat szöveges állománnyal végeztük. Ezeket és a kapott helyes kimenetet az alábbi tömörített állomány tartalmazza: s23beki.zip.

Mintaként Kiss Dániel Miklós budapesti versenyző C++ programját (s23.cpp) és Györök Péter kaposvári versenyző Pascal/Delphi munkáját (s23.dpr) adjuk közre.


Statisztika:

8 dolgozat érkezett.
10 pontot kapott:Csernai Kornél, Györök Péter, Kezes Balázs, Kiss Dániel Miklós, Sztupovszki Szabolcs.
9 pontot kapott:Ócsvári Ádám.
6 pontot kapott:1 versenyző.
3 pontot kapott:1 versenyző.

A KöMaL 2007. januári informatika feladatai