Autor Tema: Visual Basic extraer dígitos de un número cifra a cifra determinar par o impar  (Leído 7885 veces)

Yenifer Muete

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 1
    • Ver Perfil
Buenas noches, necesito ayuda por favor. Tengo que hacer un programa donde en una caja de texto escriba un numero, y cada vez que escriba este me debe cargar en una lista, así:

cédula= 1 1  2 0 5 7 2 1 8 3

 lista
        1=impar
        1=impar
        2=par
        0=par
        5=impar
        7=impar

Lo debo realizar con una función publica, tampoco puedo utilizar la función len, y debe ser por ciclos, este es mi código:

Código: [Seleccionar]
Private Sub Txtcedula_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Txtcedula.TextChanged
        Dim num As Integer
        If Txtcedula.Text <> "" Then
            num = Txtcedula.Text
            For i = num To num
                If resultado(Txtcedula.Text) = True Then
                    Lstcedula.Items.Add(num & "=" & "PAR")
                Else
                    Lstcedula.Items.Add(num & "=" & "IMPAR")
                End If
            Next
        Else
            Lstcedula.Items.Clear()
        End If
    End Sub


Esta es la función:
Código: [Seleccionar]
Public Function resultado(ByVal numer As Integer) As Boolean
        Dim numeropar As Byte
        Dim retorno As Boolean
        numeropar = Fix(numer Mod 2)
        If numeropar = 0 Then
            retorno = True
        Else
            retorno = False
        End If
        Return retorno
    End Function.

Bueno resulta que el programa cuando lo depuro, me sale así.

cédula= 1 1  2 0 5 7 2 1 8 3

 lista
        1=impar
        11=impar
        112=par
        1120=par
        11205=impar
        112057=impar

y así sucesivamente, no sé cómo hacer, para ir eliminado el numero de atrás, ya intente con la función mid y no pude. Gracias por su pronta respuesta.

También, debo realizar una función publica, donde me diga cuantos caracteres tenga la caja de texto, y no se puede realizar con len. por favor agradezco su pronta ayuda. El código de esta es así:

Código: [Seleccionar]
Public Function cantidad(ByVal caracteres As String) As Byte
        Dim a As Byte
        a = Mid(caracteres, 1)
        Return a
    End Function


Y la llamo en el evento keypress, así:
Código: [Seleccionar]
Private Sub Txtnombre_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Txtnombre.KeyPress
        Select Case Asc(e.KeyChar)
            Case 97 To 122, 8, 32
            Case 13
                If Txtnombre.Text <> "" Then
                    Txtcarnombre.Text = cantidad(Val(Txtnombre.Text))
                    Txtcedula.Focus()
                Else
                    Txtcarnombre.Text = ""
                End If
            Case Else
                e.Handled = True
        End Select

Espero que por favor me ayude, la verdad me queda muy difícil, entender esto.
« Última modificación: 27 de Abril 2016, 09:16 por César Krall »

César Krall

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2078
  • No vales por lo que dices, sino por lo que haces
    • Ver Perfil
    • aprenderaprogramar.com
Hola! Antes de nada pedirte que leas las indicaciones en https://www.aprenderaprogramar.com/foros/index.php?topic=1460.0 por ejemplo para poner título al tema, el título que has puesto no ayuda a saber de qué trata el tema ni a que una persona con conocimientos te pueda ayudar ya que el título no indica nada.

En el título debes especificar el lenguaje con el que estás trabajando, incluso la versión si es necesario, y una descripción del problema. Si no sabemos el lenguaje y/o versión no podremos ayudarte.

Recomendarte que revises este curso de Visual Basic: http://aprenderaprogramar.com/index.php?option=com_content&view=category&id=37&Itemid=61

Te dejo algunos ejemplos que te pueden servir para sacar ideas:

Tratamiento como cadena:

Código: [Seleccionar]
Option Explicit On
Public Class Form1

    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

    End Sub

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim texto As String
        Dim i As Integer
        Dim continuar As Boolean

        texto = Text1.text
        continuar = True
        MsgBox(texto)

        i = 1
        Do

            If (Val(Mid(texto, i, 1)) Mod 2 = 0) Then
                MsgBox(Mid(texto, i, 1) & " : es par")
            Else
                MsgBox(Mid(texto, i, 1) & " : es impar")
            End If
            i = i + 1
        Loop While (i <= Text1.TextLength)

    End Sub
End Class


Tratamiento numérico basado en calcular el resto de dividir entre 10 para ir obteniendo la última cifra sucesivamente:

Código: [Seleccionar]
Option Explicit On
Public Class Form1

    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

    End Sub

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

        Dim numero As Integer
        Dim modulo As Integer
        Dim restante As Integer

        numero = Val(Text1.Text)
        modulo = numero Mod 10
        restante = (numero - modulo) / 10

        Do While (modulo <> 0)
 
            MsgBox("El numero es " & numero & " el modulo es " & modulo & " restante es " & restante)
            modulo = restante Mod 10
            restante = (restante - modulo) / 10
        Loop

    End Sub
End Class


Saludos!
Responsable de departamento de producción aprenderaprogramar.com

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".