Espero su ayuda con este codigo, es mi proyecto final y es para mañana, lo necesito pasar a pascal, pero no tengo ni idea, espero su ayuda pronto gracias:
'Variables globales
Dim cad As String
Dim ensamblador As String
Dim op1 As String
Dim op2 As String
Dim cod_in As String
Dim salto As String
Dim pila(0 To 12) As String
Dim pila_aux(0 To 12) As String
Dim num_op As Integer
Dim tope As Integer
Dim dato As String
Dim hab As Byte
'Entrada de la expresión posfija
Private Sub Command1_Click()
cad = InputBox("expresion posfija")
ex_pos.Text = cad
End Sub
Private Sub Command2_Click()
Dim auxilia As String
Dim operando As String
Dim apuntador As Integer
salto = Chr(13) & Chr(10)
tope = 0
op1 = 0
op2 = 0
num_op = 1
dato = 0
apuntador = 1
While apuntador < Len(cad)
For apuntador = 1 To Len(cad) + 1
cod_int.Text = op1 & salto & op2 & salto & cod_in & salto
auxilia = Mid(cad, apuntador, 1) 'obtiene el contenido dentro de la
cadena
If auxilia <> "+" And auxilia <> "-" And auxilia <> "*" And auxilia <>
"/" Then
dato = auxilia
meter (dato)
Else
operando = auxilia
op2 = sacar()
op1 = sacar()
If num_op = 1 Or num_op = 2 Then
cod_in = "t" & num_op & "=" & op1 & operando & op2
meter (cod_in)
hab = 1
Else
If Len(op2) < 3 Then
cod_in = "t" & num_op & "=" & "t" & num_op - 1 & operando & " " & op2
meter (cod_in)
Else
cod_in = "t" & num_op & "=" & "t" & num_op - 2 & operando & " " & "t"
& num_op - 1 & salto
meter (cod_in)
End If
hab = 2
End If
num_op = num_op + 1
Print salto & salto & cod_in
Print salto & ensamblador
End If
Next apuntador
Wend
End Sub
'Sacar los elementos contenidos en la pila
Public Function sacar() As String
If tope >= 1 Then
tope = tope - 1
sacar = pila(tope)
End If
End Function
Public Function meter(dato) As Integer
pila(tope) = dato
tope = tope + 1
End Function
Private Sub Command4_Click()
End
End Sub
Private Sub Command3_Click As String
Dim apunta As Integer
Dim caracter As String
Dim operacion As String
Dim signo As String
Dim cuenta As String
Dim apunta_aux As Integer
apunta_aux = 0
cuenta = 0
apunta = 1
For apunta = 1 To Len(cod_in)
caracter = Mid(cod_in, apunta, 1)
If caracter = "=" Then
If hab = 1 Then
cuenta = Mid(cod_in, apunta + 1, 1)
Else
cuenta = Mid(cod_in, apunta + 1, 2)
End If
For apunta_aux = apuntador To Len(cod_in)
operacion = Mid(cod_in, apunta_aux + 1, 1)
If operacion = "+" Then
signo = "ADD"
ElseIf operacion = "-" Then
signo = "SUB"
ElseIf operacion = "*" Then
signo = "MUL"
ElseIf operacion = "/" Then
signo = "DIV"
End If
Next apunta_aux
If hab = 1 Then
ensamblador = "LDA" & " " & op1 & salto & signo & " " & op2 & salto &
"STA" & " " & "t" & num_op - 1 & salto
Else
ensamblador = "LDA" & " " & op1 & signo & " " & op2 & salto & "STA" & "
" & "t" & num_op - 1 & salto
End If
ensam.Text = ensamblador
End If
End Sub
ESPERO SU AYUDA GRACIAS
Este es mi correo:
george_rf8@hotmail.com