Nemes Tihamér OKSzTV'92

Első forduló

11-13. osztályosok

1992. január 14. 1400-1700


1. feladat: (16 pont)


2. feladat: (13 pont)

RIGHT$(T$,i) a T$ szöveg jobb szélső i db karaktere
LEFT$(T$,i) a T$ szöveg bal szélső i db karaktere
MID$(T$,k,i) a T$ szöveg középső i db karaktere a k-adiktól kezdve
LEN(T$) a T$ szöveg karaktereinek száma
CHR$(k) a k kódú karakter

3. feladat: (13 pont)


4. feladat: Csak párhuzamosan! (16 pont)


5. feladat: (20 pont)


6. feladat: (16 pont)


7. feladat: (13 pont)


8. feladat: (13 pont)

    1. . egyetlen elemet sem tartalmaz, azaz üres
    2. . egy nemüres elemet és egy azt követő listát tartalmaz.
    A lista adattípust a fenti rekurzív definíciót hűen követve így definiálhatjuk egy képzeletbeli programozási nyelven (ahol NIL üres listát, | választást jelöl, Elem pedig bármilyen, már ismert adattípus lehet):
      TYPE Lista = NIL | (feje: Elem, farka: Lista)
    Az alábbi függvényeljárás egy elemből és egy listából egy egy elemmel hosszabb listát hoz létre:
      FUNCTION hozzLétre(e:Elem, l:Lista):Lista:
      RETURN Lista:[e,l].
    Ennyi bevezető után írd le saját szavaiddal az alábbi függvényeljárások hatását és működését:

    A.
     
    FUNCTION ismerjFel(l1, l2 : Lista): Lista:
    RETURN IF l1=NIL Then l2
           ELSE hozzLétre(l1.feje, ismerjFel(l1.farka, l2))
    ENDIF.

       
    B.
     
    FUNCTION találjKi(e:Elem, l:Lista): Lista:
    RETURN IF l=NIL THEN l
           ELSE IF e=l.feje THEN l.farka
                ELSE hozzLétre(l.feje, találjKi(e, l.farka))
    ENDIF.
       
    Tegyük fel, hogy már léteznek az alábbi (az egyszerűség kedévért csupa karakterekből álló) listák:
      l1: (N(E(M(E(S)))))
      l2: (T(I(H(A(M(É(R)))))))
    Add meg az alábbi műveletek (függvényeljárás-hívások) eredményét:

    C. ismerjFel(l1, hozzLétre('+', l2))=?

    D. találjKi('E', l1)=?


Elérhető összpontszám: 100 pont