Mensaje: #2
RE: Consulta FInal 10/02/2018
A)En los predicados alimentar(Granjero,Animal):- la variable Animal no se utiliza en ningun momento
En este mismo predicado , se repite logica al momento de verificar el peso del chancho, ademas de que si el peso es mayor que 50
verifica en la primera Kilo =< 50 ? no , entonces va al prox predicado que no tiene restriccion del peso entonces habria dos respuestas
respuestas posible cuando deberia ser una...
Para asignarle un valor a una variable se utiliza el IS y no el =, para poder ligar la variable con el valor, la variable debe estar vacia,
sino se estaria comparando su valor
B)alimentar(Granjero,caballo(Energia,Racion),NuevaEnergia):-
granjero(Granjero,caballo(Energia,Racion)),
NuevaEnergia is Energia * (1 + Racion / 100).
alimentar(Granjero,chancho(Kilos),NuevosKilos):-
modificarKilos(Granjero,Kilos,NuevosKilos).
modificarKilos(Granjero,Kilos,NuevosKilos):-
granjero(Granjero,chancho(Kilos)),
Kilos =< 50,
NuevosKilos is (Kilos + 3).
modificarKilos(Granjero,Kilos,NuevosKilos):-
granjero(Granjero,chancho(Kilos)),
Kilos > 50,
NuevosKilos is (Kilos + 2).
C)Si es inversible, ya que estoy ligando al granjero y el peso del chancho antes de verificar la condicion
>>alimentar(Granjero,Animal,NuevoValor).
Quien = beto,
Animal = caballo(150, 20),
NuevoValor = 180.0 ;
Quien = julieta,
Animal = caballo(120, 10),
NuevoValor = 132.0 ;
Quien = beto,
Animal = chancho(24),
NuevoValor = 27 ;
Quien = beto,
Animal = chancho(120),
NuevoValor = 122.
alimentar(beto,chancho(24),NuevoKilo).
NuevoKilo = 27 ;
|