Logo‎ > ‎Feladatok‎ > ‎Funkcionális programozás‎ > ‎

Programozási minták

Összegzés

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

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

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

Hányadik elem adott tulajdonságú?
Hányadik elem magánhangzó?
Példa: kivál "szilva Eredménye: 3

Lineáris keresés

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

Határozzuk meg egy számsorozat legnagyobb elemét!
Példa: maximum [3 1 6 2 1] Eredménye: 6

Kiválogatás

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]