„Deklaratív programozás - Prolog vizsgafeladat: beszúrásos rendezés” változatai közötti eltérés
A VIK Wikiből
Ú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…” |
a Szikszayl átnevezte a(z) Kidolgozott Prolog vizsgafeladat: beszúrásos rendezés lapot a következő névre: Deklaratív programozás - Prolog vizsgafeladat: beszúrásos rendezés |
(Nincs különbség)
|
A lap jelenlegi, 2014. február 15., 18:13-kori változata
Ez az oldal a korábbi SCH wikiről lett áthozva.
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.