corregir

05/01/2006 - 05:13 por jorge | Informe spam
Quisiera que me ayuden a corregir esta programacion o que me digan si ROUND
esta bien declarada o CAD esta bien declarada, el programa se ejecuta muy
bien pero cuando calcula todas las veces sale nota desaprobada, o es un
problema textbox en su orden, o es otro el problema. gracias.


Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
Dim n1, n2, n3, pr As Integer
Dim ROUND(10, 10) As Integer
Dim CAD As Integer
n1 = Val(TextBox4.Text)
n2 = Val(TextBox5.Text)
n3 = Val(TextBox6.Text)
pr = Round((n1 + n2 + n3) / 3, 0)
TextBox7.Text() = Str(pr)
If pr >= 11 Then
TextBox9.Text = "APROBADO"
TextBox9.ForeColor = System.Drawing.Color.Blue
Else
TextBox9.Text = "desaprobado"
TextBox9.ForeColor = System.Drawing.Color.Red
End If
Select Case pr
Case 1
CAD = "UNO"
Case 2
Cad = "DOS"
Case 3
CAD = "TRES"
Case 4
CAD = "CUATRO"
Case 5
CAD = "CINCO"
Case 6
CAD = "SEIS"
Case 7
CAD = "SIETE"
Case 8
CAD = "OCHO"
Case 9
Cad = "NUEVE"
Case 10
CAD = "DIEZ"
Case 11
CAD = "ONCE"
Case 12
CAD = "DOCE"
Case 13
CAD = "TRECE"
Case 14
CAD = "CATORCE"
Case 15
CAD = "QUINCE"
Case 16
CAD = "DIESISEIS"
Case 17
CAD = "DIESISIETE"
Case 18
CAD = "DIESIOCHO"
Case 19
CAD = "DIESINUEVE"
Case 20
CAD = "VEINTE"
End Select
TextBox8.Text = CAD

Button2.Enabled = True
Button1.Enabled = False

ToolTip1.SetToolTip(Button1, "Hacer un clic para calcular")

End Sub

Preguntas similare

Leer las respuestas

#1 Leonardo Azpurua [mvp vb]
05/01/2006 - 06:17 | Informe spam
Hola, Jorge:

No te creo eso de que "el programa no se ejecuta bien":

Round *no es una matriz*. Es una función estática (Shared) de la clase
System.Math.

Entonces no debes declararla (quita la linea que dice Dim ROUND(10, 10) As
Integer), y reemplaza
pr = Round((n1 + n2 + n3) / 3, 0)
por
pr = System.Math.Round((n1 + n2 + n3) / 3, 0)
(tienes que haber obtenido una excepción de Indice Fuera de Rango cada vez
que te encuentras con un alumno aprobado).

Debes declarar CAD como String (no como Integer: si no no le puedes asignar
"DIESISEIS"): tiene que haberte dado una excepción de Conversion de Tipos
Invalida: tu rutina original no puede correr (al menos no puede terminar).

Y por favor, principalmente para ti mismo, escribe DIECISEIS, DIECISIETE:
son contracciones de DIEZ Y SEIS (mas o menos como LAPIZ produce LAPICES y
no LAPISES).

Mejor aun:

Dim numLetras(19) As String = { "UNO", "DOS", "TRES", "CUATRO", _
"CINCO", "SEIS", "SIETE", "OCHO", NUEVE", "DIEZ", "ONCE", "DOCE", _
"TRECE", "CATORCE", "QUINCE", "DIECISEIS", "DIECISIETE", _
"DIECIOCHO", "DIECINUEVE", "VEINTE" }

y reemplaza todo el Select Case por:

CAD = numLetar(pr - 1), es decir:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
Dim n1, n2, n3, pr As Integer
n1 = Val(TextBox4.Text)
n2 = Val(TextBox5.Text)
n3 = Val(TextBox6.Text)
pr = Round((n1 + n2 + n3) / 3, 0)
TextBox7.Text() = Str(pr)
If pr >= 11 Then
TextBox9.Text = "APROBADO"
TextBox9.ForeColor = System.Drawing.Color.Blue
Else
TextBox9.Text = "desaprobado"
TextBox9.ForeColor = System.Drawing.Color.Red
End If
TextBox8.Text = numLetras(pr - 1)

Button2.Enabled = True
Button1.Enabled = False

End Sub



por ultimo, no tiene sentido que le digas al usuario que "haga clic en el
botón para calcular" en la rutina que se ejecuta despues de darle clic al
botón: mueve el SetToolTip al evento Load.

Salud!
Respuesta Responder a este mensaje
#2 jorge
05/01/2006 - 20:12 | Informe spam
"Leonardo Azpurua [mvp vb]" escribió:

Hola, Jorge:

No te creo eso de que "el programa no se ejecuta bien":

Round *no es una matriz*. Es una función estática (Shared) de la clase
System.Math.

Entonces no debes declararla (quita la linea que dice Dim ROUND(10, 10) As
Integer), y reemplaza
pr = Round((n1 + n2 + n3) / 3, 0)
por
pr = System.Math.Round((n1 + n2 + n3) / 3, 0)
(tienes que haber obtenido una excepción de Indice Fuera de Rango cada vez
que te encuentras con un alumno aprobado).

Debes declarar CAD como String (no como Integer: si no no le puedes asignar
"DIESISEIS"): tiene que haberte dado una excepción de Conversion de Tipos
Invalida: tu rutina original no puede correr (al menos no puede terminar).

Y por favor, principalmente para ti mismo, escribe DIECISEIS, DIECISIETE:
son contracciones de DIEZ Y SEIS (mas o menos como LAPIZ produce LAPICES y
no LAPISES).

Mejor aun:

Dim numLetras(19) As String = { "UNO", "DOS", "TRES", "CUATRO", _
"CINCO", "SEIS", "SIETE", "OCHO", NUEVE", "DIEZ", "ONCE", "DOCE", _
"TRECE", "CATORCE", "QUINCE", "DIECISEIS", "DIECISIETE", _
"DIECIOCHO", "DIECINUEVE", "VEINTE" }

y reemplaza todo el Select Case por:

CAD = numLetar(pr - 1), es decir:

>Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
> System.EventArgs) Handles Button1.Click
> Dim n1, n2, n3, pr As Integer
> n1 = Val(TextBox4.Text)
> n2 = Val(TextBox5.Text)
> n3 = Val(TextBox6.Text)
> pr = Round((n1 + n2 + n3) / 3, 0)
> TextBox7.Text() = Str(pr)
> If pr >= 11 Then
> TextBox9.Text = "APROBADO"
> TextBox9.ForeColor = System.Drawing.Color.Blue
> Else
> TextBox9.Text = "desaprobado"
> TextBox9.ForeColor = System.Drawing.Color.Red
> End If
> TextBox8.Text = numLetras(pr - 1)
>
> Button2.Enabled = True
> Button1.Enabled = False
>
> End Sub

por ultimo, no tiene sentido que le digas al usuario que "haga clic en el
botón para calcular" en la rutina que se ejecuta despues de darle clic al
botón: mueve el SetToolTip al evento Load.

Salud!

Buenas bueno ahora el programa se ve asi:



Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
Dim n1, n2, n3, pr As Integer
Dim CAD As String
Dim numLetras(19) As String = {"UNO", "DOS", "TRES", "CUATRO", _
"CINCO", "SEIS", "SIETE", "OCHO", "NUEVE", "DIEZ", "ONCE", "DOCE", _
"TRECE", "CATORCE", "QUINCE", "DIECISEIS", "DIECISIETE", _
"DIECIOCHO", "DIECINUEVE", "VEINTE"}

n1 = Val(TextBox4.Text)
n2 = Val(TextBox5.Text)
n3 = Val(TextBox6.Text)
pr = System.Math.Round((n1 + n2 + n3) / 3, 0)
TextBox7.Text() = Str(pr)
If pr > 11 Then
TextBox9.Text = "APROBADO"
TextBox9.ForeColor = System.Drawing.Color.Blue
Else
TextBox9.Text = "desaprobado"
TextBox9.ForeColor = System.Drawing.Color.Red
End If

Select Case pr
CAD = numLetras(pr - 1)
End Select
TextBox8.Text = numLetras(pr - 1)
Button2.Enabled = True
Button1.Enabled = False


End Sub

pero sigue votando errores por ejjm

en numLetras(19) sale este mensaje: No se permite la inicialización
explícita para matrices declaradas con límites explícitos. y en

CAD = numLetras(pr - 1) sale subrayado CAD conelsiguiente mensaje:

Las instrucciones y etiquetas no son válidas entre 'Select Case' y la
primera instrucción 'Case'


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida