Autor Tema: Ejercicio Mientras... Hacer do while loop Visual Basic  (Leído 12593 veces)

Camots

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 7
    • Ver Perfil
Ejercicio Mientras... Hacer do while loop Visual Basic
« en: 15 de Diciembre 2012, 00:18 »
Hola en un ejercicio se me pide los siguiente: establecer un
valor de variable alfanumérica “Albert Einstein” como dato inicial. Mediante un bucle
Mientras…Hacer mostrar un menú “1. Intentar averiguar el nombre secreto 2. Ver
pista 3. Salir del programa. Si se elige la opción 1 el usuario debe tener opción a
introducir un nombre, y si coincide con el nombre secreto se muestra el mensaje “Has
acertado” y el programa debe terminar. Si el usuario falla se muestra el mensaje “Has
fallado” y se vuelve a mostrar el menú. Si el usuario elije la opción 2 se muestra la pista
“Es el físico más influyente del siglo XX” y se vuelve al menú. Si el usuario elije la
opción 3 se sale del programa.

Con la instruccion Salir Mientras no consigo volver al menu de inicio pero si con la Ir a
¿Es correcto o se puede con la Salir Mientras? Ahi va el codigo,dejo exit do como lo tenia aunque no valga


Código: [Seleccionar]
Option Explicit

Dim Menu As Integer
Dim Nombresecreto As String
Dim Respuesta As String

Private Sub Form_Load()
Nombresecreto = "Albert Einstein"

1
Menu = InputBox("1.-Intentar averiguar el nombre secreto" & vbCrLf & "2.-Ver pista" _
& vbCrLf & "3.-Salir del programa", "Elegir opcion")
Do While Menu <= 3 Or Menu >= 1
 If Menu = 1 Then
      Respuesta = InputBox("Introduzca nombre secreto")
       If Respuesta = Nombresecreto Then
         MsgBox ("Has acertado")
         End
       Else
         MsgBox ("Has fallado")
       GoTo 1
       Exit Do
         
       End If
 End If
 If Menu = 2 Then
         MsgBox ("Es el fisico mas influyente del siglo XX")
         GoTo 1
         Exit Do
 End If
 If Menu = 3 Then
         MsgBox ("Gracias por utilizar este programa")
         End
 End If
 Loop
 End Sub

« Última modificación: 20 de Septiembre 2014, 18:38 por Alex Rodríguez »

César Krall

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2078
  • No vales por lo que dices, sino por lo que haces
    • Ver Perfil
    • aprenderaprogramar.com
Re:Ejercicio Mientras... Hacer Visual Basic
« Respuesta #1 en: 15 de Diciembre 2012, 11:39 »
Hola, el planteamiento va bien orientado pero el uso del IrA o GoTo en general es algo que debemos conocer pero no usar porque genera distintos problemas. Aquí te dejo lo que sería un planteamiento para el código sin el uso del goto, lo importante es que seas capaz de interpretar este código, saber por qué funciona y tener la idea presente para otros casos similares. Fíjate que el bucle se repite indefinidamente hasta que se alcanza una condición de salida. (Nota: el programa es mejorable, entiendo que solo se trata de comprender el uso de bucles).

Dim Menu As Integer
Dim Nombresecreto As String

Private Sub Form_Load()
Nombresecreto = "Albert Einstein"
Do While Menu <> 3
Menu = InputBox("1.-Intentar averiguar el nombre secreto" & vbCrLf & "2.-Ver pista" _
& vbCrLf & "3.-Salir del programa", "Elegir opcion")
 If Menu = 1 Then
      Respuesta = InputBox("Introduzca nombre secreto entre comillas ")
       If Respuesta = Nombresecreto Then
         MsgBox ("Has acertado")
         End
       Else
         MsgBox ("Has fallado")
       End If
 End If
 If Menu = 2 Then
         MsgBox ("Es el fisico mas influyente del siglo XX")
 End If
 If Menu = 3 Then
         MsgBox ("Gracias por utilizar este programa")
         End
 End If
 Loop
 End Sub
Responsable de departamento de producción aprenderaprogramar.com

César Krall

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2078
  • No vales por lo que dices, sino por lo que haces
    • Ver Perfil
    • aprenderaprogramar.com
Re:Ejercicio Mientras... Hacer Visual Basic
« Respuesta #2 en: 15 de Diciembre 2012, 11:42 »
Nota: como vez, en el ejemplo que te he puesto no sería necesario el uso de un salir mientras, simplemente cuando se cumple una condición de terminación terminamos.
Responsable de departamento de producción aprenderaprogramar.com

Camots

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 7
    • Ver Perfil
Re:Ejercicio Mientras... Hacer Visual Basic
« Respuesta #3 en: 15 de Diciembre 2012, 14:18 »
Gracias Cesar voy por modificacion directa de flujos,pense que iban por ahi los tiros,pero se me hacia raro tener que usar un go to.El codigo intento escribirlo lo mas sencillo posible para que funcione,en un futuro tratare de mejorarlo.Un saludo

César Krall

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2078
  • No vales por lo que dices, sino por lo que haces
    • Ver Perfil
    • aprenderaprogramar.com
Re:Ejercicio Mientras... Hacer Visual Basic
« Respuesta #4 en: 15 de Diciembre 2012, 18:30 »
Ten en cuenta que usar un End también es modificación del flujo del programa, ya que lo natural sería que la última instrucción en ejecutarse fuera la última escrita, pero al introducir un End abortamos y finalizamos la ejecución de un programa en un punto intermedio.
Responsable de departamento de producción aprenderaprogramar.com

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".