Foros aprenderaprogramar.com
Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: Yenifer Muete en 25 de Abril 2016, 08:30
-
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:
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:
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í:
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í:
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.
-
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:
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:
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!