Bevezető feladatok a listák alkalmazására
Összegzés tétele
Adjuk össze egész számok sorozatának elemeit!
Példa: összegzés [4 3 5] Eredménye: 12
eljárás összegzés :a
ha üres? :a [er 0]
eredmény (első :a) + összegzés en :a
vége
Eldöntés tétele
A további programozási tételekben szükség van a sorozat egy elemének adott tulajdonságát megvizsgálni. Ehhez egy logikai függvényt készítsünk!
Döntsük el, hogy egy szó tartalmaz-e magánhangzót!
Egy betű magánhangzó-e?
Példa:
elemtul "ü Eredmény: "igaz
elemtul "b Eredmény: "hamis
eljárás elemtul :x
eredmény eleme? :x "aAáÁeEéÉiIíÍoOóÓöÖőŐuUúÚüÜűŰ
vége
Példa:
eldönt "kerékpár Eredménye: "igaz
eldönt "sms Eredménye: "hamis
eljárás eldönt :a
ha üres? :a [er "hamis]
ha elemtul első :a [eredmény "igaz]
eredmény eldönt en :a
vége
Megszámolás tétele
Hány megadott tulajdonságú elemet tartalmaz a lista?
Hány magánhangzót tartalmaz a szó?
Példa: megszámol "spenót Eredménye: 2
Kiválasztás tétele
Hányadik elem adott tulajdonságú?
Hányadik elem magánhangzó?
Példa: kivál "szilva Eredménye: 3
Lineáris keresés tétele
Van-e a megadott listában adott tulajdonságú elem? Ha igen, adjuk meg a sorszámát!
Hányadik betű magánhangzó?
Példa:
linkeres "lnrskrss Eredménye: Nincs ilyen elem
linkeres "szezám Eredménye: 3
Maximumkiválasztás tétele
Határozzuk meg egy számsorozat legnagyobb elemét!
Példa: maximum [3 1 6 2 1] Eredménye: 6
Kiválogatás tétele
Az adott tulajdonságú listaelemek sorszámát válogatja ki.
Adjuk meg, hogy egy szó betűi közül melyek magánhangzók!
Példa: kiválogat "salátástál Eredménye: [2 4 6 9]
Az elemtul listaelemek kiválogatása:
Példa: kiv2 "salátástál Eredménye: [a á á á]
Beillesztéses rendezés
Rendezzük növekvően egy számsorozat elemeit!
Példa: rendBeill [3 2 1 2 4 1] Eredménye: [1 1 2 2 3 4]
Rendezés minimumkiválasztással
Rendezzük ábécérendben növekvően egy szó betűit!
Példa: rendMin "elefánt Eredménye: "áeeflnt
Unió
Állítsuk elő két szósorozat unióját!
Példa: unió [szilva alma körte dió barack] [barack szőlő alma] Eredménye: [szőlő szilva alma körte dió barack]
Metszet
Állítsuk elő két szósorozat metszetét!
Példa: metszet [szilva alma körte dió barack] [barack szőlő alma] Eredménye: [alma barack]
Halmazok különbsége
Állítsuk elő két szósorozat különbségét!
Példa: kül [szilva alma körte dió barack] [barack szőlő alma] Eredménye: [szilva körte dió]
Összefuttatás
Állítsuk elő két ábécé szerint rendezett szósorozat unióját kihasználva a sorozatok rendezettségét!
Példa: fut [alma barack dió körte szilva] [alma barack szőlő] Eredménye: [alma barack dió körte szilva szőlő]
Szétválogatás
Adott egy számsorozat. Válogassuk szét elemeit előjelük szerint (a 0-t a pozitívak csoportjához soroljuk)!
Példa: szétválogat [-1 2 0 -3 5 6 -2] Eredménye: [2 0 5 6] [-1 -3 -2]