„Deklaratív programozás - Prolog vizsgafeladat: beszúrásos rendezés” változatai közötti eltérés
Ugrás a navigációhoz
Ugrás a kereséshez
(vitalap) (Új oldal, tartalma: „{{GlobalTemplate|Infoalap|DeklapoVizsgaBeszurasos}} ==Segédpredikátum== =beszur(Mibe, Mit, Eredm)= -> Mibe rendezett listába beszúrja a Mit elemet és ezt viss…”) |
(Nincs különbség)
|
A lap 2012. október 21., 19:55-kori változata
Ez az oldal a korábbi SCH wiki-ről lett áthozva. Az eredeti változata itt érhető el.
Ha úgy érzed, hogy bármilyen formázási vagy tartalmi probléma van vele, akkor kérlek javíts rajta egy rövid szerkesztéssel.
Ha nem tudod, hogyan indulj el, olvasd el a migrálási útmutatót
Segédpredikátum
=beszur(Mibe, Mit, Eredm)= -> Mibe rendezett listába beszúrja a Mit elemet és
ezt visszaadja Eredm-be. pl.
beszur([], 1, R). R = [1] ; beszur([2, 3], 7, R). R = [2, 3, 7]
Megvalósításra példa (saját logika):
beszur([], B, [B]). beszur([A1|A],B,C) :- (A1>B -> C=[B,A1|A] ; beszur(A,B,C2), C=[A1|C2]).
Főpredikátum
=rendez(A, B)= - rendezi az A integer-listát B-be. pl.
rendez([1, 22, 2, 7, 3, 1, 4, 5], B). B = [1, 1, 2, 3, 4, 5, 7, 22] ;
Megvalósításra példa:
rendez(A, B) :- rendeziter(A, [], B). rendeziter([A1|A], A2, B) :- beszur(A2, A1, A3), rendeziter(A, A3, B). rendeziter([], B, B).
Itt a =rendeziter= segédpredikátum a második paraméterébe gyűjti a már rendezett résztömböt a rekurzív hívások során.