elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Ayuda con programa en Visual Basic
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda con programa en Visual Basic  (Leído 3,566 veces)
Nightwinds

Desconectado Desconectado

Mensajes: 21


Ver Perfil
Ayuda con programa en Visual Basic
« en: 16 Febrero 2011, 17:20 pm »

Crea un programa que muestre en un listbox todos los numeros pares entre 2 limites que determine el usuario.
Mi problema es que no me respeta el limite superior.
 
Private Sub Vw_Click()
Dim x1 As Integer
Dim y1 As Integer
Dim z As Integer
r = 2
x1 = Val(x.Text)
y1 = Val(y.Text)
For x1 = r To y1

z = x1 * r
c.AddItem z
Next x1
End Sub


En línea

Hurubnar

Desconectado Desconectado

Mensajes: 299



Ver Perfil WWW
Re: Ayuda con programa en Visual Basic
« Respuesta #1 en: 16 Febrero 2011, 18:29 pm »

En realidad, eso que tu has hecho no muestra los números pares de una secuencia, si no que multiplica x1 por r unas y veces: (y(x1*r)). Aquí te dejo lo que yo haría:

Código
  1. Dim i As Integer
  2. Dim j As Integer
  3.  
  4. i = Text1.Text
  5. j = Text2.Text
  6.  
  7. While i <= j
  8. If i / 2 = CInt(i / 2) Then
  9.    List1.AddItem (i)
  10. End If
  11. i = i + 1
  12. Wend

Eso haría que aparecieran en el ListBox los números pares desde i hasta j, es decir: [i, j]
Espero que te sirva,

Un saludo


En línea

79137913


Desconectado Desconectado

Mensajes: 1.169


4 Esquinas


Ver Perfil WWW
Re: Ayuda con programa en Visual Basic
« Respuesta #2 en: 16 Febrero 2011, 18:32 pm »

HOLA!!!

Código
  1. Private Sub Vw_Click()
  2. Dim x1 As Integer
  3. Dim y1 As Integer
  4. Dim z As Integer
  5. r = 2
  6. x1 = Val(x.Text)
  7. y1 = Val(y.Text)
  8. For x1 = r To y1 ' ERROR GRAVE GUARDSATE LA VARIABLE X.TEXT EN X1 Y ACA
  9.             ' LA SOBRE ESCRIBIS CON R QUE ES 2 ...
  10.             ' APARTE SI HACES QUE VAYA HASTA Y1 AL MULTIPLICAR POR R QUE ES 2
  11.             ' VAS A LLEGAR HASTA Y1*2  
  12.  
  13. z = x1 * r
  14. c.AddItem z
  15. Next x1
  16. End Sub

Solucion slecciona para ver (manteniendo tu estructura de codigo):
Private Sub Vw_Click()
DIM X1 AS INTEGER
DIM X2 AS INTEGER
DIM Z AS INTEGER
DIM R AS INTEGER
    x1 = Val(x.Text)
    y1 = Val(y.Text)
    R=2
    FOR X1 = X1 TO Y1
        Z = X1*R
        IF Z > Y1 THEN EXIT FOR
        c.AddItem z
    NEXT
End Sub

GRACIAS POR LEER!!!
« Última modificación: 16 Febrero 2011, 19:08 pm por 79137913 » En línea

"Como no se puede igualar a Dios, ya he decidido que hacer, ¡SUPERARLO!"
"La peor de las ignorancias es no saber corregirlas"

 79137913                          *Shadow Scouts Team*
Hurubnar

Desconectado Desconectado

Mensajes: 299



Ver Perfil WWW
Re: Ayuda con programa en Visual Basic
« Respuesta #3 en: 16 Febrero 2011, 19:00 pm »

O bien entendí mal, o el código de 79137913 es incorrecto... He entendido que se debían mostrarse en un ListBox los números pares de una secuencia (p.ej: desde 2 (que sería x) hasta el 30 (que sería y), vuestros códigos muestran números pares hasta 60 sin contar el 2). Entonces... ¿Qué es esa R que ponéis?

Código Nightwinds [incorrecto]:
Código
  1. Private Sub Vw_Click()
  2. Dim x1 As Integer
  3. Dim y1 As Integer
  4. Dim z As Integer
  5. r = 2
  6. x1 = Val(x.Text)
  7. y1 = Val(y.Text)
  8. For x1 = r To y1
  9.  
  10. z = x1 * r
  11. c.AddItem z
  12. Next x1
  13. End Sub

Código 79137913 [incorrecto]:
Código
  1. Private Sub Vw_Click()
  2. DIM X1 AS INTEGER
  3. DIM X2 AS INTEGER
  4. DIM Z AS INTEGER
  5. DIM R AS INTEGER
  6.    x1 = Val(x.Text)
  7.    y1 = Val(y.Text)
  8.    R=2
  9.    FOR X1 = X1 TO Y1
  10.        Z = X1*R
  11.        IF X1 > Y1 THEN EXIT FOR 'Este X1 se deberia cambiar por Z
  12.        c.AddItem z
  13.    NEXT
  14. End Sub

Código 79137913 [corregido]:
Código
  1. Private Sub Vw_Click()
  2. Dim X1 As Integer
  3. Dim X2 As Integer
  4. Dim Z As Integer
  5. Dim R As Integer
  6.    X1 = Val(x.Text)
  7.    Y1 = Val(y.Text)
  8.    R = 2
  9.  
  10.    For X1 = X1 To Y1
  11.        Z = X1 * R
  12.        If Z > Y1 Then Exit For 'Con el cambio hecho
  13.        c.AddItem Z
  14.    Next
  15. End Sub

El código que yo propuse antes ahora manteniendo la estructura de Nightwinds [correcto]:
Código
  1. Private Sub Vw_Click()
  2. Dim x As Integer
  3. Dim y As Integer
  4.  
  5. x = Text1.Text 'desde
  6. y = Text2.Text 'hasta
  7.  
  8. While x <= y
  9. If x / 2 = CInt(x / 2) Then
  10.    List1.AddItem (x)
  11. End If
  12. x = x + 1
  13. Wend
  14. End Sub

Corríganme si me equivoco,
Un saludo
En línea

79137913


Desconectado Desconectado

Mensajes: 1.169


4 Esquinas


Ver Perfil WWW
Re: Ayuda con programa en Visual Basic
« Respuesta #4 en: 16 Febrero 2011, 19:08 pm »

HOLA!!!

 @Herio : xD Es cierto, me pasa por no testear y programar directo aca en el foro XD.

Igual yo no lo hubiese programado asi, pero segui la logica de Nightwinds

GRACIAS POR LEER!!!
En línea

"Como no se puede igualar a Dios, ya he decidido que hacer, ¡SUPERARLO!"
"La peor de las ignorancias es no saber corregirlas"

 79137913                          *Shadow Scouts Team*
Hurubnar

Desconectado Desconectado

Mensajes: 299



Ver Perfil WWW
Re: Ayuda con programa en Visual Basic
« Respuesta #5 en: 16 Febrero 2011, 19:11 pm »

@79137913: Dudé si estaba mal o si yo lo entendí mal, puesto que eres tú quien suele corregirme y ayudarme en lo que respecta al Visual Basic 6, x)

Un saludo
En línea

Nightwinds

Desconectado Desconectado

Mensajes: 21


Ver Perfil
Re: Ayuda con programa en Visual Basic
« Respuesta #6 en: 17 Febrero 2011, 14:26 pm »

Gracias sus post fueron de mucha ayuda
« Última modificación: 17 Febrero 2011, 14:30 pm por Nightwinds » En línea

Hurubnar

Desconectado Desconectado

Mensajes: 299



Ver Perfil WWW
Re: Ayuda con programa en Visual Basic
« Respuesta #7 en: 17 Febrero 2011, 14:29 pm »

Me alegro de veras..

Un saludo
En línea

BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: Ayuda con programa en Visual Basic
« Respuesta #8 en: 19 Febrero 2011, 08:08 am »

.
Yo lo haria así, si quieres saber para que el operador And y que funcion tiene lee un poco más; se les olvido el Step del For Next.

Código
  1.  
  2. Option Explicit
  3.  
  4. Private Sub Form_Load()
  5. Dim lng_i           As Variant
  6. Dim lng_ret()       As Long
  7.    For lng_i = 0 To GetParNumbers(-501, -11, lng_ret) - 1
  8.        Debug.Print lng_ret(lng_i)
  9.    Next lng_i
  10. End Sub
  11.  
  12. Public Function GetParNumbers(ByVal ThisIniVal As Long, ByVal ThisEndVal As Long, ByRef ArrOut() As Long) As Long
  13. Dim lng_i           As Long
  14. Dim lng_d           As Long
  15.    If ThisIniVal > ThisEndVal Then
  16.        lng_i = ThisEndVal
  17.        ThisEndVal = ThisIniVal
  18.        ThisIniVal = lng_i
  19.    End If
  20.    If (ThisIniVal And 1) = 1 Then ThisIniVal = ThisIniVal + 1
  21.    If (ThisEndVal And 1) = 1 Then ThisEndVal = ThisEndVal - 1
  22.    lng_i = (ThisEndVal - ThisIniVal) \ 2
  23.    If Not ((lng_i And &H80000000) = &H80000000) Then
  24.        ReDim ArrOut(0 To lng_i)
  25.        For lng_i = ThisIniVal To ThisEndVal Step 2
  26.            ArrOut(lng_d) = lng_i
  27.            lng_d = lng_d + 1
  28.        Next lng_i
  29.    End If
  30.    GetParNumbers = lng_d
  31. End Function
  32.  
  33.  

Dulces Lunas!¡.
« Última modificación: 19 Febrero 2011, 08:22 am por BlackZeroX▓▓▒▒░░ » En línea

The Dark Shadow is my passion.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda con programa en Visual Basic
Ingeniería Inversa
Revolutions 4 4,192 Último mensaje 11 Junio 2006, 07:32 am
por BACKFIRE
ayuda cnun programa de visual basic
Ejercicios
fumi 5 6,036 Último mensaje 8 Mayo 2009, 22:08 pm
por fumi
Ayuda - crear programa con visual basic que envie datos a email
Programación Visual Basic
Canimanz 1 5,493 Último mensaje 26 Abril 2010, 01:52 am
por shug0
Ayuda con programa Armadillo/Visual Basic 6.0
Ingeniería Inversa
gastonp 5 6,311 Último mensaje 10 Septiembre 2010, 04:52 am
por MCKSys Argentina
Ayuda con algun programa de Visual basic
.NET (C#, VB.NET, ASP)
zenydark 0 1,850 Último mensaje 3 Febrero 2011, 02:54 am
por zenydark
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines