Számítógépes szimulációkban események kezelésére használjuk az ESEM nyelvet. Az ESEM nyelvű eseménygenerátorok a generálandó események nevét és idejét definiálják (legfeljebb 200 eseménydefiníció):
EGbegin K *L vagy EGbegin K /L
eseménydefiníció feltétel
eseménydefiníció feltétel
...
EGendA szimuláció a 0. időpillanatban indul és az időegysége 1. Az eseménygenerátorok egymásba ágyazhatók. Az eseménygenerátor ideje lokális, azaz minden benne szereplő érték a kezdőidejéhez képest relatív; működése a szimuláció K. lépésében kezdődik, és időegysége az előző szint időegységének L-szerese, ill. L-edrésze. (ESEM nyelven csak pozitív egész számok írhatók le, az osztás miatt a generált események időpontja azonban valós szám is lehet.)
Az eseménydefiníciónak három változata van:
Feladat:
Bemenet:Az ESEMx.BE állomány első sorában a szimuláció T időtartama van (T>0), amelyet az ESEM nyelven megírt program követ (soronként 1 utasítás, a fent megadott formában).Kimenet:Az ESEMx.KI állományba és a képernyőre a szimuláció eseményeit kell kiírni idő szerinti sorrendben a 0.-tól a T. időpontig. Minden sorban egy-egy esemény leírása legyen: az esemény időpontját és nevét kettőspont (:) válassza el egymástól. Ha az esemény időpontja nem egész szám, a kiíráskor csonkítani kell.
Példa:
ESEMx.BE | ESEMx.KI |
20
EGbegin 0 *1 10 egy 2+3<16 ketto >egy 2+3<10 harom EGend |
2:harom
5:harom 8:harom 10:egy 11:ketto 14:ketto |
25
EGbegin 3 *2 6 A Egbegin 0 *2 3+2 B EGend EGend |
15:A
15:B 23:B |
2. feladat:
Karaktersorozat keresése a Weben (25 pont)
/tesztadatok/
Karaktersorozatot keresni összekapcsolt állományokban is lehet. Csak a kiinduló állomány nevét ismerjük, a többit (legfeljebb 200) a hivatkozásokból kell kiszedni.Az &állománynév& alakú hivatkozások az állományban bárhol, akár ismételten is előfordulhatnak. (A kapcsolt állományokban természetesen további hivatkozások lehetnek.) A keresett karaktersorozatban sorvég-jel és &-jel nem lehet, és legfeljebb 250 karakterből állhat.
Karaktersorozatot az alábbi feltételek mellett kereshetünk:
Feladat:A. a karaktersorozat csak teljes szó lehet, más szó részeként nem szabad megtalálni (a szavak az angol ábécé kis- és nagybetűiből állnak, és szóköz, írásjel vagy sorvég-jel határolja őket), B. a karaktersorozat lehet szó része is; C. nem szabad megkülönböztetni a nagy- és kisbetűket, azaz pl. alma és ALmA azonosnak számít; D. meg kell különböztetni a nagy- és kisbetűket. Készíts programot, amely megadja, hogy a keresett karaktersorozat mely állományok hányadik karakterétől kezdve található meg (sem a teljes hivatkozás, sem a sorvég-jel nem számít karakternek)! Ha ugyanaz a karaktersorozat többször is megtalálható, akkor mindegyik előfordulás helyét meg kell adni.Bemenet:A WEBx.BE állomány első sora a kiinduló állomány nevét, a második a keresési feltételek betűjelét (AC, AD, BC vagy BD), további tetszőleges számú sora pedig a keresendő karaktersorozatokat tartalmazza.Kimenet:A WEBx.KI állományba és a képernyőre az alábbiakat kell írni:Minden keresés eredménye annyi sor, ahány állományban megtalálható a keresett karaktersorozat. A sor elején az állomány neve legyen, majd egy kettőspont (:), utána pedig a karaktersorszámok egy-egy szóközzel elválasztva. Az egyes keresési eredmények között egy-egy üres sort kell hagyni.
Példa:
Bemenet |
|
||
WEB0.BE | ELSO.TXT | MASODIK.TXT | WEB0.KI |
ELSO.TXT
BC xyz zzz |
xyz zzz
Xyz, qwert &Masodik.txt& zzz |
UVWXYZ | ELSO.TXT: 1 8
MASODIK.TXT: 4 ELSO.TXT: 5 18 |