Logo témazáró, C08, 2011.01.17.
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 egy számokat tartalmazó lista elemeinek négyzetösszegét számolja ki.
Elnevezés
Példa
kiír négyzetösszeg [2 3 4 1]
> 30
Megoldás
eljárás négyzetösszeg :L
HAK (elemszám :L) = 0
[eredmény 0]
[eredmény (első :L)*(első :L)+négyzetösszeg elsőnélküli :L]
vége
2. feladat
Írj eljárást, ami elhagyja egy lista páratlan elemeit.
Elnevezés
Példa
kiír elhagy [1 3 4 8 11 2 2 5]
> 4 8 2 2
Megoldás
eljárás páros :x
HAK (maradék :x 2)=0
[eredmény "igaz]
[eredmény "hamis]
vége
eljárás elhagy :L
HAK (elemszám :L)=0
[eredmény []]
[HAK páros első :L
[eredmény elsőnek első :L elhagy elsőnélküli :L]
[eredmény elhagy elsőnélküli :L]
]
vége
3. feladat
Írj eljárást, ami egy listában megszünteti a szomszédos ismétlődéseket.
Elnevezés
Példa
kiír nemism [3 4 4 5 4 5 3 3 1]
> 3 4 5 4 5 3 1
Megoldás
eljárás nemism :L
HAK (elemszám :L)=1
[eredmény :L]
[HAK (elem 1 :l) = (elem 2 :l)
[eredmény nemism elsőnélküli :L]
[eredmény elsőnek első :L nemism elsőnélküli :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