numero(7).
numero(3).
numero(4).
numero(12).
numero(1).
numero(9).
muestraTodos:- numero(N), writeln(N), fail.
menor:-
numero(Num1),
menor(Num1, Menor), !,
sformat(Salida, '~w ~w', ['El menor es: ', Menor]), % Se compone el mensaje en la variable 'Salida'
writeln(Salida).
menor(N, Min):-
numero(X),
N > X, writeln(X), !, menor(X, Min).
menor(N, N):-!.
mayor:-
numero(Num1),
mayor(Num1, Mayor), !,
sformat(Salida, '~w ~w', ['El mayor es: ', Mayor]),
writeln(Salida).
mayor(N, Min):-
numero(X),
N < X, writeln(X), !, mayor(X, Min).
mayor(N, N):-!.
%__________________________
% reglas para la suma
%--------------------------
limpiaTotal:-
total(X), retract(total(X)), fail.
limpiaTotal:-!.
suma:-
limpiaTotal,
assert(total(0)),
sumaTotal,
total(SumaT),
sformat(Salida, '~w ~w', ['La suma es: ', SumaT]),
writeln(Salida).
sumaTotal:-
numero(X),
total(Suma),
SumaT is Suma + X,
retract(total(Suma)),
assert(total(SumaT)),
fail.
sumaTotal:-!.
:-
dynamic total.