Kezdőoldal » Számítástechnika » Programozás » El tudnátok magyarázni, hogy...

El tudnátok magyarázni, hogy hogyan működik ez a program?

Figyelt kérdés

2009 októberi emelt infó érettségi egy részfeladata.


Az Alsó és Felső várost összekötő út 1 000 m hosszú részének a felújításán dolgoznak. Ennek a szakasznak a forgalmát figyeljük egy nap néhány óráján keresztül. Az említett szakaszon előzési tilalom van érvényben.

A forgalmat a forgalom.txt állomány tartalmazza. Első sorában a megfigyelési időszakban áthaladó járművek száma (legfeljebb 2000) látható, a továbbiakban pedig soronként

egy áthaladó jármű adatai olvashatók időrendben. Egy sorban az első három szám azt az időpontot jelöli (óra, perc, másodperc), amikor a jármű belép a vizsgált útszakaszra. A következő

szám jelöli, hogy a jármű az érintett távolságot hány másodperc alatt tenné meg (legfeljebb

300) – a belépéskor mért sebességgel –, ha haladását semmi nem akadályozná. Ezt egy betű

követi, amely jelzi, hogy a jármű melyik város irányából érkezett. Ennek megfelelően a betű

A vagy F lehet. Az egyes adatokat pontosan egy szóköz választja el egymástól.

Ha az útszakaszon egyik jármű utoléri a másikat, akkor az előzési tilalom miatt úgy tekintjük, hogy változatlan sorrendben, ugyanabban az időpillanatban hagyják el a szakasz, mint

ahogy a lassabb jármű tenné.

Például:

forgalom.txt

1105

7 21 1 60 F

7 21 58 69 F

7 22 4 117 F

7 22 39 155 A

7 23 11 99 A

A 3. sor megmutatja, hogy a 7 óra 21 perc 58 másodperckor a Felső város felől érkező

jármű 69 másodperc alatt tenné meg ezt az 1 km hosszú távolságot. Ez a jármű – ha más járművek nem akadályozzák – 7 óra 23 perc 7 másodperckor lép ki az útszakaszról, tehát akkor

már nem tartózkodik ott.



3. Írja a képernyőre, hogy a Felső város irányába tartó utolsó két jármű hány másodperc különbséggel érte el az útszakasz kezdetét!


int Felsobe(int JarmuSzam_, tEgyJarmuTomb Jarmu_)

{

int i=0, poz=JarmuSzam_-1;

int fjarmu[2]={0};

while (i<2 && poz>=0)

{

if ( Jarmu_[poz].Honnan=="A") { fjarmu[i]=poz; i++; }

poz--;

}

if (i==2)

{

cout << "A Felso varosba tarto utolso ket jarmu "

<< Jarmu_[fjarmu[0]].Ido-Jarmu_[fjarmu[1]].Ido

<< " masodperc elteressel kovette egymast." << endl;

}

else { cout << "Kevesebb, mint 2 jarmu tartott a Felso varosba. " << endl; }

}


Nincs sok C++ tudásom, nem értem a szintaktikáját (pl. Jarmu_[poz].Honnan mit jelent vagy az eslő sorban a "tEgyJarmuTomb Jarmu_" egy változó vagy mi akarna lenni?).

Főleg a logikai működése kellene. Előre is egy nagy köszönet!



2020. nov. 22. 18:37
 1/4 anonim ***** válasza:
Ez a megoldó kulcs?
2020. nov. 22. 19:10
Hasznos számodra ez a válasz?
 2/4 A kérdező kommentje:
Igen.
2020. nov. 22. 19:41
 3/4 anonim ***** válasza:

JarmuSzam_ ennyi gepjarmu van.

Jarmu_ ebben a tombben vannak a jarmuvek adatai.


Elkezdi visszafele bejarni a Jarmu_ tombot, tehat a tomb utolso elemetol indul es a legeleje fele halad hogy megtalalja a ket utolso jarmuvet.


poz = JarmuSzam_ - 1 poz kezdoerteke az utolso elem a tombben

minden ciklusnal csokkenti poz-t eggyel hogy az eggyel korabbi jarmuvet mutassa (poz--)


Ezenkivul letrehoz egy masik 2 elemu tombot:


int fjarmu[2]


ebben fogja eltarolni ha talal egy autot ami A-bol jon es F-be megy.


Amit bemasoltal persze az nem teljes kod, mert hianyzik belole az a resz amikor beolvassa a fajlt es letrehozza a tEgyJarmuTomb tombot.

2020. nov. 24. 20:14
Hasznos számodra ez a válasz?
 4/4 A kérdező kommentje:
Nagyon köszönöm! :)
2020. nov. 25. 08:51

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!