Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Correccion Programa
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Correccion Programa 
 
Hola. Estoy haciendo un programa para aprender las tablas de multiplicar.
Este programa consta de dos label en los que aparecen números del 1 al 10 aleatoriamente, a los que se unen otros dos que cuentan los fallos y aciertos.
El usuario introduce el resultado del producto de los dos primeros label en un textbox y, tras pulsar un botón, aparece un mensaje que le indica si ha acertado o fallado, y en el caso de fallo,  le indica el resultado correcto.
Cada vez que el usuario acierta o falla, se añade un acierto o fallo mas al contador. Y allí es justo donde radica el problema, ya que cada vez que hay una nueva pregunta, el contador se resetea, de manera que cuando hay un acierto seguido de un fallo, se borra el acierto y se añade el fallo; y cuando hay dos seguidos, el contador no pasa del 1.

Este es el código, me gustaría que lo mirarais por si veis el fallo que yo no encuentro:
PUBLIC SUB pregunta()
DIM arriba, abajo, aciertos, fallos AS Integer
RANDOMIZE
arriba = Int(Rnd * 11)
abajo = Int(Rnd * 11)
Label1.Text = arriba
Label2.Text = abajo
TextBox1.Text = ""
END

PUBLIC SUB Form_Open()
pregunta
END


PUBLIC SUB Button1_Click()
pregunta
END

PUBLIC SUB comprobar()
DIM respuesta, arriba, abajo, solucion, aciertos, fallos AS Integer
respuesta = TextBox1.Text
solucion = (Label1.Text * Label2.Text)
IF respuesta = Int(solucion) THEN
Message.Info("la respuesta es correcta")
INC (aciertos)
ELSE
Message.Info("te has equivocado, la respuesta es " & solucion)
INC (fallos)
ENDIF
Label5.Text = aciertos
Label7.Text = fallos
IF Int(aciertos + fallos) = 10 THEN
Message.Info("tu puntuacion es " & Val(aciertos - fallos))
ENDIF
  pregunta
END

PUBLIC SUB Button2_Click()
comprobar
END

PUBLIC SUB TextBox1_KeyPress()
IF Key.Code = Key.Enter THEN comprobar
END


 

 



 
última edición por AGarcia el Domingo, 25 Septiembre 2011, 19:49; editado 1 vez 
AGarcia - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Correccion Programa 
 
Sin mirar mucho el código, el problema radica en el ámbito de las variables "aciertos" y "fallos" que deberían de ser globales.

Sácalas de los procedimientos "pregunta()" y "comprobar()" y hazlas Private al principio del código.

PRIVATE aciertos AS Integer
PRIVATE fallos AS Integer

PUBLIC SUB pregunta()
    DIM arriba, abajo AS Integer
    RANDOMIZE
    arriba = Int(Rnd * 11)
    abajo = Int(Rnd * 11)
    Label1.Text = arriba
    Label2.Text = abajo
    TextBox1.Text = ""
END

PUBLIC SUB Form_Open()
    pregunta
END


PUBLIC SUB Button1_Click()
    pregunta
END

PUBLIC SUB comprobar()
    DIM respuesta, arriba, abajo, solucion AS Integer
    respuesta = TextBox1.Text
    solucion = (Label1.Text * Label2.Text)
    IF respuesta = Int(solucion) THEN
        Message.Info("la respuesta es correcta")
        INC (aciertos)
    ELSE
        Message.Info("te has equivocado, la respuesta es " & solucion)
        INC (fallos)
    ENDIF
    Label5.Text = aciertos
    Label7.Text = fallos
    IF Int(aciertos + fallos) = 10 THEN
        Message.Info("tu puntuacion es " & Val(aciertos - fallos))
    ENDIF
    pregunta
END

PUBLIC SUB Button2_Click()
    comprobar
END

PUBLIC SUB TextBox1_KeyPress()
    IF Key.Code = Key.Enter THEN comprobar
END
 


Por cierto, es muy conveniente indentar el código y dar nombres significativos a los controles y variables para mejor comprensión.
 

Saludos
 




===================
Jesús Guardón

Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".

"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
 
jguardon - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Correccion Programa 
 
Gracias. Ya me funciona. Tambien me gustaría arreglar el evento keypress, a fin de poder activar la comprobación pulsando enter sobre el textbox.
Podriais explicarme como usarlo?

Gracias por anticipado
 



 
AGarcia - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Correccion Programa 
 
Hola amigo, debes cambiar esto
IF Key.Code = Key.Enter THEN comprobar
por esto otro:
IF Key.Code = Key.Return THEN comprobar

Saludos
 




===================
Migrando desde visual basic, el Gambas de Ms
Mi blog gambero
 
Dani26 - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Correccion Programa 
 
Gracias. Os envio la version preliminar:

Instalador

Codigo fuente
 



 
última edición por AGarcia el Lunes, 26 Septiembre 2011, 15:07; editado 1 vez 
AGarcia - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Correccion Programa 
 
sube los files a un server... q no sea google sale error 404... algo como mediafire...

saludos...
 



 
misael - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Correccion Programa 
 
Aqui esta de nuevo, esta vez en ubuntu one: http://ubuntuone.com/003SuxO3x4cC0IQiwstEsz
 



 
última edición por AGarcia el Lunes, 26 Septiembre 2011, 18:33; editado 2 veces 
AGarcia - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Ejecutar Programa Con SHELL/EXEC Y Respond... destroyer General 6 Sabado, 11 Junio 2011, 08:00 Ver último mensaje
razaAztk
No hay nuevos mensajes Preparar Nuestro Programa Para Un Usuario.... Shell General 5 Viernes, 21 Octobre 2011, 13:54 Ver último mensaje
Dani26
No hay nuevos mensajes Mi Primer Programa Marta Aplicaciones/Fragmentos de Código 2 Sabado, 24 Marzo 2012, 11:32 Ver último mensaje
jsbsan
No hay nuevos mensajes Comunicacion De Dispositivo Movil + Progra... tincho General 3 Viernes, 06 May 2016, 09:48 Ver último mensaje
tincho
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron