Anuncios Google

Problema VB.NET

Que tal???, veran tengo un problema con VB.NET, estoy desarrollando una aplicacion que sume los digitos de una cifra por medio de un bucle, ya logre hacer que sume algunas cantidades, por ejemplo: 1234 = 10, 12345 = 15, hasta ahi todo va bien pero si coloco otros numeros como lo son: 123456 (que deberia ser igual a 21) o 370 (que deberia ser igual a 10) me pone el resultado con valores de mas (en lugar de 21 me pone 23 y en lugar de 10 me pone 11).

La cuestión es que necesito los resultados exactos porque debo hacer otras operaciones con ellos para comparar con algunas cifras que tengo.....el problema es de mi codigo o de VB.NET

 

Nota: He rectificado las operaciones "a mano" y los que deberian ser los resultados son correctos.

 

CODIGO:

 

Public Class Formulario

    Dim n As String
    Dim Digitos As Integer
    Dim operacion As Integer
    Dim suma As Integer

    Private Sub Calcular_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Calcular.Click

        n = Numero_ingresado.Text
        Digitos = n.Length
        Exponente.Text = Digitos

        While n <> 0

            suma = (suma) + operacion
            operacion = n Mod 10
            n = n / 10

        End While

        Resultado.Text = suma

        If suma <> 0 Then suma = 0

    End Sub

    Private Sub Borrar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Borrar.Click

        Numero_ingresado.Text = ""
        Resultado.Text = ""
        Exponente.Text = "0"
        suma = 0

    End Sub
End Class


Anuncios Google

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de joserc87

No lo entiendo.

A mi parecer está al revés. Donde pones

While n <> 0
  suma = (suma) + operacion
  operacion = n Mod 10
  n = n / 10
End While

Creo que debería ser

While n <> 0
  operacion = n Mod 10
  suma = (suma) + operacion
  n = n / 10
End While

Ya que sino estás sumando a "suma" el contenido de una variable (operación) que aún no has calculado.


Be pointer my friend...

Dennis Ritchie. Padre de C y cocreador de UNIX.

R.I.P.

 

Imagen de Tinakus.Nav

Estaba

Estaba por decir eso mismo...

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.