Blog

Arta FOto...amatorism.... Fotografii diverse Blog About Romania Medievala Custom Rich-Text Page

Liste

May 5, 2007

domains
 Lista=real*
predicates
 exista(Lista, real)
 adinceput(Lista, real, Lista)
 adsfarsit(Lista, real, Lista)
 sterge(Lista, real, Lista)
 reuniune(Lista, Lista, Lista)
 intersectia(Lista, Lista, Lista)
 diferenta(Lista, Lista, Lista)
 minim(Lista, real)
 sortare(Lista, Lista)
clauses
 exista([E|_],E).
 exista([_|R], E) if
  exista(R,E).
 adinceput(L, E, [E|L]).
 adsfarsit([],E,[E]).
 adsfarsit([I|R], E, [I|R1]) if
  adsfarsit(R, E, R1).
 sterge([E|R], E, R).
 sterge([I|R], E, [I|R1]) if
  sterge(R,E,R1).
 reuniune([],L,L).
 reuniune([I|R], L, [I|R1]) if
  reuniune(R, L, R1).
 intersectia([],_,[]).
 intersectia([I|R], L, [I|R1]) if
  exista(L, I) and
  intersectia(R,L,R1).
 intersectia([I|R], L, R1) if
  not(exista(L, I)) and
  intersectia(R,L,R1).

 diferenta([],_,[]).
 diferenta([I|R],L,[I|R1]) if
  not(exista(L, I)) and
  diferenta(R,L,R1).
 diferenta([I|R],L,R1) if
  exista(L, I) and
  diferenta(R,L,R1).

 minim([M],M).
 minim([E1, E2|R],M) if
  E1<=E2 and minim([E1|R],M).
 minim([E1, E2|R],M) if
  E1>E2 and minim([E2|R],M).

 sortare([],[]).
 sortare(L,[M|R]) if minim(L,M) and
  sterge(L,M,L1) and
  sortare(L1,R).


Posted at: 05:35 PM | 0 Comments | Add Comment | Permalink

Rude...

May 5, 2007

predicates
 parinticopii(string, string)
 bunicinepoti(string, string)
 frati(string, string)
 exempluosolutie

clauses
 exempluosolutie if
  bunicinepoti(A,B) and
  write("Bunic:", A, " Nepot:", B) and
  nl and fail.
  
 parinticopii("Ion", "Mioara").
 parinticopii("Mihai", "Daniel").
 parinticopii("Mihai", "Marius").
 parinticopii("Tudor", "Lica").
 parinticopii("Gica", "Mihai").
 parinticopii("Gica", "Nicu").
 bunicinepoti(A, B) if
  parinticopii(A, C) and
  parinticopii(C, B).
 frati(A, B) if
  parinticopii(C, A) and
  parinticopii(C, B) and A<>B.
Posted at: 05:35 PM | 0 Comments | Add Comment | Permalink

Stundeti

May 5, 2007

domains
 NrMatricol = integer
 Nume, Adresa = string
 CodFacultate, DenFacultate = string
predicates
 studenti(NrMatricol, Nume, Adresa)
 facultati(CodFacultate, DenFacultate, Adresa)
 studfac(NrMatricol, CodFacultate)
 cerinta1(CodFacultate, DenFacultate)
 cerinta2(NrMatricol, Nume)
clauses
 cerinta1(CodF, DenF) if
  facultati(CodF, DenF, _) and
  not(studfac(_,CodF)).
 cerinta2(NrM, NumeP) if
  studenti(NrM, NumeP, Adresa) and
  studfac(NrM, CodF) and
  facultati(CodF, _, Adresa).
 facultati("CIG", "Contabilitate", "Buc").
 facultati("FABBV", "Finante", "Buc").
 facultati("ECG", "Ec. Generala", "Buc").
 studenti(1, "Ion Marian", "Buc").
 studenti(2, "Dan Tudor", "Buc").
 studenti(3, "Mihai Ion", "BV").
 studfac(1, "CIG").
 studfac(2, "FABBV").
 studfac(1, "FABBV").
 studfac(3, "CIG").
 
Posted at: 05:32 PM | 0 Comments | Add Comment | Permalink

Putere /recursivitate

May 5, 2007

predicates putere(real, integer, real) putere(real, integer, integer, real, real) clauses putere(_,0,1) if !. putere(X, N, R) if N1=N-1 and putere(X, N1, R1) and write(N) and nl and R = R1 * X. putere(_, N,N,R,R) if !. putere(X, Ni, Nf, Ri, Rf) if Ni1 = Ni+1 and Ri1 = Ri*X and putere(X,Ni1,Nf,Ri1, Rf). [More]
Posted at: 05:30 PM | 0 Comments | Add Comment | Permalink

Sisteme experte ...

May 5, 2007

domains
IdCursa, IdPasager, IndicativAvion=integer
OrasPlecare,OrasSosire,NumePrenume = string
PretBiletClasaA, PretBiletClasaB = real
NrLoc=string
Reducere=real
NrLocA, NrLocB = integer
Zi, L, A = integer
Clasa = string
data=data(Zi,L,A)
avion=avion(IndicativAvion,NrLocA, NrLocB)
Lista = real*
database

curse(IdCursa,OrasPlecare, OrasSosire,
Data, Avion, PretBiletClasaA, PretBiletClasaB)
pasageri(IdPasager, NumePrenume)
cursepasageri(IdCursa, IdPasager, NrLoc, Clasa, Reducere)

predicates
adaugaCursa(IdCursa,OrasPlecare, OrasSosire,
Data, Avion, PretBiletClasaA, PretBiletClasaB)
adaugacursa
StergeCursa(IdCursa)
StergeCursa
comparadata(Data,Data)
afiseazacurse(IdCursa,Data,OrasPlecare,OrasSosire,Data)
incasari(IdCursa,real)
sumaliste(Lista, real, real)
clauses
adaugaCursa(IdCursa,OrasPlecare, OrasSosire,
DataCursa, Avion, PretBiletClasaA, PretBiletClasaB) if
not(curse(IdCursa,_,_,_,_,_,_)) and
assertz(curse(IdCursa,OrasPlecare, OrasSosire,
DataCursa, Avion, PretBiletClasaA, PretBiletClasaB)).


adaugacursa if
write("Tasteaza id cursa:") and readint(IdCursa) and
write("Tasteaza oras pl:") and readln(OrasPlecare) and
write("Tasteaza oras sos:") and readln(OrasSosire) and
write("Tasteaza ziua:") and readint(Zi) and
write("Tasteaza luna:") and readint(L) and
write("Tasteaza anul:") and readint(A) and
write("Tasteaza ind avion:") and readint(IndicativAvion) and
write("Tasteaza locuri A:") and readint(NrLocA) and
write("Tasteaza locuri B:") and readint(NrLocB) and
write("Tasteaza pret A:") and readreal(PretBiletClasaA) and
write("Tasteaza pret B:") and readreal(PretBiletClasaB) and
not(curse(IdCursa,_,_,_,_,_,_)) and
assertz(curse(IdCursa,OrasPlecare, OrasSosire,
data(Zi,L,A), avion(IndicativAvion,NrLocA,NrLocB),
PretBiletClasaA, PretBiletClasaB)).

stergecursa(IdCursa) if
retract(curse(IdCursa,_,_,_,_,_,_)) and
retractall(cursepasageri(IdCursa,_,_,_,_)).
stergecursa if
write("Tasteaza id cursa de sters:") and
readint(IdCursa) and
retract(curse(IdCursa,_,_,_,_,_,_)) and
retractall(cursepasageri(IdCursa,_,_,_,_)).
comparadata(data(_,_,A1), data(_,_,A2)) if
A1>A2 and !.
comparadata(data(_,L1,A), data(_,L2,A)) if
L1>L2 and !.
comparadata(data(Z1,L,A), data(Z2,L,A)) if
Z1>Z2.
afiseazacurse(IdCursa,DataCursa,OrasPlecare,
OrasSosire,DataUtilizator) if
curse(IdCursa,DataCursa,OrasPlecare,OrasSosire,_,_) and
comparadata(DataCursa,DataUtilizator).
incasari(IdCursa, Total) if
curse(IdCursa,_,_,_,_,PretA, PretB) and
findall(Reducere,
cursepasageri(IdCursa,_,_,"A",Reducere),ListaA) and
findall(Reducere1,...

[More]
Posted at: 05:29 PM | Permalink

Posts by Date

Recent Posts

Archives