Buenos días a todos!
En el día de hoy os despierto con una nueva dudaXD:
Esta vez lo que necesito es una explicación, nada de ejercicios:).
En un libro tengo este programa, que lo que hace es sacar el máximo común divisor (zatitzaile komunetako handiena en mis apuntesXD):
PROGRAM ejercicio8_13_23;
VAR
a, b, max, min: INTEGER;
FUNCTION mcd (x, y: INTEGER): INTEGER;
BEGIN
IF x>y THEN
BEGIN
max:=x;
min:=y;
END
ELSE
BEGIN
max:=y;
min:=x;
END;
IF x=0 THEN mcd:=y
ELSE IF y=0 THEN mcd:=x
ELSE mcd:=mcd(max mod min,min)
END;
BEGIN
WRITE('Mete un número, baby: ');
READLN(a);
WRITE('Mete otro número: ');
READLN(b);
WRITELN(' El resultado es ',mcd(a,b));
END.
Bien, esa es la forma de hacerlo con el algoritmo de Euclides, que se basa en esto (que es la primera vez que lo veo, pero bueno, habrá que creerseloXD)
mcd(0,n)=n
mcd(n,0)=n
mcd(m,n)=mcd(max(n,m) mod min(n,m), min(n,m)), para m>0, n>0
Funciona muy bien el programa, pero no entiendo que es esto:
mcd:=mcd(max mod min,min);
por que hay que poner el segundo mcd?
mcd:=mcd (max mod min,min);
y que es lo que hace el segundo MIN detrás de la coma?
mcd:=mcd(max mod min,min );
Salu2 y gracias por adelantado a quien me pueda ayudar