Programa informático

Instrucciones. Evaluar expresión. Visual basic. Signo igual. Computación. Programación de ordenadores. Lenguajes formales

  • Enviado por: Zalazar
  • Idioma: castellano
  • País: México México
  • 3 páginas
publicidad
publicidad

' PROGRAMA PARA EVALUAR UNA EXPRESION

Dim igual, error_tipo, no_texto, abierto, cerrado As Integer

Dim cadena, aux As String

Dim vector(1 To 40) As String

Private Sub Command1_Click()

Command2.Visible = True

Command1.Visible = False

abierto = 0

cerrado = 0

error_tipo = 0

igual = 0

no_texto = 2

ya1 = 0

ya2 = 0

ya3 = 0

If (Text1.Text = Null) Then

long_cad = 0

no_texto = 1

Else

long_cad = Len(cadena)

End If

For i = 1 To long_cad

vector(i) = Mid(cadena, i, 1)

Next i

' I N I C I A E V A L U A C I O N

' calculando posición del signo igual

For i = 1 To long_cad

If vector(i) = "=" Then

igual = i

Exit For

End If

Next i

' error tipo 1

If (vector(1) = "=") Then

error_tipo = 1

MsgBox "ERROR 1 Ausencia de identificador", vbExclamation, "Mensaje de error"

End If

' error tipo 2

For i = 2 To igual - 1

If (vector(i) = ".") Then

error_tipo = 2

MsgBox "ERROR 2 No es correcto incluir un punto en el identificador", vbExclamation, "Mensaje de error"

End If

Next i

' error tipo 3

For i = 0 To 9

If (vector(1) = i) Then

error_tipo = 3

MsgBox "ERROR 3 No es correcto iniciar un identificador con un numero", vbExclamation, "Mensaje de error"

Exit For

End If

Next i

' error tipo 4

If (igual <> 0) Then

If (vector(1) = "*" Or vector(1) = "/" Or vector(1) = "+" Or vector(1) = "-" Or vector(1) = "(" Or vector(1) = ")" Or vector(1) = ".") Then

error_tipo = 4

MsgBox "ERROR 4 No es correcto iniciar un identificador con un operador o un punto", vbExclamation, "Mensaje de error"

End If

End If

' error tipo 5

If (vector(igual + 1) = "=") Then

error_tipo = 5

MsgBox "ERROR 5 No es correcto colocar más de un signo de igual consecutivo", vbExclamation, "Mensaje de error"

End If

' error tipo 6

If (igual <> 0) Then

If (vector(igual + 1) = "*" Or vector(igual + 1) = "/" Or vector(igual + 1) = "+" Or vector(igual + 1) = ")") Then

error_tipo = 6

MsgBox "ERROR 6 No es correcto colocar un parentesis derecho o un operador diferente de -, despues del signo =.", vbExclamation, "Mensaje de error"

End If

End If

' error tipo 7

If (no_texto = 2) Then

For i = igual + 1 To long_cad

If (vector(i) = "(") Then

abierto = abierto + 1

If (ya3 = 0) Then

If (vector(i + 1) = ")") Then

error_tipo = 7

MsgBox "ERROR 7 Es incorrecto no colocar nada entre los parentesis ().", vbExclamation, "Mensaje de error"

ya3 = 1

End If

End If

If (ya1 = 0) Then

If (vector(i + 1) = "*") Or vector(i + 1) = "/" Or vector(i + 1) = "+" Then

error_tipo = 7

MsgBox "ERROR 7.1 No es correcto colocar un operador diferente de -, despues de ""("", vbExclamation, ", "Mensaje de error"

ya1 = 1

End If

End If

End If

If (vector(i) = ")") Then

cerrado = cerrado + 1

If (vector(i - 1) = "*" Or vector(i - 1) = "/" Or vector(i - 1) = "+" Or vector(i - 1) = "-") Then

error_tipo = 7

MsgBox "ERROR 7.2 No es correcto colocar un operador antes de "")"", vbExclamation", "Mensaje de error"

End If

If (ya2 = 0) Then

If (cerrado > abierto) Then

error_tipo = 7

MsgBox "ERROR 7.3 No es correcto colocar un "")"" sin un ""("" previo.", vbExclamation, "Mensaje de error"

ya2 = 1

End If

End If

End If

Next i

If (abierto <> cerrado) Then

error_tipo = 7

MsgBox "ERROR 7.4 El número de parentesis que se abre es diferente a los cerrados.", vbExclamation, "Mensaje de error"

End If

End If

' error tipo 8

For i = igual + 1 To long_cad

If (vector(i) = "*" Or vector(i) = "/" Or vector(i) = "+" Or vector(i) = "-") Then

If (vector(i + 1) = "*" Or vector(i + 1) = "/" Or vector(i + 1) = "+" Or vector(i + 1) = "-") Then

error_tipo = 8

MsgBox "ERROR 8 No es correcto colocar más de un operador consecutivo.", vbExclamation, "Mensaje de error"

Exit For

End If

End If

Next i

' error tipo 9

If (igual <> 0) Then

If (long_cad <> 0) Then

If (vector(long_cad) = "*" Or vector(long_cad) = "/" Or vector(long_cad) = "+" Or vector(long_cad) = "-") Or vector(long_cad) = "=" Then

error_tipo = 9

MsgBox "ERROR 9 No es correcto colocar un operador al final de la expresion", vbExclamation, "Mensaje de error"

End If

End If

End If

' error tipo 10

If (no_texto = 2) Then

If (igual = 0) Then

error_tipo = 10

MsgBox "ERROR 10 No se escribio una ecuacion. Ausencia de signo igual.", vbExclamation, "Mensaje de error"

End If

End If

' EN ESTA SECCION SE EVALUA SI EXISTE UNA CADENA Y SI ES CORRECTA

' DE SER CORRECTA, SE VISUALIZA LA SEGUNDA IMAGEN

If (error_tipo = 0) Then

If (no_texto = 2) Then

Label3.Visible = True

'image1.Visible = True

End If

End If

End Sub

Private Sub Command2_Click()

Text1.Text = ""

error_tipo = 0

Command1.Visible = True

Command2.Visible = False

Label3.Visible = True

'image1.Visible = True

End Sub

Private Sub text1_change()

cadena = Text1.Text

End Sub

Private Sub Text1_keyPress(keyAscii As Integer)

If (keyAscii = vbKeyReturn) Then

Call Command1_Click

End If

If keyAscii = Asc(";") Or keyAscii = Asc(",") Or keyAscii = Asc(":") Or keyAscii > Asc("Z") Or keyAscii < Asc("(") Or keyAscii = Asc("_") Or keyAscii = Asc("<") Or keyAscii = Asc(">") Or keyAscii = Asc("?") Then

keyAscii = 0

Beep

End If

End Sub