Autor Tema: Ejercicio 6 - Semana 10 "Fundamentos de programación I"  (Leído 3109 veces)

JValero

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 27
    • Ver Perfil
Ejercicio 6 - Semana 10 "Fundamentos de programación I"
« en: 09 de Septiembre 2014, 15:59 »
Hola otra vez,

En el ejercicio 6 me solicitan llevar a cabo un programa que realice el cálculo del area de un rectángulo y me abra una ventana facilitando el resultado y dandome la opción a realizar un nuevo cálculo o a cerrar la aplicación.

No tengo problemas en cerrar la aplicación y que el programa me muestre un mensaje de despedida pero no consigo que me de la opción de volver a calcular un nuevo area.

- ¿Dónde está el error? ¿Qué tendría que añadir?

Código: [Seleccionar]
Option Explicit

Dim Base As Integer
Dim Altura As Integer
Dim Area As Integer
Dim Aceptacion As Integer


Private Sub Command1_click()
Base = Text1
Altura = Text2
Aceptacion = vbYes
Do While Aceptacion = vbYes
Text1 = ""
Text2 = ""
Area = Base * Altura
Aceptacion = MsgBox("El area del rectángulo es de " & Area & " centímetros cuadrados" & vbCrLf & "¿Quieres calcular otro area?", vbYesNo, "Calculo de area")
Loop
If Aceptacion = vbNo Then
MsgBox ("Gracias por utilizar el programa")
End If

Gracias por vuestra ayuda y colaboración.

Saludos.

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
Re:Ejercicio 6 - Semana 10 "Fundamentos de programación I"
« Respuesta #1 en: 09 de Septiembre 2014, 17:28 »
El problema parece estar en la peculiaridad de Visual Basic en cuanto a la petición de datos en comparación con otros lenguajes (en otros lenguajes al pedir un dato se detiene el programa, y en el caso de estar dentro de un bucle, el bucle se detiene). Con visual Basic si introduces los datos con un textBox no hay detención del programa y si estás dentro de un bucle el bucle no se detiene.

Para forzar la petición del dato con detención de la ejecución evitando que se genere un bucle donde no puedes introducir los datos nuevamente puedes probar a utilizar inputbox (forma de pedir datos que sí da lugar a la detención del programa).

El código sería similar a esto (no lo he probado, pero guíate por la idea y haz pruebas tú mismo):

Código: [Seleccionar]
Option Explicit

Dim Base As Integer
Dim Altura As Integer
Dim Area As Integer
Dim Aceptacion As Integer

Private Sub Command1_click()
Aceptacion = vbYes
Do While Aceptacion = vbYes
Base = InputBox("Introduzca la base del rectángulo en cm", "Dato base")
Altura = InputBox("Introduzca la altura del rectángulo en cm", "Dato altura")
Area = Base * Altura
Aceptacion = MsgBox("El area del rectángulo es de " & Area & " centímetros cuadrados" & vbCrLf & "¿Quieres calcular otro area?", vbYesNo, "Calculo de area")
Loop
If Aceptacion = vbNo Then
MsgBox ("Gracias por utilizar el programa")
End If
End Sub


Como ves he prescindido de textbox, y la petición de datos comenzaría una vez se pulse el botón.

Otra opción que tienes es meter el código dentro de Private Sub Form Load, con lo cual directamente empezará la petición de datos sin tener que pulsar un botón. De ambas maneras (teniendo que pulsar un botón o sin tener que pulsarlo) la idea es que se ejecute un bucle cierto número de veces hasta que el usuario decida terminar.

Creo que con lo expuesto puedes intentar resolverlo.

Saludos

JValero

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 27
    • Ver Perfil
Re:Ejercicio 6 - Semana 10 "Fundamentos de programación I"
« Respuesta #2 en: 09 de Septiembre 2014, 18:05 »
Gracias de nuevo Alex...

Te estoy dando trabajo  ;)

 

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".