Solución,
if y else
|
Realizamos
programas para la gestión de empresas. Empresas medianas y
pequeñas. Programas de contabilidad, cartera de pedidos
clientes proveedores, facturación control de albaranes,
tesorería cartera de cobros y pagos y estadísticas.
Nuestro
agradecimiento a todos los que por unas causas o por otras
visitan nuestra web. Gestión de empresas PYMES. Curso de
programación de Visual Basic.
|
Pues aquí están las soluciones,
creo que esta forma de darlas será la mejor, ya que no tendrás que
esperar a que esté lista la siguiente entrega para saber si has
conseguido resolver los problemillas/ejercicios con éxito...
El juego básico:
Dim n As Integer
Dim x As Integer
Randomize Timer
x = Int(Rnd * 100) + 1
Do
n = Val(InputBox$("Escribe un número del 1 al 100"))
If n = x Then Exit Do
If n < x Then
MsgBox "El número " & CStr(n) & " es menor."
Else
MsgBox "El número " & CStr(n) & " es mayor."
End If
Loop
MsgBox "Lo has acertado."
1. Comprobar que el número
introducido en el InputBox esté entre 1 y 100, en caso de que no
sea así, volver a preguntar. Una de las soluciones, sin usar el
GOTO:
Dim n As Integer
Dim x As Integer
Randomize Timer
x = Int(Rnd * 100) + 1
Do
Do
n = Val(InputBox$("Escribe un número del 1 al 100"))
Loop While n < 1 Or n > 100
If n = x Then Exit Do
If n < x Then
MsgBox "El número " & CStr(n) & " es menor."
Else
MsgBox "El número " & CStr(n) & " es mayor."
End If
Loop
MsgBox "Lo has acertado."
2. Si se escribe CERO
mostrar el número que el VB había "pensado" y terminar.
Dim n As Integer
Dim x As Integer
Randomize Timer
x = Int(Rnd * 100) + 1
Do
Do
n = Val(InputBox$("Escribe un número del 1 al 100"))
If n = 0 Then
MsgBox "Mi número era el " & CStr(x)
Unload Me
End
End If
Loop While n < 1 Or n > 100
If n = x Then Exit Do
If n < x Then
MsgBox "El número " & CStr(n) & " es menor."
Else
MsgBox "El número " & CStr(n) & " es mayor."
End If
Loop
MsgBox "Lo has acertado."
3. Cuando lo acertemos que
nos indique en cuantos intentos lo hemos conseguido.
Dim n As Integer
Dim x As Integer
Dim v As Integer
Randomize Timer
x = Int(Rnd * 100) + 1
Do
Do
n = Val(InputBox$("Escribe un número del 1 al 100"))
If n = 0 Then
MsgBox "Mi número era el " & CStr(x)
'Si está en el Form_Load
'End
'Si está en un procedimiento
Exit Sub
End If
Loop While n < 1 Or n > 100
v = v + 1
If n = x Then Exit Do
If n < x Then
MsgBox "El número " & CStr(n) & " es menor."
Else
MsgBox "El número " & CStr(n) & " es mayor."
End If
Loop
MsgBox "Lo has acertado en " & CStr(v) & " veces."
4. Ahora al revés, es
decir: que nosotros pensemos un número del 1 al 100 y el VB intente
adivinarlo, para ello deberá mostrarnos un número y nosotros
indicarle si lo ha acertado.