„Deklaratív programozás - Prolog vizsgafeladat: transzponált” 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|DeklapoVizsgaTranszponalt}} ==Segédpredikátum== Állítsuk elő egy sorainak listájával megadott mátrix transzponáltját. Segédpred…”) |
a (Szikszayl átnevezte a(z) Kidolgozott Prolog vizsgafeladat: transzponált lapot a következő névre: Deklaratív programozás - Prolog vizsgafeladat: transzponált) |
(Nincs különbség)
|
A lap jelenlegi, 2014. február 15., 19:13-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
Állítsuk elő egy sorainak listájával megadott mátrix transzponáltját.
Segédpredikátum: =elsok(Listak, Elsok, Marad)= -> számlisták listájából előállít egy új listát, mely az első elemeket tartalmazza és egy maradék számlisták listáját, pl.
elsok([[1,2,3],[4,5,6],[7,8,9]],A,B). A = [1, 4, 7] B = [[2, 3], [5, 6], [8, 9]]
Egy megvalósítás (jelzem nem értek prologhoz, de elvileg működik):
elsok([],[],[]). elsok([A|M], [A1|EL], [M1|MAR]) :- A=[A1|M1], elsok(M, EL, MAR).
Főpredikátum
=tr(Matrix, Transzp)= -> előállítja a mátrix transzponáltját, pl.
tr([[1,2,3],[4,5,6],[7,8,9]],B). B = [[1, 4, 7], [2, 5, 8], [3, 6, 9]]
Egy megvalósítás:
tr([[]|_], ER) :- !, ER=[]. tr(A, ER):- elsok(A, EL, MAR), tr(MAR, B), ER=[EL|B].
eSzeL