Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- % 13.
- guardarBaseConhecimento(Nome) :-
- tell(Nome),
- listing(componente),
- listing(elemento),
- listing(custo),
- told.
- % 11.
- produto_arvore(Elemento, Elemento) :-
- produto_base(Elemento), !.
- produto_arvore(Elemento, (Elemento, LC)) :-
- findall(L, (componente(Elemento, X, _),
- produto_arvore(X, L)), LC).
- % 10.
- descendente_quantidade(Elem, D, Qtd, C) :-
- componente(Elem, D, Qtd), custo(D, C).
- descendente_quantidade(Elem, D, Qtd, C) :-
- componente(Elem, F, Qtd1),
- descendente_quantidade(F, D, Qtd2, C),
- Qtd is Qtd1 * Qtd2.
- lista_materiais(Elemento) :-
- findall((X,Qtd, C), (
- descendente_quantidade(Elemento, X, Qtd, C),
- produto_base(X)
- ), L),
- findall((C1, R, X), (
- member((X, _, C), L),
- quantidade(X, L, R),
- C1 is C * R
- ), Qtds),
- sort(0, @>, Qtds, NQtds),
- write("Elemento : Qtd"),
- nl,
- write("------------------------------------"),
- nl,
- escrever_lista(NQtds).
- quantidade(_, [], 0).
- quantidade(X, [(X,Qtd,_)|T], R) :-
- quantidade(X, T, R1),
- R is R1 + Qtd,
- !.
- quantidade(X, [_|T], R) :-
- quantidade(X, T, R).
- escrever_lista([]).
- escrever_lista([(C, Qtd, Elem)|T]) :-
- write(Elem),
- write(","),
- write(Qtd),
- write(","),
- write(C),
- nl,
- escrever_lista(T).
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement