Nos adentramos un poco más en la mente de los grandes matemáticos de la historia.
Hoy desarrollaremos en VBA el algoritmo de Euclides para calcular el Máximo Común Divisor.
Puedes leer algo más en Wikipedia.
Básicamente este algoritmo de cálculo representa la idea siguiente: el máximo común dívisor (M.C.D) de dos enteros positivos A y B es el mayor entero C que divide exactamente a A y B.
Si, existe la función estándar de Excel en la hoja de cálculo:
=M.C.D(numero1;numero2)
Esta función realiza el cálculo...
La idea es aprender a interpretar conceptos y aplicarlos con la lógica de programación concreta de VBA para Excel.
En un módulo estándar de nuestro proyecto de VB insertamos la siguiente función personalizada - UDF:
Podemos ver la resolución en la imagen:
Comprobamos que el proceso iterativo que describe el algoritmo se replica en nuestra función (Do..Loop), viendo como la sucesión de residuos o restos va disminuyendo, finalmente un resto tiene que ser cero,momento en el que el algoritmo termina.
El Máximo Común Divisor es precisamente el último residuo que no es cero.
Hoy desarrollaremos en VBA el algoritmo de Euclides para calcular el Máximo Común Divisor.
Puedes leer algo más en Wikipedia.
Básicamente este algoritmo de cálculo representa la idea siguiente: el máximo común dívisor (M.C.D) de dos enteros positivos A y B es el mayor entero C que divide exactamente a A y B.
Si, existe la función estándar de Excel en la hoja de cálculo:
=M.C.D(numero1;numero2)
Esta función realiza el cálculo...
La idea es aprender a interpretar conceptos y aplicarlos con la lógica de programación concreta de VBA para Excel.
En un módulo estándar de nuestro proyecto de VB insertamos la siguiente función personalizada - UDF:
Function MaximoComunDivisor(a As Long, b As Long) Dim intermedio As Long 'nos aseguramos que se trabaja sobre números positivos a = Abs(a): b = Abs(b) 'iniciamos el proceso asignando valores iniciales 'a partir de los datos dados como argumentos Min = Application.Min(a, b) Max = Application.Max(a, b) 'comenzamos la iteración con un bucle Do...Loop Do intermedio = Min 'trabajamos sobre el divisor Min = Max Mod intermedio 'Min 'el resto lo pasamos a divisor Max = intermedio 'el divisor pasa a dividendo Loop While Min <> 0 'recuperamos como MCD el último resto no nulo MaximoComunDivisor = Max End Function
Podemos ver la resolución en la imagen:
Comprobamos que el proceso iterativo que describe el algoritmo se replica en nuestra función (Do..Loop), viendo como la sucesión de residuos o restos va disminuyendo, finalmente un resto tiene que ser cero,momento en el que el algoritmo termina.
El Máximo Común Divisor es precisamente el último residuo que no es cero.
Que procedimiento de inserta?
ResponderEliminarSe*
EliminarNo entiendo.??
Eliminar