Monografias.com > Uncategorized
Descargar Imprimir Comentar Ver trabajos relacionados

Operaciones matemáticas para bachilleres (página 5)




Enviado por jaimemontoya



Partes: 1, 2, 3, 4, 5, 6

respuesta.Text = "-"
+ respuesta.Text

Else 'Si el
número es positivo.

While Mid(respuesta.Text,
1, 2) = "00" Or Mid(respuesta.Text, 1, 2) =
"01" Or
Mid(respuesta.Text, 1, 2) = "02" Or
Mid(respuesta.Text, 1, 2) = "03" Or
Mid(respuesta.Text, 1, 2) = "04" Or
Mid(respuesta.Text, 1, 2) = "05" Or
Mid(respuesta.Text, 1, 2) = "06" Or
Mid(respuesta.Text, 1, 2) = "07" Or
Mid(respuesta.Text, 1, 2) = "08" Or
Mid(respuesta.Text, 1, 2) = "09" 'Para que los ceros a
la izquierda se borren.

respuesta.Text = Mid(respuesta.Text, 2,
Len(respuesta.Text) – 1)

End While

For ciclo
As Integer = 1 To Len(respuesta.Text)

caracterevaluado1 = Mid(respuesta.Text, ciclo, 1)
'Toma el caracter correspondiente,
dependiendo de la iteración en la que vaya el ciclo
For.

If caracterevaluado1
= "/" Then

plecaubicacion = ciclo

End If

Next

While Mid(respuesta.Text,
plecaubicacion + 1, 2) = "00"
Or Mid(respuesta.Text,
plecaubicacion + 1, 2) = "01"
Or Mid(respuesta.Text,
plecaubicacion + 1, 2) = "02"
Or Mid(respuesta.Text,
plecaubicacion + 1, 2) = "03"
Or Mid(respuesta.Text,
plecaubicacion + 1, 2) = "04"
Or Mid(respuesta.Text,
plecaubicacion + 1, 2) = "05"
Or Mid(respuesta.Text,
plecaubicacion + 1, 2) = "06"
Or Mid(respuesta.Text,
plecaubicacion + 1, 2) = "07"
Or Mid(respuesta.Text,
plecaubicacion + 1, 2) = "08"
Or Mid(respuesta.Text,
plecaubicacion + 1, 2) = "09"
'Para quitar los ceros del
denominador.

respuesta.Text = Mid(respuesta.Text, 1, plecaubicacion –
1) + "/" +
Mid(respuesta.Text, plecaubicacion + 2,
Len(respuesta.Text)) 'Para que si el
usuario escribe "433/0000432", cambiará a
"443/432".

End While

End If

If (respuesta.Text =
TextBoxoculto.Text) Then
'Si la respuesta introducida por el usuario
es igual a la respuesta correcta.

Dim mensaje
As String

mensaje = MsgBox("¡Felicidades, su respuesta es
correcta!", MsgBoxStyle.OkOnly, "Juego de
Operaciones
Matemáticas para
Bachilleres")

If mensaje = 1
Then 'Si el
botón presionado es el "Ok" (que es el único que se
le va a presentar entonces ese se tiene que
presionar).

'Generación de números
aleatorios.

numero1.Text = obtenernumerorandom(1, 99) +
"/" + obtenernumerorandom(1,
99) 'Imprime un número random
entre 1 y 99 contatenado con "+" concatenado con un número
random entre 1 y 99, para obtener algo como "34/42", y eso se
imprime en el TextBox "numero1".

numero2.Text = obtenernumerorandom(1, 99) +
"/" + obtenernumerorandom(1,
99) 'Imprime un número random
entre 1 y 99 contatenado con "+" concatenado con un número
random entre 1 y 99, para obtener algo como "34/42", y eso se
imprime en el TextBox "numero2".

respuesta.Text = ""
'Para borrar la respuesta anterior y que el
usuario escriba una nueva respuesta.

respuesta.Focus() 'Para que
el cursor esté listo y que el usuario escriba su
próxima respuesta.

End If

respuestaaciertos += 1 'Suma un acierto.

aciertos.Text = respuestaaciertos 'Imprime el número de aciertos en el
TextBox.

If respuestaaciertos +
respuestadesaciertos = 20 Then

resultado1.aciertos1.Text = aciertos.Text
'El número de aciertos se manda a
imprimir al TextBox "aciertos1" que está en el formulario
"resultado1".

resultado1.desaciertos1.Text = desaciertos.Text
'El número de desaciertos se manda a
imprimir al TextBox "desaciertos1" que está en el
formulario "resultado1".

resultado1.notafinal1.Text = 10 / 20 *
Val(aciertos.Text)

resultado1.Show() 'Mandar a
llamar al formulario de resultados. El juego ha
terminado.

End If

Else 'Si la
respuesta introducida por el usuario es diferente de la respuesta
correcta.

Dim mensaje
As String

mensaje = MsgBox("¡Incorrecto! La respuesta es: " +
TextBoxoculto.Text + ".", MsgBoxStyle.OkOnly,
"Juego de Operaciones Matemáticas
para Bachilleres")

If mensaje = 1
Then 'Si el
botón presionado es el "Ok" (que es el único que se
le va a presentar entonces ese se tiene que
presionar).

'Generación de números
aleatorios.

numero1.Text = obtenernumerorandom(1, 99) +
"/" + obtenernumerorandom(1,
99) 'Imprime un número random
entre 1 y 99 contatenado con "+" concatenado con un número
random entre 1 y 99, para obtener algo como "34/42", y eso se
imprime en el TextBox "numero1".

numero2.Text = obtenernumerorandom(1, 99) +
"/" + obtenernumerorandom(1,
99) 'Imprime un número random
entre 1 y 99 contatenado con "+" concatenado con un número
random entre 1 y 99, para obtener algo como "34/42", y eso se
imprime en el TextBox "numero2".

respuesta.Text = ""
'Para borrar la respuesta anterior y que el
usuario escriba una nueva respuesta.

respuesta.Focus() 'Para que
el cursor esté listo y que el usuario escriba su
próxima respuesta.

End If

respuestadesaciertos += 1 'Suma un desacierto.

desaciertos.Text = respuestadesaciertos
'Imprime el número de desaciertos en
el TextBox.

If respuestaaciertos +
respuestadesaciertos = 20 Then

resultado1.aciertos1.Text = aciertos.Text
'El número de aciertos se manda a
imprimir al TextBox "aciertos1" que está en el formulario
"resultado1".

resultado1.desaciertos1.Text = desaciertos.Text
'El número de desaciertos se manda a
imprimir al TextBox "desaciertos1" que está en el
formulario "resultado1".

resultado1.notafinal1.Text = 10 / 20 *
Val(aciertos.Text)

resultado1.Show() 'Mandar a
llamar al formulario de resultados. El juego ha
terminado.

Me.Hide()

End If

End If

End If

End Sub

Private Sub terminar1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles terminar1.Click

Dim mensaje
As String

mensaje = MsgBox("¿Desea realmente terminar este
juego?", MsgBoxStyle.YesNo, "Juego de Operaciones Básicas para
Bachilleres")

If mensaje = 6
Then

resultado1.aciertos1.Text = aciertos.Text
'El número de aciertos se manda a
imprimir al TextBox "aciertos1" que está en el formulario
"resultado1".

resultado1.desaciertos1.Text = desaciertos.Text
'El número de desaciertos se manda a
imprimir al TextBox "desaciertos1" que está en el
formulario "resultado1".

resultado1.notafinal1.Text = 10 / (Val(aciertos.Text) +
Val(desaciertos.Text)) * Val(aciertos.Text) 'Determinar e imprimir la nota final.

resultado1.Show() 'Mandar a
llamar al formulario de resultados. El juego ha
terminado.

End If

End Sub

Private Sub respuesta_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs)
Handles
respuesta.KeyPress

Dim contadorplecas
As Integer

Dim contadormenos
As Integer

Dim longitudcadena
As Integer = Len(respuesta.Text)
'Variable para almacenar la longitud de la
cadena que hay en un Textbox.

Dim caracterevaluado
As String 'Para evaluar
caracter por caracter con el Mid().

For ciclo
As Integer = 1 To longitudcadena 'Para evaluar caracter por caracter hasta encontrar una
"/".

caracterevaluado = Mid(respuesta.Text, ciclo,
1)

If caracterevaluado
= "/" Then

contadorplecas = contadorplecas + 1

End If

If caracterevaluado
= "-" Then

contadormenos = contadormenos + 1

End If

Next

If (Asc(e.KeyChar) >=
47 And Asc(e.KeyChar)
<= 57) Or
Asc(e.KeyChar) = 8 Or
Asc(e.KeyChar) = 45 Then 'Los únicos
caracteres que se permitirá introducir en el Textbox
serán los números del 0 al 9 (ASCII del 48 al
57); la pleca ("/"), que es el ASCII 47; el signo menos ("-"),
que es el ASCII 45; y el retroceso de espacio o backspace para
borrar texto
introducido, que es el ASCII 8.

If (Asc(e.KeyChar) =
47) Then 'Si se presione la tecla de la pleca ("/").

If (contadorplecas >
0) Then 'Cuando se pretenda introducir una segunda
pleca.

e.KeyChar = ""
'Reemplaza la tecla digitada con el
valor de nada
para que no se puedan introducir caracteres
inválidos.

End If

End If

If (Asc(e.KeyChar) =
45) Then 'Si se presione la tecla del signo menos
("-").

If (contadormenos >
0) Then 'Cuando se pretenda introducir una segunda
pleca.

e.KeyChar = ""
'Reemplaza la tecla digitada con el valor
de nada para que no se puedan introducir caracteres
inválidos.

End If

End If

Else

e.KeyChar = ""
'Reemplaza la tecla digitada con el valor
de nada para que no se puedan introducir caracteres
inválidos.

End If

End Sub

End Class

FORMULARIO
restabasico1

Public Class restabasico1

Protected Overrides Sub
OnPaint(ByVal
Pintar As
PaintEventArgs)

Dim Elipse
As New
Drawing2D.GraphicsPath()

Dim Rectangulo
As New
Rectangle(8, 28, Me.Width – 13, Me.Height – 40) 'La coordenada "x" de la esquina superior izquierda del
rectángulo tiene el valor de 7 para que n o se vea el
borde izquierdo del formulario. La coordenada "y" de la esquina
superior izquierda del rectángulo tiene el valor de 26,
con lo cual se logra que no aparezca la barra de título en
el formulario. El ancho del rectángulo es "Me.Width – 13"
para que no se vea el borde derecho del formulario. El alto del
rectángulo es "Me.Height – 31" para que no se vea la
línea inferior del borde.

Elipse.AddEllipse(Rectangulo)

Me.Region =
New Region(Elipse)

End Sub

'Las siguientes variables
deben ser públicas para que vayan almacenando valores y que
los pierdan hasta que explícitamente se programe un
cambio de
valores o cuando se cierre el formulario.

Public
respuestaaciertos As
Integer 'Variable que contabiliza el número de
aciertos.

Public
respuestadesaciertos As
Integer 'Variable que contabiliza el número de
desaciertos.

Private Sub restabasico1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

'Al cargar el formulario ya deben
aparecer números:

numero1.Text = obtenernumerorandom(1, 99)
'Imprime un número random entre 1 y
99 en el TextBox "numero1".

numero2.Text = obtenernumerorandom(1, 99)
'Imprime un número random entre 1 y
99 en el TextBox "numero2".

aciertos.Text = "0"

desaciertos.Text = "0"

End Sub

Private Sub menu1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles menu1.Click

Dim mensaje
As String

mensaje = MsgBox("Regresar
al menú cancelará su juego actual. ¿Desea
continuar?", MsgBoxStyle.YesNo, "Juego de Operaciones Básicas para
Bachilleres")

If mensaje = 6
Then

menu2.Show() 'Llama al
formulario "menu2".

Me.Close()
'Cierra el formulario actual.

Else

'No hace nada porque no se ha decidido
por parte del usuario regresar al menú.

End If

End Sub

Private Sub terminar1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles terminar1.Click

Dim mensaje
As String

mensaje = MsgBox("¿Desea realmente terminar este
juego?", MsgBoxStyle.YesNo, "Juego de Operaciones Básicas para
Bachilleres")

If mensaje = 6
Then

resultado1.aciertos1.Text = aciertos.Text
'El número de aciertos se manda a
imprimir al TextBox "aciertos1" que está en el formulario
"resultado1".

resultado1.desaciertos1.Text = desaciertos.Text
'El número de desaciertos se manda a
imprimir al TextBox "desaciertos1" que está en el
formulario "resultado1".

resultado1.notafinal1.Text = 10 / (Val(aciertos.Text) +
Val(desaciertos.Text)) * Val(aciertos.Text) 'Determinar e imprimir la nota final.

resultado1.Show() 'Mandar a
llamar al formulario de resultados. El juego ha
terminado.

End If

End Sub

Private Sub restar1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles restar1.Click

If respuesta.Text =
"" Then
'Si el usuario no ha escrito una
respuesta.

MsgBox("Escriba la
respuesta que considere correcta.",
MsgBoxStyle.Exclamation, "Juego de
Operaciones Matemáticas para
Bachilleres")

respuesta.Focus() 'Se ubica
el cursor en el cuadro de texto de respuestas para que el usuario
escriba su respuesta.

Else

TextBoxoculto.Text = Val(numero1.Text) –
Val(numero2.Text) 'Se guarda en el
TextBox oculto la respuesta correcta.

If Mid(respuesta.Text, 1,
1) = "-" Then 'Si el número
es negativo.

respuesta.Text = Mid(respuesta.Text, 2,
Len(respuesta.Text))

While Mid(respuesta.Text,
1, 2) = "00" Or Mid(respuesta.Text, 1, 2) =
"01" Or
Mid(respuesta.Text, 1, 2) = "02" Or
Mid(respuesta.Text, 1, 2) = "03" Or
Mid(respuesta.Text, 1, 2) = "04" Or
Mid(respuesta.Text, 1, 2) = "05" Or
Mid(respuesta.Text, 1, 2) = "06" Or
Mid(respuesta.Text, 1, 2) = "07" Or
Mid(respuesta.Text, 1, 2) = "08" Or
Mid(respuesta.Text, 1, 2) = "09" 'Para que los ceros a
la izquierda se borren.

respuesta.Text = Mid(respuesta.Text, 2,
Len(respuesta.Text) – 1)

End While

respuesta.Text = "-"
+ respuesta.Text

Else 'Si el
número es positivo.

While Mid(respuesta.Text,
1, 2) = "00" Or Mid(respuesta.Text, 1, 2) =
"01" Or
Mid(respuesta.Text, 1, 2) = "02" Or
Mid(respuesta.Text, 1, 2) = "03" Or
Mid(respuesta.Text, 1, 2) = "04" Or
Mid(respuesta.Text, 1, 2) = "05" Or
Mid(respuesta.Text, 1, 2) = "06" Or
Mid(respuesta.Text, 1, 2) = "07" Or
Mid(respuesta.Text, 1, 2) = "08" Or
Mid(respuesta.Text, 1, 2) = "09" 'Para que los ceros a
la izquierda se borren.

respuesta.Text = Mid(respuesta.Text, 2,
Len(respuesta.Text) – 1)

End While

End If

If (respuesta.Text =
TextBoxoculto.Text) Then
'Si la respuesta introducida por el usuario
es igual a la respuesta correcta.

Dim mensaje
As String

mensaje = MsgBox("¡Felicidades, su respuesta es
correcta!", MsgBoxStyle.OkOnly, "Juego de Operaciones Matemáticas para
Bachilleres")

If mensaje = 1
Then 'Si el
botón presionado es el "Ok" (que es el único que se
le va a presentar entonces ese se tiene que
presionar).

'Generación de números
aleatorios.

numero1.Text = obtenernumerorandom(1, 999)
'Imprime un número random entre 1 y
999 en el TextBox "numero1".

numero2.Text = obtenernumerorandom(1, 999)
'Imprime un número random entre 1 y
999 en el TextBox "numero2".

respuesta.Text = ""
'Para borrar la respuesta anterior y que el
usuario escriba una nueva respuesta.

respuesta.Focus() 'Para que
el cursor esté listo y que el usuario escriba su
próxima respuesta.

End If

respuestaaciertos += 1 'Suma un acierto.

aciertos.Text = respuestaaciertos 'Imprime el número de aciertos en el
TextBox.

If respuestaaciertos +
respuestadesaciertos = 20 Then

resultado1.aciertos1.Text = aciertos.Text
'El número de aciertos se manda a
imprimir al TextBox "aciertos1" que está en el formulario
"resultado1".

resultado1.desaciertos1.Text = desaciertos.Text
'El número de desaciertos se manda a
imprimir al TextBox "desaciertos1" que está en el
formulario "resultado1".

resultado1.notafinal1.Text = 10 / 20 *
Val(aciertos.Text)

resultado1.Show() 'Mandar a
llamar al formulario de resultados. El juego ha
terminado.

Me.Close()
'Cierra el formulario actual.

End If

Else

Dim mensaje
As String

mensaje = MsgBox("¡Incorrecto! La respuesta es: " +
TextBoxoculto.Text + ".", MsgBoxStyle.OkOnly,
"Juego de Operaciones Matemáticas
para Bachilleres")

If mensaje = 1
Then 'Si el
botón presionado es el "Ok" (que es el único que se
le va a presentar entonces ese se tiene que
presionar).

'Generación de números
aleatorios.

numero1.Text = obtenernumerorandom(1, 999)
'Imprime un número random entre 1 y
999 en el TextBox "numero1".

numero2.Text = obtenernumerorandom(1, 999)
'Imprime un número random entre 1 y
999 en el TextBox "numero2".

respuesta.Text = ""
'Para borrar la respuesta anterior y que el
usuario escriba una nueva respuesta.

respuesta.Focus() 'Para que
el cursor esté listo y que el usuario escriba su
próxima respuesta.

End If

respuestadesaciertos += 1 'Suma un desacierto.

desaciertos.Text = respuestadesaciertos
'Imprime el número de desaciertos en
el TextBox.

If respuestaaciertos +
respuestadesaciertos = 20 Then

resultado1.aciertos1.Text = aciertos.Text
'El número de aciertos se manda a
imprimir al TextBox "aciertos1" que está en el formulario
"resultado1".

resultado1.desaciertos1.Text = desaciertos.Text
'El número de desaciertos se manda a
imprimir al TextBox "desaciertos1" que está en el
formulario "resultado1".

resultado1.notafinal1.Text = 10 / 20 *
Val(aciertos.Text)

resultado1.Show() 'Mandar a
llamar al formulario de resultados. El juego ha
terminado.

Me.Close()
'Cierra el formulario actual.

End If

End If

End If

End Sub

Private Sub respuesta_KeyPress(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs) Handles respuesta.KeyPress

If (Asc(e.KeyChar) >=
48 And Asc(e.KeyChar)
<= 57) Or
(Asc(e.KeyChar)) = 8 Then 'Los únicos
caracteres que se permiritá introducir en el TextBox
serán los números del 0 al 9 (ASCII del 48 al 57) y
se permitirá también usar el Backspace (ASCII 8)
para borrar. El signo menos (ASCII 45) se evalúa
más adelante.

'No se hace nada porque el caracte
presionado es válido.

Else

If (Asc(e.KeyChar)) =
45 Then 'Si se introduce un signo menos, se evaluará que
no haya más de uno.

Dim contadormenos
As Integer 'Para programar
que no se permitan varios signos menos
en la respuesta.

Dim caracterevaluado
As String 'Para evaluar
caracter por caracter con el Mid().

Dim longitudcadena
As Integer = Len(respuesta.Text)
'Variable para almacenar la longitud de la
cadena que hay en el text box "respuesta".

For ciclo
As Integer = 1 To longitudcadena 'Para evaluar caracter por caracter hasta encontrar un
signo menos.

caracterevaluado = Mid(respuesta.Text, ciclo, 1)
'Toma el caracter correspondiente,
dependiendo de la iteración en la que vaya el ciclo
For.

If ciclo = 1
Then 'Si el
signo menos se digita al principio, no en medio ni al
final.

contadormenos += 1

Else

If caracterevaluado
= "-" Then 'Si el signo menos se
digita en una posición que no es al principio, lo que se
programa es
que borre ese signo digitado, de modo que no se permitirá
escribirlo en una posición que no sea al
principio.

e.KeyChar = ""

MsgBox("El signo menos
sólo puede aparecer al inicio de la
respuesta.", MsgBoxStyle.Exclamation,
"Juego de Operaciones Básicas para
Bachilleres")

End If

End If

Next

If contadormenos >
0 Then 'Si ya se ha digitado un signo menos.

e.KeyChar = ""
'Reemplaza la letra o caracter digitado por
un valor vacío, de manera que no se permita la introducción de más de un
punto.

End If

Else 'Si el
caracter introducido es inválido.

e.KeyChar = ""
'Reemplaza la letra o caracter digitado por
un valor vacío, de manera que no se permita la
introducción de caracteres inválidos.

End If

End If

End Sub

End Class

FORMULARIO
restaintermedio1

Public Class restaintermedio1

Protected Overrides Sub
OnPaint(ByVal
Pintar As
PaintEventArgs)

Dim Elipse
As New
Drawing2D.GraphicsPath()

Dim Rectangulo
As New
Rectangle(8, 28, Me.Width – 13, Me.Height – 40) 'La coordenada "x" de la esquina superior izquierda del
rectángulo tiene el valor de 7 para que n o se vea el
borde izquierdo del formulario. La coordenada "y" de la esquina
superior izquierda del rectángulo tiene el valor de 26,
con lo cual se logra que no aparezca la barra de título en
el formulario. El ancho del rectángulo es "Me.Width – 13"
para que no se vea el borde derecho del formulario. El alto del
rectángulo es "Me.Height – 31" para que no se vea la
línea inferior del borde.

Elipse.AddEllipse(Rectangulo)

Me.Region =
New Region(Elipse)

End Sub

'Las siguientes variables deben ser
públicas para que vayan almacenando valores y que los
pierdan hasta que explícitamente se programe un cambio de
valores o cuando se cierre el formulario.

Public
respuestaaciertos As
Integer 'Variable que contabiliza el número de
aciertos.

Public
respuestadesaciertos As
Integer 'Variable que contabiliza el número de
desaciertos.

Private Sub
restaintermedio1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

'Al cargar el formulario ya deben
aparecer números:

numero1.Text = obtenernumerorandom(100, 999999)
'Imprime un número random entre 100
y 999999 en el TextBox "numero1".

numero2.Text = obtenernumerorandom(100, 999999)
'Imprime un número random entre 100
y 999999 en el TextBox "numero2".

aciertos.Text = "0"

desaciertos.Text = "0"

End Sub

Private Sub menu1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles menu1.Click

Dim mensaje
As String

mensaje = MsgBox("Regresar
al menú cancelará su juego actual. ¿Desea
continuar?", MsgBoxStyle.YesNo, "Juego de Operaciones Básicas para
Bachilleres")

If mensaje = 6
Then

menu2.Show() 'Llama al
formulario "menu2".

Me.Close()
'Cierra el formulario actual.

Else

'No hace nada porque no se ha decidido
por parte del usuario regresar al menú.

End If

End Sub

Private Sub terminar1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles terminar1.Click

Dim mensaje
As String

mensaje = MsgBox("¿Desea realmente terminar este
juego?", MsgBoxStyle.YesNo, "Juego de Operaciones Básicas para
Bachilleres")

If mensaje = 6
Then

resultado1.aciertos1.Text = aciertos.Text
'El número de aciertos se manda a
imprimir al TextBox "aciertos1" que está en el formulario
"resultado1".

resultado1.desaciertos1.Text = desaciertos.Text
'El número de desaciertos se manda a
imprimir al TextBox "desaciertos1" que está en el
formulario "resultado1".

resultado1.notafinal1.Text = 10 / (Val(aciertos.Text) +
Val(desaciertos.Text)) * Val(aciertos.Text) 'Determinar e imprimir la nota final.

resultado1.Show() 'Mandar a
llamar al formulario de resultados. El juego ha
terminado.

End If

End Sub

Private Sub restar1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles restar1.Click

If respuesta.Text =
"" Then
'Si el usuario no ha escrito una
respuesta.

MsgBox("Escriba la
respuesta que considere correcta.",
MsgBoxStyle.Exclamation, "Juego de
Operaciones Matemáticas para
Bachilleres")

respuesta.Focus() 'Se ubica
el cursor en el cuadro de texto de respuestas para que el usuario
escriba su respuesta.

Else

TextBoxoculto.Text = Val(numero1.Text) –
Val(numero2.Text) 'Se guarda en el
TextBox oculto la respuesta correcta.

If Mid(respuesta.Text, 1,
1) = "-" Then 'Si el número
es negativo.

respuesta.Text = Mid(respuesta.Text, 2,
Len(respuesta.Text))

While Mid(respuesta.Text,
1, 2) = "00" Or Mid(respuesta.Text, 1, 2) =
"01" Or
Mid(respuesta.Text, 1, 2) = "02" Or
Mid(respuesta.Text, 1, 2) = "03" Or
Mid(respuesta.Text, 1, 2) = "04" Or
Mid(respuesta.Text, 1, 2) = "05" Or
Mid(respuesta.Text, 1, 2) = "06" Or
Mid(respuesta.Text, 1, 2) = "07" Or
Mid(respuesta.Text, 1, 2) = "08" Or
Mid(respuesta.Text, 1, 2) = "09" 'Para que los ceros a
la izquierda se borren.

respuesta.Text = Mid(respuesta.Text, 2,
Len(respuesta.Text) – 1)

End While

respuesta.Text = "-"
+ respuesta.Text

Else 'Si el
número es positivo.

While Mid(respuesta.Text,
1, 2) = "00" Or Mid(respuesta.Text, 1, 2) =
"01" Or
Mid(respuesta.Text, 1, 2) = "02" Or
Mid(respuesta.Text, 1, 2) = "03" Or
Mid(respuesta.Text, 1, 2) = "04" Or
Mid(respuesta.Text, 1, 2) = "05" Or
Mid(respuesta.Text, 1, 2) = "06" Or
Mid(respuesta.Text, 1, 2) = "07" Or
Mid(respuesta.Text, 1, 2) = "08" Or
Mid(respuesta.Text, 1, 2) = "09" 'Para que los ceros a
la izquierda se borren.

respuesta.Text = Mid(respuesta.Text, 2,
Len(respuesta.Text) – 1)

End While

End If

If (respuesta.Text =
TextBoxoculto.Text) Then
'Si la respuesta introducida por el usuario
es igual a la respuesta correcta.

Dim mensaje
As String

mensaje = MsgBox("¡Felicidades, su respuesta es
correcta!", MsgBoxStyle.OkOnly, "Juego de Operaciones Matemáticas para
Bachilleres")

If mensaje = 1
Then 'Si el
botón presionado es el "Ok" (que es el único que se
le va a presentar entonces ese se tiene que
presionar).

'Generación de números
aleatorios.

numero1.Text = obtenernumerorandom(100, 999999)
'Imprime un número random entre 100
y 999999 en el TextBox "numero1".

numero2.Text = obtenernumerorandom(100, 999999)
'Imprime un número random entre 100
y 999999 en el TextBox "numero2".

respuesta.Text = ""
'Para borrar la respuesta anterior y que el
usuario escriba una nueva respuesta.

respuesta.Focus() 'Para que
el cursor esté listo y que el usuario escriba su
próxima respuesta.

End If

respuestaaciertos += 1 'Suma un acierto.

aciertos.Text = respuestaaciertos 'Imprime el número de aciertos en el
TextBox.

If respuestaaciertos +
respuestadesaciertos = 20 Then

resultado1.aciertos1.Text = aciertos.Text
'El número de aciertos se manda a
imprimir al TextBox "aciertos1" que está en el formulario
"resultado1".

resultado1.desaciertos1.Text = desaciertos.Text
'El número de desaciertos se manda a
imprimir al TextBox "desaciertos1" que está en el
formulario "resultado1".

resultado1.notafinal1.Text = 10 / 20 *
Val(aciertos.Text)

resultado1.Show() 'Mandar a
llamar al formulario de resultados. El juego ha
terminado.

Me.Close()
'Cierra el formulario actual.

End If

Else

Dim mensaje
As String

mensaje = MsgBox("¡Incorrecto! La respuesta es: " +
TextBoxoculto.Text + ".", MsgBoxStyle.OkOnly,
"Juego de Operaciones Matemáticas
para Bachilleres")

If mensaje = 1
Then 'Si el
botón presionado es el "Ok" (que es el único que se
le va a presentar entonces ese se tiene que
presionar).

'Generación de números
aleatorios.

numero1.Text = obtenernumerorandom(100, 999999)
'Imprime un número random entre 100
y 999999 en el TextBox "numero1".

numero2.Text = obtenernumerorandom(100, 999999)
'Imprime un número random entre 100
y 999999 en el TextBox "numero2".

respuesta.Text = ""
'Para borrar la respuesta anterior y que el
usuario escriba una nueva respuesta.

respuesta.Focus() 'Para que
el cursor esté listo y que el usuario escriba su
próxima respuesta.

End If

respuestadesaciertos += 1 'Suma un desacierto.

desaciertos.Text = respuestadesaciertos
'Imprime el número de desaciertos en
el TextBox.

If respuestaaciertos +
respuestadesaciertos = 20 Then

resultado1.aciertos1.Text = aciertos.Text
'El número de aciertos se manda a
imprimir al TextBox "aciertos1" que está en el formulario
"resultado1".

resultado1.desaciertos1.Text = desaciertos.Text
'El número de desaciertos se manda a
imprimir al TextBox "desaciertos1" que está en el
formulario "resultado1".

resultado1.notafinal1.Text = 10 / 20 *
Val(aciertos.Text)

resultado1.Show() 'Mandar a
llamar al formulario de resultados. El juego ha
terminado.

Me.Close()
'Cierra el formulario actual.

End If

End If

End If

End Sub

Private Sub respuesta_KeyPress(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs) Handles respuesta.KeyPress

If (Asc(e.KeyChar) >=
48 And Asc(e.KeyChar)
<= 57) Or
(Asc(e.KeyChar)) = 8 Then 'Los únicos
caracteres que se permiritá introducir en el TextBox
serán los números del 0 al 9 (ASCII del 48 al 57) y
se permitirá también usar el Backspace (ASCII 8)
para borrar. El signo menos (ASCII 45) se evalúa
más adelante.

'No se hace nada porque el caracte
presionado es válido.

Else

If (Asc(e.KeyChar)) =
45 Then 'Si se introduce un signo menos, se evaluará que
no haya más de uno.

Dim contadormenos
As Integer 'Para programar
que no se permitan varios signos menos en la
respuesta.

Dim caracterevaluado
As String 'Para evaluar
caracter por caracter con el Mid().

Dim longitudcadena
As Integer = Len(respuesta.Text)
'Variable para almacenar la longitud de la
cadena que hay en el text box "respuesta".

For ciclo
As Integer = 1 To longitudcadena 'Para evaluar caracter por caracter hasta encontrar un
signo menos.

caracterevaluado = Mid(respuesta.Text, ciclo, 1)
'Toma el caracter correspondiente,
dependiendo de la iteración en la que vaya el ciclo
For.

If ciclo = 1
Then 'Si el
signo menos se digita al principio, no en medio ni al
final.

contadormenos += 1

Else

If caracterevaluado
= "-" Then 'Si el signo menos se
digita en una posición que no es al principio, lo que se
programa es que borre ese signo digitado, de modo que no se
permitirá escribirlo en una posición que no sea al
principio.

e.KeyChar = ""

MsgBox("El signo menos
sólo puede aparecer al inicio de la
respuesta.", MsgBoxStyle.Exclamation,
"Juego de Operaciones Básicas para
Bachilleres")

End If

End If

Next

If contadormenos >
0 Then 'Si ya se ha digitado un signo menos.

e.KeyChar = ""
'Reemplaza la letra o caracter digitado por
un valor vacío, de manera que no se permita la
introducción de más de un punto.

End If

Else 'Si el
caracter introducido es inválido.

e.KeyChar = ""
'Reemplaza la letra o caracter digitado por
un valor vacío, de manera que no se permita la
introducción de caracteres inválidos.

End If

End If

End Sub

End Class

Partes: 1, 2, 3, 4, 5, 6
 Página anterior Volver al principio del trabajoPágina siguiente 

Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

Categorias
Newsletter