Programozási nyelvek zárthelyi 2004. május 21. A csoport Taszkot tartalmazó feladattal kell kezdeni, utána lehet bármi! A jegy az elért pontok összege, de legfeljebb jeles :-). Tilos mindenféle (szóbeli, írásbeli vagy gépi) kommunikáció más ZH-írókkal vagy más felhasználókkal. 1. feladat (1 pont) Készítse el a következő szimulációt. Shakespeare lódított egy picit. A valóság ugyanis az, hogy annak a bizonyos veronai háznak két erkélye volt, egy nyílott keletre, egy pedig nyugatra. Szegény Rómeó ide-oda ingázott a két erkély között, hátha valamelyiken megpillantja Júliáját. Júlia szintén le-föl futkosott, hol az egyik, hol a másik erkélyen tűnt fel kis ideig. Szimuláld ezt a remélhetőleg hepiendes történetet Ada taszkok segítségével. Rómeó és Júlia legyen két taszk, melyek a következőképpen működnek. Rómeó 1-2 másodpercet tölt egy erkélynél, aztán 3-5 másodpercet gyalogol a másik erkélyig. Júlia 2-4 másodpercet tölt egy erkélyen, aztán 1-2 másodperc alatt átszalad a másik erkélyre. Amíg Júlia az erkélyen van, várja, hogy rátaláljanak; hasonlóképpen, amíg Rómeó egy erkély alatt áll, hívja Júliát. Júlia elálmosodik, amire tízszer körbejárja mindkét erkélyt, és lefekszik aludni. Rómeó már 4 kör után megunja az udvarlást, és hazamegy. Ha pedig a sors kegyelméből összejön a találka, mindketten boldogan halnak. 2. feladat (2 pont) Készítse el a következő szimulációt. Adott 10 város, mindegyik ugyanolyan távolságra van egymástól. Minden városban van egy taxiállomás, ahol véletlenszerűen megjelenik egy ember. (Ezt például szimuláld úgy, hogy három másodpercenként randomolsz egy booleant, és ha igaz, akkor megjelenik az ember. Addig nem jelenhet meg újabb, amíg az előzőt el nem szállítják. Az ember nem taszk, hanem csak egy változója a városnak.) Ez az ember egy véletlenszerűen kiválasztott másik városba szeretne eljutni. Van 5 taxi, amelyek az utasokat szállítják, a következő módon: A taxi kezdetben egy véletlenszerűen kiválasztott városban van. Var 7 másodpercig. Ha addig érkezik utas, akkor elszállítja a célvárosba, és ott újból vár. Ha nem érkezik addig utas, akkor pedig átmegy egy véletlenszerűen kiválasztott másik városba. Az út két város között 5 másodpercig tart. Ha az utat utassal teszi meg akkor 3000Ft nyerésege lesz, ha üresen, akkor meg 500Ft vesztesége (benzinköltség). Szimuláljuk a feladatot 2 percig. A taxik a különböző tevékenységeiket írják ki a képernyőre. A szimuláció végén minden taxi írja ki az egyenlegét! A gyorsabb szimuláció érdekében, másodperc helyett tizedmásodpercet is használhattok. 3. feladat (2 pont) A Cheng Xin Liu import ruhakereskedés egy szöveges állományban tárolja az árukészletét. Minden sor egy-egy áru sorszámát (pozitív egész), nevét (karakterfüzér) és a raktáron levő mennyiségét tartalmazza (nemnegatív egész). Egy áru neve legfeljebb egy sorban szerepelhet. Egy másik, szintén szöveges állomány a készlet egy napi változását tartalmazza, azaz a beszerzéseket és a vásárlásokat. Minden sor egy-egy műveletet jelöl. A sor a következőkből áll: az áru sorszáma (pozitív egész); a mennyiség változása (előjeles egész). Egy áruhoz tetszőlegesen sok művelet tartozhat, viszont fontos, hogy az áru mennyisége minden művelet után nemnegatív marad. Mindkét fájl rendezett az áru sorszáma szerint. Készíts programot, amely a napi változást tartalmazó állomány alapján frissíti az árukészletet! Az új árukészletet tartalmazó állomány neve legyen azonos a régiével! 4. feladat (2 pont) A Béna Bank pénzszállítói egy percre hagyták csak őrizetlenül a pénzeszsákjukat, de Lopós Lajosnak ez elég volt, hogy elvigye azt. Amikor Őr Őrs észrevette, hogy hiányzik, Lajos már tíz sarokkal arrébb járt. Viszont szerencséjére - és Lajos pechjére ? a zsák lyukas, így minden sarkon kihullik belőle néhány aranypénz (legalább egy, legfeljebb tíz). Így Örs könnyen Lajos nyomába tud eredni, és ha gyorsabb, akkor elkaphatja őt. Közben persze összeszedi az elhullajtott pénzdarabokat is, nehogy más vegye fel azokat. Történetünk akkor ér véget, ha Örs elkapja Lajost, vagy ha összegyűjt ötszáz aranyat. Ekkor ugyanis már nem érdekli sem Lajos, sem a munkája, hanem a pénzzel együtt elutazik az országból, és vígan él. Szimuláld a történetet a taszkokkal! Lajos nyoma - az elhullajtott pénzek - egy láncolt listában legyenek tárolva, dinamikus helyfoglalással! Kerüld el a versenyhelyzeteket!