Escolar Documentos
Profissional Documentos
Cultura Documentos
inc"
domains
l = integer*
ll = l*
predicates
exer1(ll)
inverte(ll,ll)
inverte2(ll,ll,ll)
producao(ll,ll)
producao2(ll,ll,integer,integer,ll,ll)
media_m(ll)
prod_hora(ll,ll,integer,integer,integer,ll,ll)
media_h(ll, real)
media_h2(ll, integer, integer)
clauses
%inverter lista
inverte([],[]):-!.
inverte(L,R):-
inverte2(L,[],R).
inverte2([],T,T):-!.
inverte2([X|Ca],T,R):-
inverte2(Ca,[X|T],R).
%------------------------------
%letra A Total produzido por maquina
producao([],[]):-!.
producao(LL,Prod):-
LL = [[_,D,M,A,_,_]|_],
write("Produçao das maquinas no dia: ", D, "/", M,"/", A,"\n"),
producao2(LL,LL,1,0,[],Produ),
inverte(Produ,Prod).
producao2(_,[],25,Acu,T,Prod):-!,
Prod = [[25, Acu]|T].
producao2(LL,[],C,Acu,T,Prod):-
C1 = C + 1,
write ("\nMaquina n°: ", C, " Total: ", Acu),
producao2(LL,LL,C1,0,[[C,Acu]|T],Prod),!.
producao2(LL,[[N,_,_,_,_,P]|Ca],N,Acu,T,Prod):-
Acu1 = P+ Acu,
producao2(LL, Ca, N, Acu1, T, Prod),!.
producao2(LL, [_|Ca], N, Acu, T,Prod):-
producao2(LL, Ca, N, Acu, T, Prod).
%____________________________________
%letra B media por maquina
media_m([]):-!.
media_m([[N,T]|Ca]):-
M = T / 24,
write("\nA media maquina ", N, " e: ", M),
media_m(Ca).
%-------------------------------------
%letra C maquina que mais produziu
maior([], 0, 0):-!.
maior2([], T, T, R, R):-!.
maior2([[N,T]|Ca], M, FM, _,R):-
T > M, !,
maior2(Ca, T, FM, N, R).
maior2([_|Ca],M, FM, Num, Resp):-
maior2(Ca, M, FM, Num, Resp).
%----------------------------------------
%letra D maior produção horario
prod_hora(_,[],_,25,Acu,T,Prod):-!,
Prod1 = [[25, Acu]|T],
inverte(Prod1,Prod).
prod_hora(LL,[],H,C,Acu,T,Prod):-
C1 = C + 1,
prod_hora(LL,LL,H,C1,0,[[C,Acu]|T],Prod),!.
prod_hora(LL,[[N,_,_,_,H,P]|Ca],H,N,Acu,T,Prod):-
Acu1 = P+ Acu,
prod_hora(LL, Ca, H, N, Acu1, T, Prod),!.
prod_hora(LL, [_|Ca], H, N, Acu, T,Prod):-
prod_hora(LL, Ca, H, N, Acu, T, Prod).
%---------------------------------------
%letra e media hora a hora
media_h([],0.0):-!.
media_h(LL, R):-
media_h2(LL, 0, S),
R = S / 24.
media_h2([],S,S):-!.
media_h2([[_,T]|Ca],S,R):-
S1 = T + S,
media_h2(Ca, S1, R).
%EXERCICIO 1
exer1([]):-!, write("Lista Vazia").
exer1(LL):-
write("\nLetra A: \n"), producao(LL,Prod),
write("\n\nLetra B: \n"), media_m(Prod),
write("\n\nLetra C: "), maior(Prod, Tprod, Num),
write("\n A maquina que mais produziu foi a ", Num, " com ", Tprod),
write("\n\nLetra D: \n"), write("Digite a Hora: "), readint(Ho),
prod_hora(LL, LL, Ho, 1, 0, [], Hora),
maior(Hora, PH, N),
write("\n A maquina que mais produziu foi a ", N, " com ", PH),
write("\n\nLetra E: "), media_h(Prod,Me), write("\nA media é: ", Me).
goal
LL = [[1,22,9,2010,8,1243],[2,22,9,2010,8,4111],[3,22,9,2010,8,221], [4,22,9,2010,8,543],
[5,22,9,2010,8,1112],[1,22,9,2010,9,1435],[2,22,9,2010,9,2243]],
exer1(LL).
Questão 2
predicates
clauses
imprime(10000).
imprime(N):-
info (N, Sal, Deb, Cred),
SaldoA = Sal - Deb + Cred,
write("\nConta n°: ", N, " Saldo Atual: ", SaldoA),
N1 = N + 1,
imprime(N1).
imprime(N):-
N1 = N + 1, imprime(N1).
maiorC(M, _):-
info(N, _, _, C),
C > M,
maiorC(C, N).
maiorC(C,N):-
write("\n\nMaior Credito e da conta: ", N, " com: R$ ", C).
maiorD(M, _):-
info(N, _, D, _),
D > M,
maiorD(D, N).
maiorD(D,N):-
write("\n\nMaior Debito e da conta: ", N, " com: R$ ", D).
goal
write("letra A: \n"),
imprime(1),
write("\n\nLetra B: \n"),
maiorC(0,0),
write("\n\nLetra C: \n"),
maiorD(0,0).