Logo témazáró, C08, 2011.02.07.
Négy listakezelési feladatot kell megoldanod, mindegyiket eljárásokkal,
az eljárásoknak ugyanabban a projekt-fájlban kell lennie, amit a saját neveddel kell lementened (például: VargaDolgozat.IMP). Az eljárások neve és paraméterezése minden feladatnál meg van adva.
A megoldásokat tartalmazó állományt csatolmányként kell beküldeni óra végén az ismert
címre.
1. feladat
Írj eljárást, ami (rekurzív módon) kiszámolja egy pozitív egész $n$-re
a $2^n$ hatvány értékét!
Elnevezés
Példa
Megoldás
eljárás kettőaz :n
hak :n=1
[eredmény 2]
[eredmény 2*(kettőaz :n-1)]
vége
2. feladat
Írj eljárást, ami elhagyja egy lista 1990-nél kisebb és 2011-nél nagyobb elemeit.
Elnevezés
Példa
kiír elhagy [1 3 10 200 1973 1990 2000 2008 2011 3000]
> 1990 2000 2008 2011
Megoldás
eljárás elhagy :l
hak elemszám :l=0 [eredmény []]
[
hak (vagy (első :l)>2011 (első :l)<1990)
[eredmény elhagy elsőnélküli :l]
[eredmény elsőnek (első :l) (elhagy (elsőnélküli :l))]
]
vége
3. feladat
Írj eljárást, ami egy listának azt a kezdőszeletét adja vissza, amiben a számok szigorúan növekvő sorrendben követik egymást.
Elnevezés
Példa
kiír kezdet [1 3 4 4 5 4 5 3 3 1]
> 1 3 4
Megoldás
eljárás kezdet :l
hak elemszám :l<2 [eredmény :l]
[
hak első :l<első (elsőnélküli :l)
[eredmény elsőnek első :l kezdet (elsőnélküli :l)]
[eredmény (első :l)]
]
vége
4. feladat
Írj eljárást, ami "madárnyelvre" fordít egy tetszőleges szöveget.
Elnevezés
Példa
kiír madárnyelv "Berzsenyi
> Beverzsevenyivi
Megoldás
eljárás madárnyelv :szó
HAK elemszám :szó=0
[EREDMÉNY " ]
[
HAK eleme? első :szó [a á e é i í o ó ö ő u ú ü ű]
[EREDMÉNY elsőnek első :szó (elsőnek "v (elsőnek első :szó madárnyelv elsőnélküli :szó))]
[EREDMÉNY elsőnek első :szó madárnyelv elsőnélküli :szó]
]
vége