Liftvezérlő (2025. május - idegen nyelv)
Kategória: python - középszint
Feladat leírása

Egy tízemeletes lakóépületben egy lift működik. Ennek a liftnek minden szinten van egy
hívógombja és egy kijelzője. A kijelző mutatja, hogy melyik szinten van a lift, és hogy
mozgásban van-e.
Például ha lift a 7. emeletről megy lefelé, akkor a hívó fél a
8. emeleten a kijelzőre nézve a következőt látja:
A hívó nem látja, de a lift tárolja a célemeletet, ahová tart. Tételezzük
fel, hogy ebben a példában a lift a földszintre, azaz a 0. emeletre megy!
A lift mozgása az aktuális szint és a célszint értékéivel írható le,
a példában említett esetben 7, 0. A hívónak a 8. emeleten tehát meg kell
várnia, amíg a lift lemegy a 7. emeletről a földszintre, majd vissza a 8.
emeletre. Azaz összesen 7 + 8 = 15 emeletet megy a lift, amíg felér.
Feltételezheti, hogy a liftet nem hívják egyidejűleg többen.
Készítsen programot, amely a lift működését szimulálja! A program forráskódját mentse
vezerlo néven!
A program megírásakor a felhasználó által megadott adatok helyességét, érvényességét nem
kell ellenőriznie, és feltételezheti, hogy a rendelkezésre álló adatok a leírtaknak megfelelnek.
Ha a felhasználótól kér be adatot, jelenítse meg a képernyőn, hogy milyen értéket vár! Ha a
felhasználó számára eredményt jelenít meg a képernyőn, akkor a mintának megfelelően adja
meg, hogy mit írt ki! A képernyőre írást igénylő részfeladatok esetében az ékezetmentes kiírás
is elfogadott.
Részfeladatok
1. Állítsa elő a lift kijelzőjének adatait a következőképpen! A liftnek véletlenszerűen válasszon két 0 és 10 közötti egész számot az aktuális és a célemeletnek! (Ha nem tud véletlen számot generálni, akkor vegyen fel két 0 és10 közötti értéket.) A két szám összehasonlításával döntse el, hogy a lift felfelé („F”), lefelé („L”) halad vagy áll („-”)! Írja ki a mintának megfelelően azt, hogy mit lát a felhasználó a kijelzőn (aktuális szint és irány), és mi a célemelet!
2. Kérjen be a felhasználótól egy emeletértéket (0 – 10)! Ez jelképezi a hívószintet, azt a szintet, amelyiken a hívó megnyomja a gombot. Amennyiben a lift azon az emeleten áll, ahol a hívó van, akkor nem nyomja meg a hívógombot, hanem beszáll a liftbe. Azaz feltételezheti, hogy a felhasználó nem ad meg az álló lift szintjével azonos értéket.
3. Határozza meg és írja ki a képernyőre, hogy hány emeletet kell haladnia a liftnek a hívóig! Ha az aktuális szint és a célemelet között van a hívó, akkor menet közben a lift meg fog állni a hívó szintjén. Ha a liftnek a célemeletig nem kell áthaladnia a hívó szintjén, akkor a lift először elmegy a célemeletre, majd onnan megy a hívó szintjére. Ehhez talál különböző példákat a mintában.