Feladat: I.418 Korcsoport: - Nehézségi fok: -
Füzet: 2017/január, 38 - 40. oldal  PDF  |  MathML 
Témakör(ök): Feladat, Programozás, algoritmusok

A szöveg csak Firefox böngészőben jelenik meg helyesen. Használja a fenti PDF file-ra mutató link-et a letöltésre.

A KML-2017 expedíció elsőként érkezett meg egy égitestre, hogy megállapítsa annak kéreghez közeli szerkezetét. Egy vizsgálat során a felszínen egy irányban haladva 500 méterenként megmérték a felszín alatti rétegek vastagságát. A műszer által detektált értékek megtalálhatók a retegek.txt állományban. A szöveges fájl első sorában a mérések száma (2M200), valamint a műszer által mért rétegek száma (1R20) szerepel. A további R sor mindegyikében M darab nemnegatív egész mutatja az egyes rétegek Vmr vastagságát (0Vmr10000) méterben. A rétegek a felszíntől lefelé haladva vannak fölsorolva, a vastagság zérus értéke azt jelenti, hogy azon a mérési helyen az adott réteg teljesen elvékonyodott. Példaként vizsgáljuk meg a következő bemeneti állományt (a rövidebb írásmód kedvéért három sortörést / jellel helyettesítettünk), valamint a mérési eredmények alapján a felszín alatti rétegek egy lehetséges rajzát, ahol a mért értékeket szakaszokkal kötöttük össze.

 
7 4 / 4167 3812 3665 3611 3358 3187 2997 / 4526 4031 3628 3968 4420 5470 54831229 879 533 0 0 686 1345 / 2270 2717 3310 3876 3600 3109 2898
 

 

Készítsünk programot i418 néven, amely megoldja az alábbi feladatokat. A képernyőre írást igénylő részfeladatok eredményének megjelenítése előtt írjuk ki 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 és tároljuk a mérési eredményeket. Írjuk ki, hogy milyen hosszú úton végezte a csapat a mérést, illetve hány réteget rögzített a műszer.
2.Kérjük be egy réteg sorszámát, és adjuk meg, hogy az adott réteg hol és mekkora értékkel volt a legvastagabb és a legvékonyabb (pl. ,,A(z) 4. mérésnél volt a legvastagabb (3876 méter), és a(z) 1. mérésnél volt a legvékonyabb (2270 m) a(z) 4. réteg.'').
3.Állapítsuk meg, hogy hány réteg volt, amely a mérés során valahol teljesen elvékonyodott, és az eredményt írjuk ki (pl. ,,1 réteg vékonyodott el teljesen.'' vagy ,,Nem volt teljesen elvékonyodott réteg.'').
4.Számítsuk ki, hogy melyik mérési helyen, és a felszíntől milyen távol van a felszíntől legtávolabbi réteghatár (pl. ,,A(z) 7. mérési helyen 12723 méter mélyen van a legmélyebb feltérképezett réteghatár.'').
5.Kérjünk be egy mélység értéket (nemnegatív egész), és adjuk meg, hogy az egyes mérési pontokon a felszíntől számított hányadik rétegben van az adott mélység. Ha a távolság olyan nagy, hogy a mért rétegek alatt van, akkor a szám helyett egy kivonásjel kerüljön kiírása (pl. 9000 méterrel a felszín alatt az eredmény: 3 4 4 4 4 3 3).
6.Számoljuk meg, és írjuk ki, hogy hány olyan réteg van, amely a felszín valamely pontján is megjelenik (tehát az adott mérési helyen a felette lévő összes réteg vastagsága 0).
7.Előfordul, hogy egy réteg többször is eltűnik, de nem egymást követő mérési pontokon. Ilyenkor az adott rétegben ,,lencse'' alakul ki, amely el van zárva a saját rétege többi részétől. A felszínen nincsenek lencsék, tehát egy lencse minden pontja fölött kell lennie nem 0 vastagságú rétegnek. Keressük meg az ilyen lencséket, és írjuk ki mindegyik esetében, hogy hányadik rétegben található (azaz a lencse rétegének sorszámát), és legföljebb mekkora a hossza méterben mérve.
8.A mérési helyek között nem ismerjük a rétegek vastagságát és határvonaluk alakját, ezért két mérési hely között a rétegek határvonalát szakaszokkal helyettesítjük (ahogy a fenti ábrán). Ilyen módon minden réteg határvonala a kiindulási helytől számított bármely pontban megadható (a mérési helyeken pontosan, közöttük pedig a leírt közelítéssel). Számítsuk ki ezek alapján a kiindulási helytől számítva 100 méterenként, hogy az egyes rétegek középvonala a felszíntől mérve milyen mélységben halad. A réteg középvonala az adott helyen a felső és alsó határvonal számítani közepe. Az egész értékre kerekített értékeket a kozep.txt szöveges állományba írjuk ki. A fájl első sorában az indulási helytől mért távolságok szerepeljenek, majd a következő sorokban a rétegek középvonalai az adott helyen. Minden számérték között egy pontosvessző legyen a határoló jel.

Letölthető: a retegek.txt szöveges állomány.
Beküldendő egy tömörített i418.zip állományban a program forráskódja és rövid dokumentációja, amely megadja, hogy a forrásállomány melyik fejlesztői környezetben fordítható.