Nemes Tihamér OKSzTV'98

Döntő

9-10. osztályosok

1998. március 21. 1000-1600



1. feladat: Ütemező (50 pont) /tesztadatok/
 
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
  ...
EGend

A 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:
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:

  • 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.
  • Feladat:
    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
    Kimenet
    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


    Elérhető összpontszám: 75 pont + 25 pont a 2. fordulóból