Feladat: I.182 Korcsoport: - Nehézségi fok: -
Füzet: 2008/március, 163 - 164. oldal  PDF  |  MathML 
Témakör(ök): Feladat

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.

Készítsünk szimulációs programot karakteres képernyőn autók körforgalomban közlekedéséről. A körforgalom két egymásra merőleges utat köt össze. A csatlakozó útszakaszok az óramutató járásával ellenkező irányban 1-től 4-ig számozottak. Az autókat ezek a számok jelképezik a karakteres képernyőn úgy, hogy mindegyik autón annak a kivezető útnak a száma van, amelyen az autó tovább szeretne haladni. Ez lehet az az út is, amelyen érkezik: ilyenkor tesz egy kört, és visszafordul.
Az utak körforgalom felé vezető sávjainak elején minden szimulációs lépésben pi (i4) valószínűséggel érkezik új autó (ha az i-edik út elején lévő mező szabad). A valószínűségek 0 és 1 közötti valós számok, melyeket a program a parancssor első négy argumentumaként kap meg. Az autók mindaddig állandó sebességgel haladnak, amíg az a mező, amelyre lépnének szabad. Ha egy náluk lassúbb jármű halad előttük, akkor átmenetileg fölveszik az előttük haladó sebességét. Az autók sebessége 1 és 5 közötti egész: 1 érték esetén az autó minden szimulációs lépésben továbbhalad (ha tud), 5 esetén csak minden ötödikben igyekszik továbbmenni, egyébként a helyén marad. A körforgalomban tartózkodó autóknak elsőbbségük van az oda behajtani kívánó autókkal szemben. A körfogalomból kifelé tartó autók a kivezető út végén eltűnnek.

 

 
 

A program a beolvasott valószínűségeket felhasználva mutassa be a járművek mozgását. A szimuláció a szóköz billentyű leütésére legyen megállítható, és a szimuláció sebessége 1-től 9-ig legyen állítható a számbillentyűkkel.
Beküldendő a program forráskódja (i182.pas, i182.cpp, ...), valamint a program rövid dokumentációja (i182.txt, i182.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ó.