A vizsgán számonkért ismeretek SML-ből

2000. tavaszi félév

Fejezetek a jegyzetből

A vizsgán tudni kell az SML-jegyzet alábbi fejezeteit:

A vizsgán használni kell tudni

SML típusok és függvények

Az alábbi típusok jellemzőit, az alábbi függvények (műveletek) pontos működését fejből ismerni kell.

Kérésre, pontlevonás mellett, megadjuk a felsorolt függvények típusát.

Vizsgafeladat-minták az SML-részhez

A vizsgán, amely több részből áll, minden hallgató tételeket húz ( első, második, harmadik, negyedik rész).

A vizsga első részében, min. 60 perces felkészülési idő alatt, néhány kisebb programozási feladatot kell megoldani Prolog-, ill. SML-nyelven, írásban. Példa a feladható programozási feladatokra SML-nyelven:

     Írjon szintOssz  néven olyan SML-függvényt,  amely egy bináris  fában tárolt
     értékek szintenkénti összegéből alkotott listát ad eredményül!  A lista első
     eleme  az első  szinten  lévő  gyökérelem értéke,  második  eleme a  második
     szinten tárolt, legfeljebb két elem összege s.í.t.
     
     A fa típusa:  
     	 datatype itree = L of int | N of itree * int * itree;
     
     A függvény specifikációja:
     	 szintOssz t = a t-beli elemek szintenkénti összegének listája
     	 szintOssz : itree -> int list 
     
     Példák: 
     	 szintOssz(L 1999) = [1999]
     	 szintOssz(N(N(L 4, 2, L 5), 1, N(N(L 8, 6, L 9), 3, L 7))) 
     							      = [1, 5, 22, 17]

A második részben (felkészülési idő nélkül, legfeljebb rövid gondolkodás után) kiskérdésekre kell válaszolni (adott programrészlet működését elmagyarázni, típusegyenletet megoldani, Prolog-kifejezés gráfját felrajzolni, egy-egy beépített függvény, ill. eljárás működését ismertetni, egy-egy témakörről kiselőadást tartani stb.).

Az SML-részből második feladatként kétféle azonnal megoldható feladatot adunk. Az első egy Mi a típusa? feladat, a második egy Mi az eredménye? feladat. Példák a feladatokra:

Mi a típusa?

     Mi a típusa az alábbi v1, v2, v3, v4, v5 SML-értékeknek? A deklarációk
     egymástól függetlenek, a Math könyvtár be van töltve.
     
     	val v1 = fn p => fn (q, r) => p q r;
     	val v2 = app (print o str);
     	fun v3 (x, y) = x y y;
     	val v4 = map (String.fields Char.isPunct);
     	val v5 = foldr op:: [Math.sin];
Mi az eredménye?
     Magyarázza el az alábbi nevtelen függvény működését!
     
     	fun nevtelen xs = foldl op:: [] xs;
     
     Mi az eredménye a nevtelen(explode "NeveHavan") függvényalkalmazásnak?

A harmadik részben a felkészülési idő alatt megírt programokhoz kell magyarázatot, kiegészítést fűzni, ill. a vizsgáztatónak a programokra vonatkozó kérdéseire válaszolni.

A vizsga első három részben max. 70 pont szerezhető.

Végül a negyedik részben a hallgatónak a zh-ra, ill. az nhf-re vonatkozó kérdésekre kell válaszolnia, ha írt zh-t, ill. adott be nhf-et. Ha a válaszok nem kielégítőek, a zh-ra, ill. az nhf-re kapott pontszámot nem vesszük figyelembe az osztályzatban.


hanak@inf.bme.hu
Utolsó módosítás: 2001. 01. 02.