ejercicio_01.pro



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.