Toggle navigation
?
users online
Logout
Open hangout
Open chat for current file
:- dynamic quantia_poupada/1,ganhos/2,dependentes/1. /* Informa ao interpretador que a definição do predicado pode mudar durante a execução */ poupança_min(X):-dependentes(Y), X is Y*5000. /* X é a poupança mínima se para Y dependentes, X tem o valor de Y multiplicado por 5000 */ renda_min(X):-dependentes(Y), X is 15000+(4000*Y). /* X é a renda mínima se para Y dependentes, X tem o valor de Y multiplicado por 4000, somado a 15000 */ maior_poup(X,poupança_min(Y)):-poupança_min(Y), X>Y. /* X é uma poupança maior que a poupança mínima Y, se para a poupança mínima Y, X for maior que Y */ menor_poup(X,poupança_min(Y)):-poupança_min(Y), X<Y. /* X é uma poupança menor que a poupança mínima Y, se para a poupança mínima Y, X for menor que Y */ maior_renda(X,renda_min(Y)):-renda_min(Y), X>Y. /* X é uma renda maior que a renda mínima Y, se para a renda mínima Y, X for maior que Y */ menor_renda(X,renda_min(Y)):-renda_min(Y), X<Y. /* X é uma renda menor que a renda mínima Y, se para a renda mínima Y, X for menor que Y */ conta_poupança(adequada):-quantia_poupada(X),maior_poup(X,poupança_min(_)). /* A poupança é adequada se para a quantia poupada X, essa quantia seja maior que a poupança mínima */ conta_poupança(inadequada):-quantia_poupada(X),menor_poup(X,poupança_min(_)). /*not(maior(X,poupança_min(Y))) */ /* A poupança é inadequada se para a quantia poupada X, essa quantia seja menor que a poupança mínima */ renda(adequada):-ganhos(X,estavel),maior_renda(X,renda_min(_)). /* A renda é adequada se os ganhos X são estáveis, e X seja uma renda maior que a renda mínima */ renda(inadequada):-ganhos(X,estavel),menor_renda(X,renda_min(_));ganhos(_,instavel). /*not(maior_renda(X,renda_min(_)))*/ /* A renda é inadequada se os ganhos X são estáveis E são menores que a renda mínima. OU se os ganhos X são instáveis */ investimento(poupança):-conta_poupança(inadequada), (renda(inadequada);renda(adequada)). /* O investimento deve ser a poupança se a conta poupança for inadequada */ investimento(ações):- conta_poupança(adequada),renda(adequada). /* O investimento deve ser em ações se a conta poupança for adequada e a renda também for adequada */ investimento(combinação):-conta_poupança(adequada),renda(inadequada). /* O investimento deve ser uma combinação entre ações e poupança, se a conta poupança for adequada e a renda inadequada */ consulta:- write('Digite o valor existente na poupança:'),read(A),asserta(quantia_poupada(A)), /* escreve a pergunta, atribui a resposta a variável A e guarda no banco de dados através do predicado asserta a variável * A como quantia poupada */ write('Qual o ganho por mês?'), read(B), /* escreve a pergunta e atribui a resposta a variável B */ write('Esse ganho é estável ou instável?'), read(C),asserta(ganhos(B,C)), /* escreve a pergunta, atribui a resposta a variável C e guarda no banco de dados através do predicado asserta a variável B e C como * referentes aos ganhos */ write('Quantos dependentes o cliente tem?'),read(D),asserta(dependentes(D)),resposta. /* escreve a pergunta, atribui a resposta a variável D, guarda no banco de dados através do predicado asserta a variável D como dependentes e * mostra a resposta */ resposta:-if(investimento(poupança), write('Invista na Poupança'),if(investimento(ações), write('Invista em Ações'), if(investimento(combinação), write('Faça uma combinação entre Poupança e Ações'),write('Dados Inseridos Incorretamente')))). /* Se resposta for investimento poupança, escreve invista na poupança. Se for investimento em ações, escreve invista em ações. * Caso a resposta seja investimento combinação, escreve faça uma combinação entre Poupança e Ações */ if(Condição,Então,_) :- Condição,!, Então. if(_,_,Else) :- Else. /* Simula um if */