• Miércoles 1 de Mayo de 2024, 23:33

Autor Tema:  Ingresar un numero de 4 cifras  (Leído 3499 veces)

fraj

  • Nuevo Miembro
  • *
  • Mensajes: 19
    • Ver Perfil
Ingresar un numero de 4 cifras
« en: Martes 2 de Junio de 2009, 20:42 »
0
hi, weno tengo problemas con los numeros extremos
ejemplo
4512 los numeros extremos son 4y 2 , pero tiene q salir asi 42
Quien me puede ayudar ¡¡¡¡¡
DE antemano muchas gracias
ak mi ejerccio q solo me falta los numeros extremos

ingrese un nuemero de cuatro cifras
deve vizualisar
numero extremos
numeros medios
la suma de los numeros extremos y medios


Código: Visual Basic
  1. Dim nu As Integer, extre As Integer, cent As Integer, cart As Integer, i As Integer, suma As Integer
  2.  
  3.  
  4. nu = Val(Txtnu.Text)
  5. cart = Len(CStr(nu))
  6.  
  7. If cart = 4 Then
  8.  
  9.   For i = 1 To 4 Step 3
  10.  
  11.  
  12. extre = Left(nu, i)'se supone q ak halla los numeros extremos
  13.  
  14.   Next
  15.  
  16. cent = Mid(nu, 2, 2)' Ak si halla los numeos medios
  17. Else
  18.  
  19. MsgBox (" Solo numeros de 4 cifras ")
  20. Txtnu.SetFocus
  21.  
  22. End If
  23.  
  24. suma = cent + extre
  25. Lblsuma.Caption = suma
  26. Lblcent.Caption = cent
  27. Lblexter.Caption = extre
  28.  
  29.  
  30. End Sub
  31.  
:huh:  :huh:

Nebire

  • Miembro HIPER activo
  • ****
  • Mensajes: 670
    • Ver Perfil
Re: Ingresar un numero de 4 cifras
« Respuesta #1 en: Martes 2 de Junio de 2009, 21:39 »
0
Esto no precisa ninguna ayuda.

Si no sabes resolver esto por tí mismo, dedícate a otra cosa, no importa que digas que eres un novato...
«Ma non troppo»
----> ModoVacaciones = False<----

fraj

  • Nuevo Miembro
  • *
  • Mensajes: 19
    • Ver Perfil
Re: Ingresar un numero de 4 cifras
« Respuesta #2 en: Miércoles 3 de Junio de 2009, 23:00 »
0
Cita de: "Nebire"
Esto no precisa ninguna ayuda.

Si no sabes resolver esto por tí mismo, dedícate a otra cosa, no importa que digas que eres un novato...

 :mellow: gracias por tu ayuda y apoyo
Pues ya lo hice   :P  :P   :D  :D  :D

Mira . Q te parce ?  &lt;_&lt;  &lt;_&lt;
Código: Visual Basic
  1. Private Sub Cmdver_Click()
  2. Dim nu As Integer, cent As Integer, cart As Integer, i As Integer, suma As Integer, extre1 As Integer, extre2 As Integer
  3.  
  4.  
  5. nu = Val(Txtnu.Text)
  6. cart = Len(CStr(nu))
  7.  
  8. If cart = 4 Then
  9.  
  10.    For i = 1 To 4 Step 3
  11.  
  12.    extre1 = Left(nu, 1)
  13.    extre2 = Left(StrReverse(nu), 1)
  14.    Next
  15.  
  16. cent = Mid(nu, 2, 2)
  17. Else
  18.  
  19. MsgBox (" Solo numeros de 4 cifras ")
  20. Txtnu.SetFocus
  21.  
  22. End If
  23.  
  24. suma = cent + extre1 & extre2
  25. Lblsuma.Caption = suma
  26. Lblcent.Caption = cent
  27. Lblexter.Caption = extre1 & extre2
  28.  

Nebire

  • Miembro HIPER activo
  • ****
  • Mensajes: 670
    • Ver Perfil
Re: Ingresar un numero de 4 cifras
« Respuesta #3 en: Miércoles 3 de Junio de 2009, 23:37 »
0
Si uno no sabe muy bien como, lo importante es resolverlo.

Pero cuando algo es muy simple o snecillamente bastante asequible uno debe ver si puede optimizar el código.

Así que te propongo que lo optimices un poquito porque le das muchas vueltas innecesariamente para obtener el primero y el último.
Debes quitar el bucle y el último debes obtenerlo sin utilizar el strreverse. Te doy una pista... si utilizas las función Left (izquierda) la función Mid 'middle' (Medio) no crees que existirá una función más ?, cuál podría ser ?.


Luego la comprobación de 4 caracteres aunque soluciona el caso, dado que procede de la interfaz deberías detectarlo cuando y dónde se introduce siempre que dicho textbox se usa exclusivamente para esta función y no de forma compartida para otros botones.

Txtnu.Text.maxlength= 4
y en el evento validate lo controlas...

Si utilizas el buscador verás que no hace mucho hablamos bastante sobre el evento validate donde hay ejemplos que te ilustran para qué sirve dicho evento y cómo se utiliza. ...
«Ma non troppo»
----> ModoVacaciones = False<----

fraj

  • Nuevo Miembro
  • *
  • Mensajes: 19
    • Ver Perfil
Re: Ingresar un numero de 4 cifras
« Respuesta #4 en: Martes 9 de Junio de 2009, 01:35 »
0
:mellow: Tienes mucha razon Nebire,   hice cosas demas  :huh:
asi me kdo mejor  
Q te parece ?  :unsure:  :unsure:

Código: Visual Basic
  1.   Private Sub Txtnu_Validate(Cancel As Boolean)
  2.      
  3.        Txtnu.MaxLength = 4
  4.        Txtnu.Text = Format$(Txtnu.Text, "###")
  5.      
  6.     End Sub
  7. Private Sub Cmdver_Click()
  8. Dim nu As Integer, extre As Integer, cent As Integer, cart As Integer, i As Integer, suma As Integer, extre1 As Integer, extre2 As Integer, total As Integer
  9.  
  10.  
  11. nu = Val(Txtnu.Text)
  12. cart = Len(CStr(nu))
  13.  
  14. If cart = 4 Then
  15.    extre1 = Left(nu, 1)
  16.    extre2 = Right(nu, 1)
  17.    cent = Mid(nu, 2, 2)
  18.  
  19. total = extre1 & extre2
  20. End If
  21. Lblsuma.Caption = cent + total
  22. Lblcent.Caption = cent
  23. Lblexter.Caption = extre1 & extre2
  24.  

Nebire

  • Miembro HIPER activo
  • ****
  • Mensajes: 670
    • Ver Perfil
Re: Ingresar un numero de 4 cifras
« Respuesta #5 en: Martes 9 de Junio de 2009, 05:37 »
0
Mmmm... a medias...

Código: Visual Basic
  1.  
  2.   'Txtnu.MaxLength = 4 ' Esto puedes establecerlo en la interfaz, especialmente si su valor no cambiará...
  3.  Private Sub Txtnu_Validate(Cancel As Boolean)
  4.             Txtnu.Text = Format$(Txtnu.Text, "0###")
  5.        
  6.         ' aquí me refería mas bién (además de darle formato ya que se usa como cifra) a que determines si tiene 4 y ninguna otra cantidad de caracteres
  7.       ' maxlength determina que el usuario sólo pueda introducir comio máximo 4 letras, por tanto aquí atenderemos a que no sean menos de 4, el código sería el siguiente
  8.  
  9.       ' si el texto no tiene los caracteres indicados no se permite al usuario perder el foco del control... date cuenta que previamente lo hemos formateado y además le hemos pedido que a la izquierda incluya ceros si lo precisa.
  10.      if  len(Txtnu.Text ) <> Txtnu.MaxLength then  
  11.              cancel=true
  12.              Cmdver.enabled=false
  13.      else
  14.           Cmdver.enabled= true
  15.      end if
  16.    End Sub
  17.  
  18.  

Por tanto si ya hemos filtrado el texto y estamos seguros que tiene 4 caracteres, dicha comprobación resulta redundante... ya que en el mismo, aseguramos de activar o desactivar el botón. Dicho botón debe estar desactivado al iniciarse la aplicación, sólo cuando se introduzca un texto 'válidado' se activa.

Código: Visual Basic
  1.  
  2.  
  3. Private Sub Cmdver_Click()
  4.     Dim nu As Integer, extre As Integer, cent As Integer, cart As Integer, i As Integer, suma As Integer, extre1 As Integer, extre2 As Integer, total As Integer
  5.  
  6.  ' aquí sobra la comprobación de 4 cifras, ya se hizo en el validate, necesario para poder activar el botón....
  7. nu = Val(Txtnu.Text)
  8.    extre1 = Left(nu, 1)
  9.    extre2 = Right(nu, 1)
  10.    cent = Mid(nu, 2, 2)
  11.  .....  ect...
  12.  
  13.  
«Ma non troppo»
----> ModoVacaciones = False<----