El código Visual Basic Sería el siguiente:
Public Class Automata Dim contador As Integer = 0 Dim caracter() As Char Dim cadena As String Dim aceptado As Boolean Public Sub New() Console.Write("Introduce la cadena a evaluar: ") cadena = Console.ReadLine() caracter = cadena.ToCharArray inicio() If (aceptado) Then Console.Write("Cadena aceptada") Else Console.Write("Cadena no aceptada") End If Console.ReadLine() End Sub Public Sub inicio() aceptado = False contador = 0 q0() End Sub Public Sub q0() Console.WriteLine(String.Format("Estado: q0")) If (contador < cadena.Length) Then If (caracter(contador) = "a") Then contador += 1 q0() ElseIf caracter(contador) = "b" Then contador += 1 q1() End If End If End Sub Public Sub q1() Console.WriteLine(String.Format("Estado: q1")) If (contador < cadena.Length) Then If (caracter(contador) = "a") Then contador += 1 q1() ElseIf caracter(contador) = "b" Then contador += 1 q2() End If End If End Sub Public Sub q2() Console.WriteLine(String.Format("Estado: q2")) If (contador < cadena.Length) Then If (caracter(contador) = "a") Then contador += 1 q2() ElseIf caracter(contador) = "b" Then contador += 1 q3() End If End If End Sub Public Sub q3() Console.WriteLine(String.Format("Estado: q3 - Aceptado")) aceptado = True If (contador < cadena.Length) Then If (caracter(contador) = "a") Then contador += 1 q3() ElseIf caracter(contador) = "b" Then contador += 1 qError() End If End If End Sub Public Sub qError() Console.WriteLine(String.Format("Error")) aceptado = False Return End Sub End Class
Me gusta...gracias por tu codigo pero hay que explicar.
ResponderEliminar