mcd en vba y otra duda

Tema en 'Programación & Programación Web' iniciado por fender, 27 Abr 2013.

  1. fender

    fender Usuario Nuevo nvl. 1
    87/163

    Registrado:
    23 Jul 2007
    Mensajes:
    96
    Me Gusta recibidos:
    0
    ola tengo una dudar estoi haciendo este algoritmo espero q me ayuden por la logica supiongo que esta bien pero a la hora de hacerlo andar no me mando lo quiero ayuda de antemano gracias


    Sub mcd()
    Dim x, n1, n2, i, n, mcd As Integer
    x = 0
    i = 1
    n1 = InputBox("ingrese numerador")
    n2 = InputBox("ingres denominador")

    If n1 > n2 Then
    n1 = n
    ElseIf n2 > n1 Then
    n2 = n
    End If

    Do While i <= n
    mcd=x
    If ((n1 Mod n = 0) And (n2 Mod n = 0)) Then
    [FONT=arial, helvetica, clean, sans-serif]x=i
    endif
    i=i+1
    loop

    msgbox("el mcd es ") & x

    ya eso es . lo otro escrubuendolo como puedo guardar un valor dandose lo sigueiente
    en un loop mientras una condicion se ciumpla me guarde ese valor del loop si no que avance y pruebe hasta llegar al final guardando el ultimo valor del loop mientras la condicion se cumpla

    espero puedan ayudarme please

    [/FONT]
     
  2. cavoso

    cavoso Usuario Casual nvl. 2
    37/41

    Registrado:
    31 May 2008
    Mensajes:
    2.727
    Me Gusta recibidos:
    13
    pues donde tienes la linea mcd=x no se para que la usas porque aparte de asignarle el valor de x no haces nada mas con ella

    puede que el problema radique aqui If ((n1 Mod n = 0) And (n2 Mod n = 0)) Then ya que n no le asignas una variable a n sino que le colocas el valor de n (que esta vacia) a n1 o a n2 dependiendo del valor de estas

    aqui
    If n1 > n2 Then
    n1 = n
    ElseIf n2 > n1 Then
    n2 = n
    End If


    asi que supongo que primero deberias darle valor a n antes de intentar hacer algo ya que segun como lo veo el if que tienes dentro del while nunca se cumplira, ademas si explicas un poco mas de que es lo que intentas aser te podriamos ayudar un poco mas ya que como no sabemos el resultado que esperas es imposible ayudarte mas
     
  3. fender

    fender Usuario Nuevo nvl. 1
    6/41

    Registrado:
    23 Jul 2007
    Mensajes:
    96
    Me Gusta recibidos:
    0
    el algoritmo que intento sacar es el del maximo comun divisor el cual es este:

    Sub mcd()
    Dim i, n1, n2, n, mcd As Integer
    n1 = InputBox("ingrese numero 1 ")
    n2 = InputBox("ingrese numero 2")
    i = 1
    If n1 >= n2 Then
    n = n1
    End If
    If n1 < n2 Then
    n = n2
    End If

    Do While i <= n
    If (n1 Mod i) = 0 And (n2 Mod i) = 0 Then
    mcd = i
    End If
    i = i + 1
    Loop
    MsgBox ("el mcd es ") & mcd

    ahora el programa se me queda pegado ,supongo que la logica del programa esta buena pero en algo estoi fallando
     
  4. El Fin

    El Fin Usuario Habitual nvl.3 ★
    187/244

    Registrado:
    2 Oct 2009
    Mensajes:
    16.562
    Me Gusta recibidos:
    16
    Utiliza el algoritmo de euclides, el cual dice así:

    Cuando llegue a la casa lo intentaré en php. Saludos.
     
  5. sIMP.

    sIMP. Usuario Casual nvl. 2
    87/163

    Registrado:
    29 Jul 2009
    Mensajes:
    7.437
    Me Gusta recibidos:
    4
    ahi esta o no ?