Az I. 220. feladat (2009. október) |
I. 220. Egy vízszintes alagutat egy fúrópajzs a kőzet változó keménysége miatt egyenetlenül, a tervezetthez képest kis eltérésekkel fúrt. Utólag az alagútban méterenként megmérték az alsó és felső magasságot a tervezett alapszinthez viszonyítva. (A tervezett alapszint tehát egyben a 0-szint.)
A honlapunkról letölthető magassag.txt állomány első sorában N (3N1000) a mérések száma, az ezt követő N sorban -- a tervezett alapszinthez képest -- az alagút aljának és tetejének magassága olvasható centiméterben. (A magassági adatok -100 és 600 közötti értékek.)
Például:
|
A példa jelentése:
* 95 mérési eredményt tárolunk, az 1. mérés szerint a fúrópajzs az előírt 0 cm alsó és 511 cm felső magasságot hozta létre.
* A 3. mérés szerint a pajzs az előírt alá fúrt 3 cm-rel, az alagút belmagassága pedig 510 cm lett.
Készítsünk programot alagut néven, amely az alábbi problémákat oldja meg.
A képernyőre írást igénylő részfeladatok eredményének megjelenítése előtt írja a képernyőre a feladat sorszámát (például 3. feladat:).
1. Olvassa be a magassag.txt állományban talált adatokat, és annak felhasználásával oldja meg a következő feladatokat. Ha az állományt nem tudja beolvasni, akkor a forrás első 10 sorának adatait jegyezze be a programba, és úgy oldja meg a következő feladatokat.
2. Írja ki a képernyőre, hogy az építésnek ebben a fázisában mennyi az alagút minimális belmagassága.
3. Az egyenetlenségek elsimításaként először az alagút tetejét teszik egyenletesebbé. A másodiktól kezdve az utolsó előttiig minden pontban mért magasságot a közvetlenül előtte és utána következővel átlagolják. A három értékből számolt átlagot felfelé kerekítik cm-es pontossággal. Ha az átlag magasabb, mint az eddigi érték, akkor az alagút tetejét levájják addig, különben nem változtatják. A levájt föld az alagút aljára esik, és annak magasságát növeli pontosan alatta, pontosan a levájt mennyiséggel. A következő mérési pont átlagolásánál már az esetleg megváltoztatott értéket használják.
Jelenítse meg a képernyőn, hogy melyik mérési pontnál és hány cm-t vájtak le az alagút tetejéből, ahol ez az érték nem nulla. A megjelenítés alakja ,,3. pontnál 1cm; 5. pontnál 1cm;...'' legyen.
4. Adja meg centiméterben kifejezve, hogy az alagút alján a tervezett 0 szintmagassághoz képest mennyi földhiány, illetve többlet van összesen.
5. Egy földgyalut küldenek végig az eredeti irányban az alagúton. A gép a 0 cm feletti felesleget legyalulja, a kitermelt földet eltárolja és magával viszi. Ha van benne elég tárolt föld, akkor a hiányt egyenletesen kitölti. Ha nincs benne tárolt föld, akkor továbbhaladva gödröt hagy és a gyalulást 0 cm magasságban folytatja arrébb. A földgyalut üresen indítják.
Írja ki a talaj.txt állományba a földgyalu egyszeri simítása után a mérési pontok sorszáma mellé a talaj magasságát.
6. Írja ki képernyőre a talajrendezés után a legmélyebb mélyedés kezdő és befejező mérési pontjának sorszámát. Ha több ilyen mélységű gödör van, akkor az elsőt jelenítse meg. A mélyedés széle az első, illetve az utolsó negatív érték legyen. Ha nincsen negatív érték, akkor írja ki, hogy ,,A talaj sima.''.
Beküldendő egy tömörített állományban (i220.zip) a program forráskódja (i220.pas, i220.cpp, ...), valamint a program rövid dokumentációja (i220.txt, i220.pdf, ...), amely tartalmazza a megoldás rövid leírását, és megadja, hogy a forrásállomány melyik fejlesztő környezetben fordítható.
A beolvasandó állományt tartalmazó fájl: magassag.txt
(10 pont)
A beküldési határidő 2009. november 10-én LEJÁRT.
Megoldásokról
Az érettségi típusú programozási feladatok más felépítésűek, mint a hagyományos I. feladatok. Összetettebbek, pontosabb utasításokat tartalmaznak és a legtöbb részfeladat egyszerű programozási tételekkel, mintákkal megoldhatók. A feladatok az átlagnál hosszabb szövegűek és bizony a szövegértést is mérik.
Többen nem tudták helyesen értelmezni a 3. részfeladat megoldásához szükséges „minden pontban mért magasságot a közvetlenül előtte és utána következővel átlagolják. A három értékből számolt átlagot felfelé kerekítik cm-es pontossággal” utasítást. Az átlagszámítás hibája egy-egy pontban lehet, hogy kicsi különbséget eredményez, de az egész alagútra nézve ez már nagy föld tömeg lesz.
Az 5. feladat megoldásánál típus hiba volt, hogy ha a gödröt megtalálták, akkor a gyaluban tárolt föld több volt-e, mint a gödör nagysága, vagy éppen kevesebb és így nem elegendő a feltöltéshez. Ennek a részfeladatnak az értelmezése jelentette a legnehezebb részét a teljes feladatnak.
Értékelési útmutató (alagutertekeles.pdf) , amelyet érdemes tanulmányozni a követelmények megértéséhez.
Mintamegoldás: alagut.dpr
Statisztika:
12 dolgozat érkezett. 10 pontot kapott: Barta 111 János, Szücs 092 Attila. 9 pontot kapott: Balla Attila, Giczi Dániel, Horváth 135 Loránd, Paróczi Gergő, Szabó 928 Attila, Tölgyesi Ákos. 7 pontot kapott: 2 versenyző. 6 pontot kapott: 1 versenyző. 5 pontot kapott: 1 versenyző.
A KöMaL 2009. októberi informatika feladatai