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

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Problemas con SELECT CASE
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Problemas con SELECT CASE  (Leído 7,403 veces)
stork32

Desconectado Desconectado

Mensajes: 10



Ver Perfil
Problemas con SELECT CASE
« en: 11 Octubre 2008, 20:29 pm »

Bueno es el primer tema que abra aca en esta pagina muy interesante. y decirles que ya llevo como 3 semanas leyendo este foro  :)

Yo estudio Ingenieria de Sistemas y estoy en II ciclo y estan enseñando a usar VB6,
el cual me gusta  :D pero tengo problemas con el aprendizaje. Quiero aprender y se que aqui en este foro lo lograre, CLARO! con la ayuda de ustedes  ;D

Mi problema es SELECT CASE nose muy bien como aplicarlo. En la Univ. me han dado un ejercicio que dice asi

"Supongamos que al efectuar la compra en un almacen, si adquirimos mas de 100 unidades de un mismo articulo, nos hacen un descuento del 30%, entre el 25 y 100 un 20% ; y entre 10 y 24 un 10% Y no hay descuento para una adquisicion de menos de 10 unidades. Diseñar un formulario donde se incluya los datos importantes y calcular el importe a pagar. Use Select Case."

Y ya avanze algo pero me sale error  :huh: a ver si alguien me ayuda

------------------------------------------------------------------------------------
Dim valor As Double
Dim descuento As Double
Private Sub cmdLimpiar_Click()
txtCantidad.Text = ""
txtSinDes.Text = ""
txtTotal.Text = ""

End Sub

Private Sub cmdResultado_Click()
Select Case Pelotas
Case Val(txtCantidad.Text) > 100
    lblDescuento.Caption = "Descuento de 30%"
    valor = Val(txtCantidad.Text) * 8
    txtSinDes.Text = valor
    descuento = valor * 30 / 100
    txtTotal.Text = valor - descuento
   
Case 100 > Val(txtCantidad.Text) >= 25
    lblDescuento.Caption = "Descuento de 20%"
    valor = Val(txtCantidad.Text) * 8
    txtSinDes.Text = valor
    txtTotal.Text = valor * 20 / 100
    txtTotal.Text = valor - descuento
   
Case 25 > Val(txtCantidad.Text) >= 10
    lblDescuento.Caption = "Descuento de 10%"
    valor = Val(txtCantidad.Text) * 8
    txtSinDes.Text = valor
    txtTotal.Text = valor * 10 / 100
    txtTotal.Text = valor - descuento
   
Case Val(txtCantidad.Text) < 10
    lblDescuento.Caption = "No hay Descuento"
    valor = Val(txtCantidad.Text) * 8
    txtSinDes.Text = valor
    txtTotal.Text = valor
    txtTotal.Text = valor - descuento
       
End Select
End Sub

Private Sub cmdSalir_Click()
Beep
End
End Sub

----------------------------------------------------------------------------------------------
Pues la mayor duda que tengo es que cuanto coloco 9 unidades de Pelotas me sigue saliendo con descuento de 30% pero esta mal. No deberia a ver descuento.

Para mi la falla esta aca:

"Case 25 > Val(txtCantidad.Text) >= 10"
"100 > Val(txtCantidad.Text) >= 25"
"Case Val(txtCantidad.Text) < 10"

Para mi esa son las fallas, pero como solucionarlo  :huh:

GRACIAS por leer este tema  :)
Y espero su ayuda.

Saludos!


En línea

Aprendiz (:
Spider-Net


Desconectado Desconectado

Mensajes: 1.165


Un gran poder conlleva una gran responsabilidad


Ver Perfil WWW
Re: Problemas con SELECT CASE
« Respuesta #1 en: 11 Octubre 2008, 21:25 pm »

Es que eso no se hace así amigo. Lo primero que veo es que la variable que usas en el case es una variable "pelotas" que en el código que has puesto yo no veo por ninguna parte. No sé si es que se te ha pasado ponerlo. Otra cosa es que aquí las comparaciones no se hacen exactamente igual que en matemáticas que es lo que veo que estás intentando xD.

Hay muchas formas de hacer esto, yo lo he hecho por ejemplo así:

Código
  1. Option Explicit
  2. Dim valor As Double
  3. Dim descuento As Double
  4. Dim pelotas As Integer
  5.  
  6. Private Sub cmdLimpiar_Click()
  7. txtCantidad.Text = ""
  8. txtSinDes.Text = ""
  9. txtTotal.Text = ""
  10. End Sub
  11.  
  12. Private Sub cmdResultado_Click()
  13. pelotas = Val(txtCantidad.Text)
  14. Select Case pelotas
  15.    Case Is > 100
  16.        lblDescuento.Caption = "Descuento de 30%"
  17.        valor = Val(txtCantidad.Text) * 8
  18.        txtSinDes.Text = valor
  19.        descuento = valor * 30 / 100
  20.        txtTotal.Text = valor - descuento
  21.  
  22.    Case Is < 100 And pelotas >= 25
  23.        lblDescuento.Caption = "Descuento de 20%"
  24.        valor = Val(txtCantidad.Text) * 8
  25.        txtSinDes.Text = valor
  26.        txtTotal.Text = valor * 20 / 100
  27.        txtTotal.Text = valor - descuento
  28.  
  29.    Case Is < 25 And pelotas >= 10
  30.        lblDescuento.Caption = "Descuento de 10%"
  31.        valor = Val(txtCantidad.Text) * 8
  32.        txtSinDes.Text = valor
  33.        txtTotal.Text = valor * 10 / 100
  34.        txtTotal.Text = valor - descuento
  35.  
  36.    Case Is < 10
  37.        lblDescuento.Caption = "No hay Descuento"
  38.        valor = Val(txtCantidad.Text) * 8
  39.        txtSinDes.Text = valor
  40.        txtTotal.Text = valor
  41.        txtTotal.Text = valor - descuento
  42. End Select
  43. End Sub

Consejo: Intenta indentar bien el código, te ayudará mucho cuando hagas códigos largos y necesites buscar cosas y hacer pequeños cambios.


En línea

stork32

Desconectado Desconectado

Mensajes: 10



Ver Perfil
Re: Problemas con SELECT CASE
« Respuesta #2 en: 11 Octubre 2008, 21:35 pm »

siii tienes razon :D pero Spider - Net mira lo que hice yo   :D MUY RARO ! pero salio  :o

MIRA  :)

-------------------------------------------------------------------------------------------------

Dim valor As Double
Dim descuento As Double
Private Sub cmdLimpiar_Click()
txtCantidad.Text = ""
txtSinDes.Text = ""
txtTotal.Text = ""
lblDescuento.Caption = ""

End Sub

Private Sub cmdResultado_Click()
Select Case Pelotas
Case Val(txtCantidad.Text) < 101
    lblDescuento.Caption = "Descuento de 30%"
    valor = Val(txtCantidad.Text) * 8
    txtSinDes.Text = valor
    descuento = valor * 30 / 100
    txtTotal.Text = valor - descuento
   
Case 100 > Val(txtCantidad.Text), 25 > Val(txtCantidad.Text)
    lblDescuento.Caption = "Descuento de 20%"
    valor = Val(txtCantidad.Text) * 8
    txtSinDes.Text = valor
    descuento = valor * 20 / 100
    txtTotal.Text = valor - descuento
   
Case 25 > Val(txtCantidad.Text), 10 > Val(txtCantidad.Text)
    lblDescuento.Caption = "Descuento de 10%"
    valor = Val(txtCantidad.Text) * 8
    txtSinDes.Text = valor
    descuento = valor * 10 / 100
    txtTotal.Text = valor - descuento
   
Case Val(txtCantidad.Text) > 10
    lblDescuento.Caption = "No hay Descuento"
    valor = Val(txtCantidad.Text) * 8
    txtSinDes.Text = valor
    txtTotal.Text = valor
   
       
End Select
End Sub

Private Sub cmdSalir_Click()
Beep
End
End Sub

-------------------------------------------------------------------------------------------------

Me confunde los ">" "<" ">=" "<=" es raro :S
En línea

Aprendiz (:
Spider-Net


Desconectado Desconectado

Mensajes: 1.165


Un gran poder conlleva una gran responsabilidad


Ver Perfil WWW
Re: Problemas con SELECT CASE
« Respuesta #3 en: 11 Octubre 2008, 21:48 pm »

Claro!, me alegro de que te saliese al final. Ya te dije que eso se puede hacer de muchas maneras distitnas, aunque sigo sin saber de donde sacas la variable pelotas. Yo en mi código la he tenido que declarar.

No es que el vb se haga un lío con los símbolos < > <= >=, es que tu sintaxis no era correcta. No puedes hacer esto: 25 >= Val(loquesea.text) < 100
Eso es incorrecto, algo correcto podría ser:

Val(loquesea.text)>=25 And Val(loquesea.text) < 100

Es sólo un ejemplo para que entiendas como funcionan las comparaciones. Te recomiendo leerte un buen manual de VB para que tengas bien claro ese tipo de cosas.

Saludos!

« Última modificación: 11 Octubre 2008, 21:49 pm por Spider-Net » En línea

stork32

Desconectado Desconectado

Mensajes: 10



Ver Perfil
Re: Problemas con SELECT CASE
« Respuesta #4 en: 11 Octubre 2008, 22:01 pm »

Siii  ;D Gracias  Spider-Net  :)

Pero a ver si tienes tiempo con un ultimo ejercicio, y dice asi:

Ejercicio 6

Contraseña

Código:

Dim i As Integer

Private Sub Command1_Click()
End
End Sub

Private Sub COmmand2_Click()
'trabajando con if y select case
If Text1.Text = "mar1" And Text".Text="mar1"Then
        MsgBox "Bienvenido a mi sistema"
Else

i=i-1
Select Case i
Case 0
vez="ninguna"
Case 1
vez="una primera"
Case 1
vez = "una segunda"
End Select


Pues eso es todo!  :o y  no tengo idea que me pide    :huh: a ver si me ayuda
como ultima vez Spider-Net u otro  :rolleyes:

Saludos.
En línea

Aprendiz (:
s E t H

Desconectado Desconectado

Mensajes: 152


Ha tenido un sueño donde todos los pollos eran libres de cruzar una carretera sin tener que justificar sus actos.


Ver Perfil WWW
Re: Problemas con SELECT CASE
« Respuesta #5 en: 11 Octubre 2008, 22:12 pm »

no hay ninguna consigna? entonces tendras que arreglar los errores?

yo encontre alguno, pero es tu tarea  :rolleyes:

lo que no entiendo es para que se usa la variable Vez
En línea

stork32

Desconectado Desconectado

Mensajes: 10



Ver Perfil
Re: Problemas con SELECT CASE
« Respuesta #6 en: 11 Octubre 2008, 22:19 pm »

Bueno es mi tarea y la estoy tratando de hacer son 6 ejercicios y me falta este ultimo  :D

Pero el text1.text= "mar1" y el text2.text= "mar1" son el ID y la Contraseña para ingresar al sistema ya estoy arreglando eso. Pero el  problema es la variable " vez "
esa cosa tengo que remplazarlo... Pero por que :huh:

En línea

Aprendiz (:
Spider-Net


Desconectado Desconectado

Mensajes: 1.165


Un gran poder conlleva una gran responsabilidad


Ver Perfil WWW
Re: Problemas con SELECT CASE
« Respuesta #7 en: 11 Octubre 2008, 22:40 pm »

No creo que tengas que reemplazarlo por nada, la variable vez es el número de intentos que te queda para meter la contraseña correcta.. Al menos eso creo yo. Y creo que pretenden que te deje intentar 3 veces la contraseña.
En línea

stork32

Desconectado Desconectado

Mensajes: 10



Ver Perfil
Re: Problemas con SELECT CASE
« Respuesta #8 en: 11 Octubre 2008, 23:28 pm »

pues SI tienes mucha razon Spider - Net.  Aun sigo intentado pero no sale.
GRACIAS POR SU AYUDA Spider-Net y s E t H  :)
En línea

Aprendiz (:
Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: Problemas con SELECT CASE
« Respuesta #9 en: 11 Octubre 2008, 23:38 pm »

Que es lo que no sale.. cual es el problema? Error?
Vistazo de 5 segundos..  :P

Citar
Text".Text="mar1"Then

Y esto otro...

Citar
Case 1
vez="una primera"
Case 1
vez = "una segunda"
End Select

También el i no comienza con valor alguno... así que si a 0 le restas uno, va quedando negativo.. nunca va a valera 2 o 1 o 0

 :rolleyes:
« Última modificación: 11 Octubre 2008, 23:41 pm por Novlucker » En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein
Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Hacer valores aleatorios sin Select Case
Programación Visual Basic
oskoa 7 3,784 Último mensaje 14 Noviembre 2011, 19:28 pm
por BlackZeroX
consejo sobre el uso del Select Case en este ejercicio
Programación Visual Basic
lio crossroad 6 4,379 Último mensaje 21 Abril 2013, 22:48 pm
por lio crossroad
[DUDA] Select Case
Programación Visual Basic
Zodiak98 2 2,240 Último mensaje 21 Mayo 2013, 13:24 pm
por 79137913
Ayuda con Select Case VBS
Scripting
Wartherion 5 3,440 Último mensaje 12 Junio 2015, 11:28 am
por Eleкtro
Como Puedo Poner Notas En Select Case ?
Programación Visual Basic
R3Z 2 2,048 Último mensaje 14 Julio 2015, 16:11 pm
por 79137913
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines