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

 

 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Programa Quiniela Deportiva
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Programa Quiniela Deportiva  (Leído 7,580 veces)
MicroHack

Desconectado Desconectado

Mensajes: 36



Ver Perfil WWW
Programa Quiniela Deportiva
« en: 17 Enero 2011, 19:02 pm »

Hola,

estoy aprendiendo vb.net y tengo que realizar un ejercicio usando arrays en el cual se solicita al usuario los resultados de un evento.

El programa funciona correctamente, solo que ahora quiero limitar y controlar el "valor" que el usuario introduce para que no sea diferente de "1", "X" o "2"

Para ello he querido usar un While, pero parece que algo falla porque no puedo indicarle los 3 valores a la vez.

Código
  1.   Dim _var As Char
  2.  
  3.                Console.Write("1º Pronostico: ")
  4.                _var = CChar(Console.ReadLine())
  5.  
  6.                While _var <> "1"c Or "2 c Or "X"c Or "x"  ' (Aqui es donde me da el Error)
  7.  
  8.                    Console.WriteLine("ERROR, Inique un valor entre 1/X/2: ")
  9.                    Console.ReadLine()
  10.  
  11.                End While

¿Alguna idea de porque no funciona?


« Última modificación: 17 Enero 2011, 22:36 pm por [D4N93R] » En línea

Hola cariño, pasa por favor, y cierra la puerta al entrar. No quiero que se oigan los disparos fuera.
79137913


Desconectado Desconectado

Mensajes: 1.169


4 Esquinas


Ver Perfil WWW
Re: Programa Quiniela Deportiva
« Respuesta #1 en: 17 Enero 2011, 19:22 pm »

HOLA!!!

Esto va en .NET (Programacion Gral) MOD: JAJAJA, NO DURO MUCHO EN VB6 XD.

Código
  1. While _var <> "1"c Or "2 c Or "X"c Or "x"

Primero, te faltan comillas en el 2, Suponiendo que sea VB6 repeti la condicion completa en cada una, y la "c" que pones despues del string no se para que es.

Aunque no veo ningun Vector(array) asi lo arreglaria yo:
Código
  1. While _var <> "1" Or _var <> "2" Or  _var <>"X" Or _var <> "x"



GRACIAS POR LEER!!!


« Última modificación: 17 Enero 2011, 19:23 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*
MicroHack

Desconectado Desconectado

Mensajes: 36



Ver Perfil WWW
Re: Programa Quiniela Deportiva
« Respuesta #2 en: 17 Enero 2011, 19:28 pm »

HOLA!!!

Esto va en .NET (Programacion Gral) MOD: JAJAJA, NO DURO MUCHO EN VB6 XD.

Código
  1. While _var <> "1"c Or "2 c Or "X"c Or "x"

Primero, te faltan comillas en el 2, Suponiendo que sea VB6 repeti la condicion completa en cada una, y la "c" que pones despues del string no se para que es.

Aunque no veo ningun Vector(array) asi lo arreglaria yo:
Código
  1. While _var <> "1" Or _var <> "2" Or  _var <>"X" Or _var <> "x"



GRACIAS POR LEER!!!

Perdon por ponerlo donde no era, lo de las comillas lo escribi mal aqui pero en el editor las tengo puestas.

Y poner:

Código
  1. While _var <> "1" Or _var <> "2" Or  _var <>"X" Or _var <> "x"

Tampoco funciona porque lo probe antes, uso el VB.NET en Visual Studio 2010

En línea

Hola cariño, pasa por favor, y cierra la puerta al entrar. No quiero que se oigan los disparos fuera.
.mokk.

Desconectado Desconectado

Mensajes: 177



Ver Perfil
Re: Programa Quiniela Deportiva
« Respuesta #3 en: 17 Enero 2011, 19:45 pm »

Gran error aqui mira

Código:
Console.WriteLine("ERROR, Inique un valor entre 1/X/2: ")
                    Console.ReadLine()

Porque no estas volviendo a asignarle el nuevo valor a _var y am en el while tmb esta incorrecto a como lo colocastes, podrias tambien usar un IF si se te es mas facil o talves un switch(creo que aqui es select case)

P.D. la letra c es alguna variable ? si es asi esta bien colocarla en el while si no lo es solo deberia funcionar usando

Código:
while _var <> 1 or _var <> 2 or _var <> "x"
'Codigo
Console.WriteLine("ERROR, Inique un valor entre 1/X/2: ")
                    _var = Console.ReadLine()
end while

79137913: Segun recuerdo en VB.net no difiere mayuscula o minuscula por lo que
_var <> "X" or _var <> "x"
seria lo mismo con solo colocar uno no?
« Última modificación: 17 Enero 2011, 19:50 pm por .mokk. » En línea

MicroHack

Desconectado Desconectado

Mensajes: 36



Ver Perfil WWW
Re: Programa Quiniela Deportiva
« Respuesta #4 en: 18 Enero 2011, 00:54 am »

No funciona de esa manera.

Nose, tiene que haber una sintaxis para que el while pueda concadenar condiciones y comprobarlas en una misma linea.  >:(
En línea

Hola cariño, pasa por favor, y cierra la puerta al entrar. No quiero que se oigan los disparos fuera.
.mokk.

Desconectado Desconectado

Mensajes: 177



Ver Perfil
Re: Programa Quiniela Deportiva
« Respuesta #5 en: 18 Enero 2011, 06:51 am »

O si se me habi pasado xD

en ves de Or, es And , porque usando or esque si alguna de esas se cumple repetira el while, lo cual lo que deceamos esque solo se repita si todas es lo mismo osea True, en fin el codigo quedaria asi:

Código
  1.   Dim _var As Char
  2.  
  3.        Console.Write("1&#186; Pronostico: ")
  4.        _var = CChar(Console.ReadLine())
  5.  
  6.        While _var <> "1" And _var <> "2" And _var <> "X" And _var <> "x"
  7.  
  8.            Console.WriteLine("ERROR, Inique un valor entre 1/X/2: ")
  9.            _var = CChar(Console.ReadLine())
  10.  
  11.        End While

Tenian razon sobre lo de "X" y "x", el programa si nota la diferencia, me disculpo por mi ignorancia en ese aspecto. jeje
« Última modificación: 18 Enero 2011, 06:57 am por .mokk. » En línea

MicroHack

Desconectado Desconectado

Mensajes: 36



Ver Perfil WWW
Re: Programa Quiniela Deportiva
« Respuesta #6 en: 18 Enero 2011, 13:09 pm »

EDIT: Esta es la sintaxis correcta

Código:

While (_var <> "1"c And _var <> "2"c And _var <> "x"c And _var <> "X"c)
    Console.WriteLine("ERROR, Inique un valor entre 1/X/2: ")
                    _var = CChar(Console.ReadLine())


Ahora si me funciona, gracias a todos.
« Última modificación: 18 Enero 2011, 13:57 pm por MicroHack » En línea

Hola cariño, pasa por favor, y cierra la puerta al entrar. No quiero que se oigan los disparos fuera.
79137913


Desconectado Desconectado

Mensajes: 1.169


4 Esquinas


Ver Perfil WWW
Re: Programa Quiniela Deportiva
« Respuesta #7 en: 18 Enero 2011, 15:36 pm »

HOLA!!!

79137913: Segun recuerdo en VB.net no difiere mayuscula o minuscula por lo que
_var <> "X" or _var <> "x"
seria lo mismo con solo colocar uno no?

En cuanto a manejo de variables no diferencia entre mayusculas y minusculas, pero en manejo de strings (cadenas de texto) si diferencia, * si osea si pones un in que sea x=X va a ser true, pero si pones un if que sea "x"="X" va a ser false.

*MOD: Para que no diferencie, tendrias que hacer algo asi UCase("x")=UCase("X") o sino LCase("x")=LCase("X")

GRACIAS POR LEER!!!
« Última modificación: 18 Enero 2011, 15:39 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*
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
¿ Alguien juega a la Quiniela (españa) ? Que me resuelva unas dudas !!
Foro Libre
Mr.Know 1 3,267 Último mensaje 1 Noviembre 2010, 18:04 pm
por Arkaitz10
Comprobar nº aciertos en una quiniela reducida de 7 dobles C#
Ejercicios
elnorber 0 10,595 Último mensaje 18 Marzo 2011, 18:44 pm
por elnorber
Programar en C quiniela.
Programación C/C++
pepeluoman 6 5,030 Último mensaje 30 Diciembre 2013, 14:56 pm
por dato000
Programar quiniela en C.
Programación General
pepeluoman 6 4,772 Último mensaje 23 Enero 2014, 22:54 pm
por jdomgo3
Programar quiniela en C.
Programación C/C++
pepeluoman 7 6,470 Último mensaje 3 Enero 2014, 15:06 pm
por leosansan
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines