Você está na página 1de 27

Universidad Mariano Gálvez de Guatemala

Facultad de Ingeniería
Ingeniería en Sistemas de Información y Ciencias de la Computación
Autómatas y Lenguajes Formales
Ing. Cesar Estuardo Lazaro

Tercera Fase del proyecto final de


Autómatas.

Bryan Steven Duque Alas 0905 16 1791


Bryan Jose Martinez Rosil 0905 18 11486
Dulce Maria Mazariegos Morales 0905 20 0349
Leonel Alejandro Sazo Lima 0905 20 7583

Jutiapa, septiembr
Quintupla.

Q = {0, 1, 5, 8, 10, 12, 15, 16, 18, 19, 20, 22, 23, 24, 25, 28, 50, VA1,
VA2, VA3, VC1, VC2, VC3, VD1, VD2, VD3, VB1, VB2, VB3, A1, A2,
A3, B1, B2, B3, C1, C2, C3, D1, D2, D3, Entrega producto}

𝒒𝟎 = { 0 }

Ʃ = { 1m1, 2m1, 3m1, 4m1, 7m1, 11m1, 14m1, 1b5, 1b10, 1b20, 1b50,
T}

F = { Entrega producto }
δ = (0, 1m1) → 1
δ = (1, 7m1) → 8
δ = (1, 11m1) → 12
δ = (1, 14m1) → 15
δ = (0, 1b5) → 5
δ = (0, 1b10) → 10
δ = (0, 1b20) → 20
δ = (0, 1b50) → 50
δ = (5, 3m1) → 8
δ = (5, 1b5) → 10
δ = (5, 1b10) → 15
δ = (8, A1) → A1
δ = (10, 2m1) → 12
δ = (10, 1b5) → 15
δ = (10, 1b10) → 20
δ = (20, 2m1) → 22
δ = (20, 3m1) → 23
δ = (20, 4m1) → 24
δ = (20, 1b5) → 25
δ = (12, A1) → VA1
δ = (VA1, λ) → A1
δ = (A1, λ) → Entrega producto
δ = (12, A2) → A2
δ = (A2, λ) → Entrega producto
δ = (15, A2) → VA2
δ = (VA2, λ) → A2
δ = (A2, λ) → Entrega producto
δ = (15, A3) → A3
δ = (A3, λ) → Entrega producto
δ = (16, A1) → VA1
δ = (VA1, λ) → A1
δ = (A1, λ) → Entrega producto
δ = (16, A2) → VA2
δ = (VA1, λ) → A2
δ = (A2, λ) → Entrega producto
δ = (16, A3) → VA3
δ = (VA3, λ) → A3
δ = (A3, λ) → Entrega producto
δ = (16, C1) → C1
δ = (C1, λ) → Entrega producto
δ = (18, A1) → VA1
δ = (VA1, λ) → A1
δ = (A1, λ) → Entrega producto
δ = (18, A2) → VA2
δ = (VA2, λ) → A2
δ = (A2, λ) → Entrega producto
δ = (18, A3) → VA3
δ = (VA3, λ) → A3
δ = (A3, λ) → Entrega producto
δ = (18, C1) → VC1
δ = (VA3, λ) → C1

δ = (C1, λ) → Entrega producto


δ = (18, D2) → D2
δ = (D2, λ) → Entrega producto
δ = (19, A1) → VA1
δ = (VA1, λ) → A1
δ = (A1, λ) → Entrega producto
δ = (19, A2) → VA2
δ = (VA2, λ) → A2
δ = (A2, λ) → Entrega producto
δ = (19, A3) → VA3
δ = (VA3, λ) → A3
δ = (A3, λ) → Entrega producto
δ = (19, C1) → VC1
δ = (VC1, λ) → C1
δ = (C1, λ) → Entrega producto
δ = (19, D2) → VD2
δ = (VD2, λ) → D2
δ = (D2, λ) → Entrega producto
δ = (19, B1) → B1
δ = (B1, λ) → Entrega producto
δ = (22, A1) → VA1
δ = (VA1, λ) → A1
δ = (A1, λ) → Entrega producto
δ = (22, A2) → VA2
δ = (VA2, λ) → A2
δ = (A2, λ) → Entrega producto
δ = (22, A3) → VA3
δ = (VA3, λ) → A3
δ = (A3, λ) → Entrega producto
δ = (22, C1) → VC1
δ = (VC1, λ) → C1
δ = (C1, λ) → Entrega producto
δ = (22, D2) → VD2
δ = (VD2, λ) → D2
δ = (D2, λ) → Entrega producto
δ = (22, D2) → VB2
δ = (VB2, λ) → D2
δ = (D2, λ) → Entrega producto
δ = (22, B1) → B1
δ = (B1, λ) → Entrega producto
δ = (22, B2) → B2
δ = (B2, λ) → Entrega producto
δ = (23, A1) → VA1
δ = (VA1, λ) → A1
δ = (A1, λ) → Entrega producto
δ = (23, A2) → VA2
δ = (VA2, λ) → A2
δ = (A2, λ) → Entrega producto
δ = (23, A3) → VA3
δ = (VA3, λ) → A3
δ = (A3, λ) → Entrega producto
δ = (23, C1) → VC1
δ = (VC1, λ) → C1
δ = (C1, λ) → Entrega producto
δ = (23, D2) → VD2
δ = (VD2, λ) → D2
δ = (D2, λ) → Entrega producto
δ = (22, B2) → VB2
δ = (VB2, λ) → B2
δ = (B2, λ) → Entrega producto
δ = (22, C3) → VC3
δ = (VC3, λ) → C3
δ = (C3, λ) → Entrega producto
δ = (23, B1) → B1
δ = (B1, λ) → Entrega producto
δ = (23, B2) → B2
δ = (B2, λ) → Entrega producto
δ = (23, B3) → B3
δ = (B3, λ) → Entrega producto
δ = (24, A1) → VA1
δ = (VA1, λ) → A1
δ = (A1, λ) → Entrega producto
δ = (24, A2) → VA2
δ = (VA2, λ) → A2
δ = (A2, λ) → Entrega producto
δ = (24, A3) → VA3
δ = (VA3, λ) → A3
δ = (A3, λ) → Entrega producto
δ = (24, C1) → VC1
δ = (VC1, λ) → C1
δ = (C1, λ) → Entrega producto
δ = (24, D2) → VD2
δ = (VD2, λ) → D2
δ = (D2, λ) → Entrega producto
δ = (24, B1) → VB1
δ = (VB1, λ) → B1
δ = (B1, λ) → Entrega producto
δ = (24, C3) → VC3
δ = (VC3, λ) → C3
δ = (C3, λ) → Entrega producto
δ = (24, B2) → VB2
δ = (VB2, λ) → B2
δ = (B2, λ) → Entrega producto
δ = (24, B3) → VB3
δ = (VB3, λ) → B3
δ = (B3, λ) → Entrega producto
δ = (24, B1) → B1
δ = (B1, λ) → Entrega producto
δ = (24, B2) → B2
δ = (B2, λ) → Entrega producto
δ = (24, B3) → B3
δ = (B3, λ) → Entrega producto
δ = (25, A1) → VA1
δ = (VA1, λ) → A1
δ = (A1, λ) → Entrega producto
δ = (25, A2) → VA2
δ = (VA2, λ) → A2
δ = (A2, λ) → Entrega producto
δ = (25, A3) → VA3
δ = (VA3, λ) → A3
δ = (A3, λ) → Entrega producto
δ = (25, C1) → VC1
δ = (VC1, λ) → C1
δ = (C1, λ) → Entrega producto
δ = (25, D2) → VD2
δ = (VD2, λ) → D2
δ = (D2, λ) → Entrega producto
δ = (25, B1) → VB1
δ = (VB1, λ) → B1
δ = (B1, λ) → Entrega producto
δ = (25, C3) → VC3
δ = (VC3, λ) → C3
δ = (C3, λ) → Entrega producto
δ = (25, B2) → VB2
δ = (VB2, λ) → B2
δ = (B2, λ) → Entrega producto
δ = (25, B3) → VB3
δ = (VB3, λ) → B3
δ = (B3, λ) → Entrega producto
δ = (25, B1) → B1
δ = (B1, λ) → Entrega producto
δ = (25, B2) → B2
δ = (B2, λ) → Entrega producto
δ = (25, B3) → B3
δ = (B3, λ) → Entrega producto
δ = (25, D3) → VD3
δ = (VD3, λ) → D3
δ = (D3, λ) → Entrega producto
δ = (25, D3) → D3
δ = (D3, λ) → Entrega producto
δ = (25, C2) → C2
δ = (C2, λ) → Entrega producto

δ = (28, A1) → VA1


δ = (VA1, λ) → A1
δ = (A1, λ) → Entrega producto
δ = (28, A2) → VA2
δ = (VA2, λ) → A2
δ = (A2, λ) → Entrega producto
δ = (28, A3) → VA3
δ = (VA3, λ) → A3
δ = (A3, λ) → Entrega producto
δ = (28, C1) → VC1
δ = (VC1, λ) → C1
δ = (C1, λ) → Entrega producto
δ = (28, D2) → VD2
δ = (VD2, λ) → D2
δ = (D2, λ) → Entrega producto
δ = (28, B1) → VB1
δ = (VB1, λ) → B1
δ = (B1, λ) → Entrega producto
δ = (28, C3) → VC3
δ = (VC3, λ) → C3
δ = (C3, λ) → Entrega producto
δ = (28, B2) → VB2
δ = (VB2, λ) → B2
δ = (B2, λ) → Entrega producto
δ = (28, B3) → VB3
δ = (VB3, λ) → B3
δ = (B3, λ) → Entrega producto
δ = (28, B1) → B1
δ = (B1, λ) → Entrega producto
δ = (28, B2) → B2
δ = (B2, λ) → Entrega producto
δ = (28, B3) → B3
δ = (B3, λ) → Entrega producto
δ = (28, D3) → VD3
δ = (VD3, λ) → D3
δ = (D3, λ) → Entrega producto
δ = (28, D3) → D3
δ = (D3, λ) → Entrega producto
δ = (28, C2) → VC2
δ = (VC2, λ) → C2
δ = (C2, λ) → Entrega producto
δ = (28, D1) → VD1
δ = (VD1, λ) → D1
δ = (D1, λ) → Entrega producto
Matriz de Transición
1m 2m 3m 4m 1b 1b1 1b2 1b5 A A A A A A A A A A1 A1 A1 VUELT
1 1 1 1 5 0 0 0 1 2 3 4 5 6 7 8 9 0 1 2 O
Inici
1 5 10 20 50
o
1
5 8 10 15 25
A
8
1
10 12 15 20 30
A A
12 15 A1
1 2
A A A
15 16 18 20 30 A1, A2
1 2 3
A A A C A1, A2,
16 18 19 A3
1 2 3 1
A A A C D A1, A2,
18 19 20 23 28 A3, C1
1 2 3 1 2
A1, A2,
A A A C D B
19 20 22 23 24 A3, C1,
1 2 3 1 2 1 D2
A1, A2,
A A A C D B B
20 22 23 24 25 A3, C1,
1 2 3 1 2 1 2 D2, B1
A1, A2,
A A A C D B B C A3, C1,
22 23 24 25 D2, B1,
1 2 3 1 2 1 2 3
B2
A1, A2,
A A A C D B B C B A3, C1,
23 24 25 28 D2, B1,
1 2 3 1 2 1 2 3 3
B2, C3
A1, A2,
A3, C1,
A A A C D B B C B
24 25 28 D3 D2, B1,
1 2 3 1 2 1 2 3 3 B2, C3,
B3
A1, A2,
A3, C1,
A A A C D B B C B
25 28 D3 C2 D2, B1,
1 2 3 1 2 1 2 3 3 B2, C3,
B3, D3
A1, A2,
A3, C1,
A A A C D B B C B D2, B1,
28 D3 C2 D1 B2, C3,
1 2 3 1 2 1 2 3 3
B3, D3,
C2
A1, A2,
A3, C1,
A A A C D B B C B D2, B1,
50 D3 C2 D1 B2, C3,
1 2 3 1 2 1 2 3 3
B3, D3,
C2, D1
ANALIZADOR LÉXICO

Estado = 0
vuelto = 0
NumTarjeta =0
FecVenciTar = 0
Cvv=0
Pagar=0
Leer el siguiente simbolo de entrada:
While no es fin-de-cadena do
case Estado of
0: if simbolo de entrada actual es 1m1 then Estado = 1
else if simbolo de entrada actual es 1b5 then Estado = 5
else if simbolo de entrada actual es 1b10 then Estado = 10
else if simbolo de entrada actual es 1b120 then Estado = 20
else if simbolo de entrada actual es 1b50 then Estado = 50
else if simbolo de entrada actual es T then Estado = Tarjeta
else salir de la rutina de error
1: if simbolo de entrada actual es 7m1 then Estado = 8
else if simbolo de entrada actual es 11m1 then Estado = 12
else if simbolo de entrada actual es 14m1 then Estado = 15
else if simbolo de entrada actual es 15m1 then Estado = 16
else if simbolo de entrada actual es 17m1 then Estado = 18
else if simbolo de entrada actual es 18m1 then Estado = 19
else if simbolo de entrada actual es 19m1 then Estado = 20
else if simbolo de entrada actual es 21m1 then Estado = 22
else if simbolo de entrada actual es 22m1 then Estado = 23
else if simbolo de entrada actual es 23m1 then Estado = 24
else if simbolo de entrada actual es 24m1 then Estado = 25
else if simbolo de entrada actual es 27m1 then Estado = 28
else if simbolo de entrada actual es >27m1
Escribir “No se puede ingresar mas monedas”
else salir de la rutina de error
5: if simbolo de entrada actual es 3m1 then Estado = 8
else if simbolo de entrada actual es 1b5 then Estado = 10
else if simbolo de entrada actual es 2b5 then Estado = 15
else if simbolo de entrada actual es 3b5 then Estado = 20
else if simbolo de entrada actual es 4b5 then Estado = 25
else if simbolo de entrada actual es 5b5 then Estado = 30
else if simbolo de entrada actual es then >5b5
Escribir “No se puede ingresar mas billetes de Q.5”
else salir de la rutina de error
8: if simbolo de entrada actual es A1 then Estado = A1
Estado = Entrega producto A1
else salir de la rutina de error
10: if simbolo de entrada actual es 2m1 then Estado = 12
else if simbolo de entrada actual es 1b5 then Estado = 15
else if simbolo de entrada actual es 1b10 then Estado = 20
else if simbolo de entrada actual es 2b10 then Estado = 30
else if simbolo de entrada actual es then >2b10
Escribir “No se puede ingresar mas billetes de Q. 10”
else salir de la rutina de error
12: if simbolo de entrada actual es 3m1 then Estado = 15
else if simbolo de entrada actual es A1 then Estado = A1
if (Estado = A1)
vuelto=Estado actual-8
Estado = Entrega producto A1
Escribir “El vuelto es ”+ vuelto
else if simbolo de entrada actual es A2 then Estado = A2
Estado= Entrega producto A2
else salir de la rutina de error
15: if simbolo de entrada actual es 1m1 then Estado = 16
else if simbolo de entrada actual es 1b5 then Estado = 20
else if simbolo de entrada actual es 1b10 then Estado = 25
else if simbolo de entrada actual es A1 then Estado = A1
if (Estado = A1)
vuelto=Estado actual-8
Estado = Entrega producto A
Escribir “El vuelto es ”+ vuelto
else if simbolo de entrada actual es A2 then Estado = A2
if (Estado = A2)
vuelto=Estado actual-12
Estado = Entrega producto A2
Escribir “El vuelto es ”+ vuelto
else if simbolo de entrada actual es A3 then Estado = A3
Estado= Entrega producto A3
else salir de la rutina de error
16: if simbolo de entrada actual es 2m1 then Estado = 18
else if simbolo de entrada actual es A1 then Estado = A1
if (Estado = A1)
vuelto=Estado actual-8
Estado = Entrega producto A
Escribir “El vuelto es ”+ vuelto
else if simbolo de entrada actual es A2 then Estado = A2
if (Estado = A2)
vuelto=Estado actual-12
Estado = Entrega producto A2
Escribir “El vuelto es ”+ vuelto
else if simbolo de entrada actual es A3 then Estado = A3
if (Estado = A3)
vuelto=Estado actual-15
Estado = Entrega producto A3
Escribir “El vuelto es ”+ vuelto
else if simbolo de entrada actual es C1 then Estado = C1
Estado= Entrega producto C1
else salir de la rutina de error
18: if simbolo de entrada actual es 2m1 then Estado = 20
else if simbolo de entrada actual es A1 then Estado = A1
if (Estado = A1)
vuelto=Estado actual-8
Estado = Entrega producto A
Escribir “El vuelto es ”+ vuelto0
else if simbolo de entrada actual es A2 then Estado = A2
if (Estado = A2)
vuelto=Estado actual-12
Estado = Entrega producto A2
Escribir “El vuelto es ”+ vuelto
else if simbolo de entrada actual es A3 then Estado = A3
if (Estado = A3)
vuelto=Estado actual-15
Estado = Entrega producto A3
Escribir “El vuelto es ”+ vuelto
else if simbolo de entrada actual es C1 then Estado = C1
if (Estado = C1)
vuelto=Estado actual-16
Estado = Entrega producto C1
Escribir “El vuelto es ”+ vuelto
else if simbolo de entrada actual es D2 then Estado = D2
Estado= Entrega producto D2
else salir de la rutina de error
19: if simbolo de entrada actual es 1m1 then Estado = 20
else if simbolo de entrada actual es A1 then Estado = A1
if (Estado = A1)
vuelto=Estado actual-8
Estado = Entrega producto A
Escribir “El vuelto es ”+ vuelto
else if simbolo de entrada actual es A2 then Estado = A2
if (Estado = A2)
vuelto=Estado actual-12
Estado = Entrega producto A2
Escribir “El vuelto es ”+ vuelto
else if simbolo de entrada actual es A3 then Estado = A3
if (Estado = A3)
vuelto=Estado actual-15
Estado = Entrega producto A3
Escribir “El vuelto es ”+ vuelto
else if simbolo de entrada actual es C1 then Estado = C1
if (Estado = C1)
vuelto=Estado actual-16
Estado = Entrega producto C1
Escribir “El vuelto es ”+ vuelto
else if simbolo de entrada actual es D2 then Estado = D2
if (Estado = D2)
vuelto=Estado actual-18
Estado = Entrega producto D2
Escribir “El vuelto es ”+ vuelto
else if simbolo de entrada actual es B1 then Estado = B1
Estado= Entrega producto B1
else salir de la rutina de error
20: if simbolo de entrada actual es 2m1 then Estado = 22
else if simbolo de entrada actual es 1b5 then Estado = 25
else if simbolo de entrada actual es 1b10 then Estado = 30
else if simbolo de entrada actual es A1 then Estado = A1
if (Estado = A1)
vuelto=Estado actual-8
Estado = Entrega producto A
Escribir “El vuelto es ”+ vuelto
else if simbolo de entrada actual es A2 then Estado = A2
if (Estado = A2)
vuelto=Estado actual-12
Estado = Entrega producto A2
Escribir “El vuelto es ”+ vuelto
else if simbolo de entrada actual es A3 then Estado = A3
if (Estado = A3)
vuelto=Estado actual-15
Estado = Entrega producto A3
Escribir “El vuelto es ”+ vuelto
else if simbolo de entrada actual es C1 then Estado = C1
if (Estado = C1)
vuelto=Estado actual-16
Estado = Entrega producto C1
Escribir “El vuelto es ”+ vuelto
else if simbolo de entrada actual es D2 then Estado = D2
if (Estado = D2)
vuelto=Estado actual-18
Estado = Entrega producto D2
Escribir “El vuelto es ”+ vuelto
else if simbolo de entrada actual es B1 then Estado = B1
if (Estado = B1)
vuelto=Estado actual-19
Estado = Entrega producto B1
Escribir “El vuelto es ”+ vuelto
else if simbolo de entrada actual es B2 then Estado = B2
Estado= Entrega producto B2
else salir de la rutina de error
22: if simbolo de entrada actual es 1m1 then Estado = 23
else if simbolo de entrada actual es 2m1 then Estado = 24
else if simbolo de entrada actual es 3m1 then Estado = 25
else if simbolo de entrada actual es A1 then Estado = A1
if (Estado = A1)
vuelto=Estado actual-8
Estado = Entrega producto A
Escribir “El vuelto es ”+ vuelto
else if simbolo de entrada actual es A2 then Estado = A2
if (Estado = A2)
vuelto=Estado actual-12
Estado = Entrega producto A2
Escribir “El vuelto es ”+ vuelto
else if simbolo de entrada actual es A3 then Estado = A3
if (Estado = A3)
vuelto=Estado actual-15
Estado = Entrega producto A3
Escribir “El vuelto es ”+ vuelto
else if simbolo de entrada actual es C1 then Estado = C1
if (Estado = C1)
vuelto=Estado actual-16
Estado = Entrega producto C1
Escribir “El vuelto es ”+ vuelto
else if simbolo de entrada actual es D2 then Estado = D2
if (Estado = D2)
vuelto=Estado actual-18
Estado = Entrega producto D2
Escribir “El vuelto es ”+ vuelto
else if simbolo de entrada actual es B1 then Estado = B1
if (Estado = B1)
vuelto=Estado actual-19
Estado = Entrega producto B1
Escribir “El vuelto es ”+ vuelto
else if simbolo de entrada actual es B2 then Estado = B2
if (Estado = B2)
vuelto=Estado actual-20
Estado = Entrega producto B2
Escribir “El vuelto es ”+ vuelto
else if simbolo de entrada actual es C3 then Estado = C3
Estado= Entrega producto C3
else salir de la rutina de error
23: if simbolo de entrada actual es 1m1 then Estado = 24
else if simbolo de entrada actual es 2m1 then Estado = 25
else if simbolo de entrada actual es A1 then Estado = A1
if (Estado = A1)
vuelto=Estado actual-8
Estado = Entrega producto A
Escribir “El vuelto es ”+ vuelto
else if simbolo de entrada actual es A2 then Estado = A2
if (Estado = A2)
vuelto=Estado actual-12
Estado = Entrega producto A2
Escribir “El vuelto es ”+ vuelto
else if simbolo de entrada actual es A3 then Estado = A3
if (Estado = A3)
vuelto=Estado actual-15
Estado = Entrega producto A3
Escribir “El vuelto es ”+ vuelto
else if simbolo de entrada actual es C1 then Estado = C1
if (Estado = C1)
vuelto=Estado actual-16
Estado = Entrega producto C1
Escribir “El vuelto es ”+ vuelto
else if simbolo de entrada actual es D2 then Estado = D2
if (Estado = D2)
vuelto=Estado actual-18
Estado = Entrega producto D2
Escribir “El vuelto es ”+ vuelto
else if simbolo de entrada actual es B1 then Estado = B1
if (Estado = B1)
vuelto=Estado actual-19
Estado = Entrega producto B1
Escribir “El vuelto es ”+ vuelto
else if simbolo de entrada actual es B2 then Estado = B2
if (Estado = B2)
vuelto=Estado actual-20
Estado = Entrega producto B2
Escribir “El vuelto es ”+ vuelto
else if simbolo de entrada actual es C3 then Estado = C3
if (Estado = C3)
vuelto=Estado actual-22
Estado = Entrega producto C3
Escribir “El vuelto es ”+ vuelto
else if simbolo de entrada actual es B3 then Estado = B3
Estado= Entrega producto B3
else salir de la rutina de error
24: if simbolo de entrada actual es 1m1 then Estado = 25
else if simbolo de entrada actual es A1 then Estado = A1
if (Estado = A1)
vuelto=Estado actual-8
Estado = Entrega producto A
Escribir “El vuelto es ”+ vuelto
else if simbolo de entrada actual es A2 then Estado = A2
if (Estado = A2)
vuelto=Estado actual-12
Estado = Entrega producto A2
Escribir “El vuelto es ”+ vuelto
else if simbolo de entrada actual es A3 then Estado = A3
if (Estado = A3)
vuelto=Estado actual-15
Estado = Entrega producto A3
Escribir “El vuelto es ”+ vuelto
else if simbolo de entrada actual es C1 then Estado = C1
if (Estado = C1)
vuelto=Estado actual-16
Estado = Entrega producto C1
Escribir “El vuelto es ”+ vuelto
else if simbolo de entrada actual es D2 then Estado = D2
if (Estado = D2)
vuelto=Estado actual-18
Estado = Entrega producto D2
Escribir “El vuelto es ”+ vuelto
else if simbolo de entrada actual es B1 then Estado = B1
if (Estado = B1)
vuelto=Estado actual-19
Estado = Entrega producto B1
Escribir “El vuelto es ”+ vuelto
else if simbolo de entrada actual es B2 then Estado = B2
if (Estado = B2)
vuelto=Estado actual-20
Estado = Entrega producto B2
Escribir “El vuelto es ”+ vuelto
else if simbolo de entrada actual es C3 then Estado = C3
if (Estado = C3)
vuelto=Estado actual-22
Estado = Entrega producto C3
Escribir “El vuelto es ”+ vuelto
else if simbolo de entrada actual es B3 then Estado = B3
if (Estado = B3)
vuelto=Estado actual-23
Estado = Entrega producto B3
Escribir “El vuelto es ”+ vuelto
else if simbolo de entrada actual es D3 then Estado = D3
Estado= Entrega producto D3
else salir de la rutina de error
25: if simbolo de entrada actual es 3m3 then Estado = 28
else if simbolo de entrada actual es 1b5 then Estado = 30
else if simbolo de entrada actual es A1 then Estado = A1
if (Estado = A1)
vuelto=Estado actual-8
Estado = Entrega producto A
Escribir “El vuelto es ”+ vuelto
else if simbolo de entrada actual es A2 then Estado = A2
if (Estado = A2)
vuelto=Estado actual-12
Estado = Entrega producto A2
Escribir “El vuelto es ”+ vuelto
else if simbolo de entrada actual es A3 then Estado = A3
if (Estado = A3)
vuelto=Estado actual-15
Estado = Entrega producto A3
Escribir “El vuelto es ”+ vuelto
else if simbolo de entrada actual es C1 then Estado = C1
if (Estado = C1)
vuelto=Estado actual-16
Estado = Entrega producto C1
Escribir “El vuelto es ”+ vuelto
else if simbolo de entrada actual es D2 then Estado = D2
if (Estado = D2)
vuelto=Estado actual-18
Estado = Entrega producto D2
Escribir “El vuelto es ”+ vuelto
else if simbolo de entrada actual es B1 then Estado = B1
if (Estado = B1)
vuelto=Estado actual-19
Estado = Entrega producto B1
Escribir “El vuelto es ”+ vuelto
else if simbolo de entrada actual es B2 then Estado = B2
if (Estado = B2)
vuelto=Estado actual-20
Estado = Entrega producto B2
Escribir “El vuelto es ”+ vuelto
else if simbolo de entrada actual es C3 then Estado = C3
if (Estado = C3)
vuelto=Estado actual-22
Estado = Entrega producto C3
Escribir “El vuelto es ”+ vuelto
else if simbolo de entrada actual es B3 then Estado = B3
if (Estado = B3)
vuelto=Estado actual-23
Estado = Entrega producto B3
Escribir “El vuelto es ”+ vuelto
else if simbolo de entrada actual es D3 then Estado = D3
if (Estado = D3)
vuelto=Estado actual-24
Estado = Entrega producto D3
Escribir “El vuelto es ”+ vuelto
else if simbolo de entrada actual es C2 then Estado =C2
Estado= Entrega producto C2
else salir de la rutina de error
28: if simbolo de entrada actual es A1 then Estado = A1
if (Estado = A1)
vuelto=Estado actual-8
Estado = Entrega producto A
Escribir “El vuelto es ”+ vuelto
else if simbolo de entrada actual es A2 then Estado = A2
if (Estado = A2)
vuelto=Estado actual-12
Estado = Entrega producto A2
Escribir “El vuelto es ”+ vuelto
else if simbolo de entrada actual es A3 then Estado = A3
if (Estado = A3)
vuelto=Estado actual-15
Estado = Entrega producto A3
Escribir “El vuelto es ”+ vuelto
else if simbolo de entrada actual es C1 then Estado = C1
if (Estado = C1)
vuelto=Estado actual-16
Estado = Entrega producto C1
Escribir “El vuelto es ”+ vuelto
else if simbolo de entrada actual es D2 then Estado = D2
if (Estado = D2)
vuelto=Estado actual-18
Estado = Entrega producto D2
Escribir “El vuelto es ”+ vuelto
else if simbolo de entrada actual es B1 then Estado = B1
if (Estado = B1)
vuelto=Estado actual-19
Estado = Entrega producto B1
Escribir “El vuelto es ”+ vuelto
else if simbolo de entrada actual es B2 then Estado = B2
if (Estado = B2)
vuelto=Estado actual-20
Estado = Entrega producto B2
Escribir “El vuelto es ”+ vuelto
else if simbolo de entrada actual es C3 then Estado = C3
if (Estado = C3)
vuelto=Estado actual-22
Estado = Entrega producto C3
Escribir “El vuelto es ”+ vuelto
else if simbolo de entrada actual es B3 then Estado = B3
if (Estado = B3)
vuelto=Estado actual-23
Estado = Entrega producto B3
Escribir “El vuelto es ”+ vuelto
else if simbolo de entrada actual es D3 then Estado = D3
if (Estado = D3)
vuelto=Estado actual-24
Estado = Entrega producto D3
Escribir “El vuelto es ”+ vuelto
else if simbolo de entrada actual es C2 then Estado =C2
if (Estado = C2)
vuelto=Estado actual-25
Estado = Entrega producto C2
Escribir “El vuelto es ”+ vuelto
else if simbolo de entrada actual es D1 then Estado = D1
Estado= Entrega producto D1
else salir de la rutina de error
50: if simbolo de entrada actual es A1 then Estado = A1
if (Estado = A1)
vuelto=Estado actual-8
Estado = Entrega producto A
Escribir “El vuelto es ”+ vuelto
else if simbolo de entrada actual es A2 then Estado = A2
if (Estado = A2)
vuelto=Estado actual-12
Estado = Entrega producto A2
Escribir “El vuelto es ”+ vuelto
else if simbolo de entrada actual es A3 then Estado = A3
if (Estado = A3)
vuelto=Estado actual-15
Estado = Entrega producto A3
Escribir “El vuelto es ”+ vuelto
else if simbolo de entrada actual es C1 then Estado = C1
if (Estado = C1)
vuelto=Estado actual-16
Estado = Entrega producto C1
Escribir “El vuelto es ”+ vuelto
else if simbolo de entrada actual es D2 then Estado = D2
if (Estado = D2)
vuelto=Estado actual-18
Estado = Entrega producto D2
Escribir “El vuelto es ”+ vuelto
else if simbolo de entrada actual es B1 then Estado = B1
if (Estado = B1)
vuelto=Estado actual-19
Estado = Entrega producto B1
Escribir “El vuelto es ”+ vuelto
else if simbolo de entrada actual es B2 then Estado = B2
if (Estado = B2)
vuelto=Estado actual-20
Estado = Entrega producto B2
Escribir “El vuelto es ”+ vuelto
else if simbolo de entrada actual es C3 then Estado = C3
if (Estado = C3)
vuelto=Estado actual-22
Estado = Entrega producto C3
Escribir “El vuelto es ”+ vuelto
else if simbolo de entrada actual es B3 then Estado = B3
if (Estado = B3)
vuelto=Estado actual-23
Estado = Entrega producto B3
Escribir “El vuelto es ”+ vuelto
else if simbolo de entrada actual es D3 then Estado = D3
if (Estado = D3)
vuelto=Estado actual-24
Estado = Entrega producto D3
Escribir “El vuelto es ”+ vuelto
else if simbolo de entrada actual es C2 then Estado =C2
if (Estado = C2)
vuelto=Estado actual-25
Estado = Entrega producto C2
Escribir “El vuelto es ”+ vuelto
else if simbolo de entrada actual es D1 then Estado =D1
if (Estado = D1)
vuelto=Estado actual-28
Estado = Entrega producto D1
Escribir “El vuelto es ”+ vuelto
else salir de la rutina de error
Tarjeta:
if (Estado = Tarjeta)
Escribir “Ingresa Numero de Tarjeta “
Simbolo de entrada actual = NumTarjeta
Escribir “Ingrese Fecha de vencimiento de Tarjeta “
Simbolo de entrada actual = FecVenciTar
Escribir “Ingrese CVV de Tarjeta “
Simbolo de entrada actual = Cvv
Escribir “Ingrese Producto que necesita“
if simbolo de entrada actual es A1 then
Escribir “El producto A1 tiene un precio de Q 8.00“
Simbolo de entrada actual = Pagar
if (Pagar>8)
Escribir “tu pago es mayor al producto solictiado“
Orden Cancelada
else if simbolo de entrada actual es A2 then
Escribir “El producto A2 tiene un precio de Q 12.00“
Simbolo de entrada actual = Pagar
if (Pagar>12)
Escribir “tu pago es mayor al producto solictiado“
Orden Cancelada
else if simbolo de entrada actual es A3 then
Escribir “El producto A3 tiene un precio de Q 15.00“
Simbolo de entrada actual = Pagar
if (Pagar>15)
Escribir “tu pago es mayor al producto solictiado“
Orden Cancelada
else if simbolo de entrada actual es C1 then
Escribir “El producto C1 tiene un precio de Q 16.00“
Simbolo de entrada actual = Pagar
if (Pagar>16)
Escribir “tu pago es mayor al producto solictiado“
Orden Cancelada
else if simbolo de entrada actual es D2 then
Escribir “El producto D2 tiene un precio de Q 18.00“
Simbolo de entrada actual = Pagar
if (Pagar>18)
Escribir “tu pago es mayor al producto solictiado“
Orden Cancelada
else if simbolo de entrada actual es B1 then
Escribir “El producto B1 tiene un precio de Q 19.00“
Simbolo de entrada actual = Pagar
if (Pagar>19)
Escribir “tu pago es mayor al producto solictiado“
Orden Cancelada
else if simbolo de entrada actual es B2 then
Escribir “El producto B2 tiene un precio de Q 20.00“
Simbolo de entrada actual = Pagar
if (Pagar>20)
Escribir “tu pago es mayor al producto solictiado“
Orden Cancelada
else if simbolo de entrada actual es C3 then
Escribir “El producto C3 tiene un precio de Q 22.00“
Simbolo de entrada actual = Pagar
if (Pagar>22)
Escribir “tu pago es mayor al producto solictiado“
Orden Cancelada
else if simbolo de entrada actual es B3 then
Escribir “El producto B3 tiene un precio de Q 23.00“
Simbolo de entrada actual = Pagar
if (Pagar>23)
Escribir “tu pago es mayor al producto solictiado“
Orden Cancelada
else if simbolo de entrada actual es D3 then
Escribir “El producto D3 tiene un precio de Q 24.00“
Simbolo de entrada actual = Pagar
if (Pagar>24)
Escribir “tu pago es mayor al producto solictiado“
Orden Cancelada
else if simbolo de entrada actual es C2 then
Escribir “El producto C2 tiene un precio de Q 25.00“
Simbolo de entrada actual = Pagar
if (Pagar>25)
Escribir “tu pago es mayor al producto solictiado“
Orden Cancelada
else if simbolo de entrada actual es D1 then
Escribir “El producto D1 tiene un precio de Q 28.00“
Simbolo de entrada actual = Pagar
if (Pagar>28)
Escribir “tu pago es mayor al producto solictiado“
Orden Cancelada
Leer el siguiente simbolo de entrada
end while

GRAMATICAS

(0) → 1m1 (1)


(0) → 1b5 (5)
(0) → 1b10 (10)
(0) → 1b20 (20)
(0) → 1b50 (50)
(0) → T (Tarjeta)

(1) → 7m1 (8)


(1) → 11m1 (12)
(1) → 14m1 (15)
(1) → 15m1 (16)
(1) → 17m1 (18)
(1) → 18m1 (19)
(1) → 19m1 (20)
(1) → 21m1 (22)
(1) → 23m1 (24)
(1) → 24m1 (25)
(1) → 27m1 (28)

(5) → 3m1 (8)


(5) → 1b5 (10)
(5) → 2b5 (15)
(5) → 3b5 (20)
(5) → 4b5 (25)
(5) → 5b5 (30)

(8) → A1 (A1)
(A1) → λ (Entrega Producto)

(10) → 2m1 (12)


(10) → 1b5 (15)
(10) → 1b10 (20)
(10) → 2b10 (30)

(12) → 3m1 (15)


(12) → A1 (A1)
(A1) → λ (Entrega Producto)
(12) → A2 (A2)
(A2) → λ (Entrega Producto)

(15) → 1m1 (16)


(15) → 1b5 (20)
(15) → 1b10 (25)
(15) → A1 (A1)
(A1) → λ (Entrega Producto)
(15) → A2 (A2)
(A2) → λ (Entrega Producto)
(15) → A3 (A3)
(A2) → λ (Entrega Producto)

(16) → 2m1 (18)


(16) → A1 (A1)
(A1) → λ (Entrega Producto)
(16) → A2 (A2)
(A2) → λ (Entrega Producto)
(16) → A3 (A3)
(A2) → λ (Entrega Producto)
(16) → C1 (C1)
(C1) → λ (Entrega Producto)
(18) → 2m1 (20)
(18) → A1 (A1)
(A1) → λ (Entrega Producto)
(18) → A2 (A2)
(A2) → λ (Entrega Producto)
(18) → A3 (A3)
(A2) → λ (Entrega Producto)
(18) → C1 (C1)
(C1) → λ (Entrega Producto)
(18) → D2 (D2)
(D2) → λ (Entrega Producto)

(19) → 1m1 (20)


(19) → A1 (A1)
(A1) → λ (Entrega Producto)
(19) → A2 (A2)
(A2) → λ (Entrega Producto)
(19) → A3 (A3)
(A2) → λ (Entrega Producto)
(19) → C1 (C1)
(C1) → λ (Entrega Producto)
(19) → D2 (D2)
(D2) → λ (Entrega Producto)
(19) → B1 (B1)
(B1) → λ (Entrega Producto)

(20) → 2m1 (22)


(20) → 1b5 (25)
(20) → 1b10 (30)
(20) → A1 (A1)
(A1) → λ (Entrega Producto)
(20) → A2 (A2)
(A2) → λ (Entrega Producto)
(20) → A3 (A3)
(A2) → λ (Entrega Producto)
(20) → C1 (C1)
(C1) → λ (Entrega Producto)
(20) → D2 (D2)
(D2) → λ (Entrega Producto)
(20) → B1 (B1)
(B1) → λ (Entrega Producto)
(20) → B2 (B2)
(B2) → λ (Entrega Producto)

(22) → 1m1 (23)


(22) → 2m1 (24)
(22) → 3m1 (25)
(22) → A1 (A1)
(A1) → λ (Entrega Producto)
(22) → A2 (A2)
(A2) → λ (Entrega Producto)
(22) → A3 (A3)
(A2) → λ (Entrega Producto)
(22) → C1 (C1)
(C1) → λ (Entrega Producto)
(22) → D2 (D2)
(D2) → λ (Entrega Producto)
(22) → B1 (B1)
(B1) → λ (Entrega Producto)
(22) → B2 (B2)
(B2) → λ (Entrega Producto)
(22) → C3 (C3)
(C3) → λ (Entrega Producto)

(23) → 1m1 (24)


(23) → 2m1 (25)
(23) → A1 (A1)
(A1) → λ (Entrega Producto)
(23) → A2 (A2)
(A2) → λ (Entrega Producto)
(23) → A3 (A3)
(A2) → λ (Entrega Producto)
(23) → C1 (C1)
(C1) → λ (Entrega Producto)
(23) → D2 (D2)
(D2) → λ (Entrega Producto)
(23) → B1 (B1)
(B1) → λ (Entrega Producto)
(23) → B2 (B2)
(B2) → λ (Entrega Producto)
(23) → C3 (C3)
(C3) → λ (Entrega Producto)
(23) → B3 (B3)
(B3) → λ (Entrega Producto)

(24) → 1m1 (25)


(24) → A1 (A1)
(A1) → λ (Entrega Producto)
(24) → A2 (A2)
(A2) → λ (Entrega Producto)
(24) → A3 (A3)
(A2) → λ (Entrega Producto)
(24) → C1 (C1)
(C1) → λ (Entrega Producto)
(24) → D2 (D2)
(D2) → λ (Entrega Producto)
(24) → B1 (B1)
(B1) → λ (Entrega Producto)
(24) → B2 (B2)
(B2) → λ (Entrega Producto)
(24) → C3 (C3)
(C3) → λ (Entrega Producto)
(24) → B3 (B3)
(B3) → λ (Entrega Producto)
(24) → D3 (D3)
(D3) → λ (Entrega Producto)

(25) → 3m1 (25)


(25) → 1b5 (30)
(25) → A1 (A1)
(A1) → λ (Entrega Producto)
(25) → A2 (A2)
(A2) → λ (Entrega Producto)
(25) → A3 (A3)
(A2) → λ (Entrega Producto)
(25) → C1 (C1)
(C1) → λ (Entrega Producto)
(25) → D2 (D2)
(D2) → λ (Entrega Producto)
(25) → B1 (B1)
(B1) → λ (Entrega Producto)
(25) → B2 (B2)
(B2) → λ (Entrega Producto)
(25) → C3 (C3)
(C3) → λ (Entrega Producto)
(25) → B3 (B3)
(B3) → λ (Entrega Producto)
(24) → D3 (D3)
(D3) → λ (Entrega Producto)
(24) → C2 (C2)
(C2) → λ (Entrega Producto)

(28) → A1 (A1)
(A1) → λ (Entrega Producto)
(28) → A2 (A2)
(A2) → λ (Entrega Producto)
(28) → A3 (A3)
(A2) → λ (Entrega Producto)
(28) → C1 (C1)
(C1) → λ (Entrega Producto)
(28) → D2 (D2)
(D2) → λ (Entrega Producto)
(28) → B1 (B1)
(B1) → λ (Entrega Producto)
(28) → B2 (B2)
(B2) → λ (Entrega Producto)
(28) → C3 (C3)
(C3) → λ (Entrega Producto)
(28) → B3 (B3)
(B3) → λ (Entrega Producto)
(28) → D3 (D3)
(D3) → λ (Entrega Producto)
(28) → C2 (C2)
(C2) → λ (Entrega Producto)
(28) → D1 (D1)
(D1) → λ (Entrega Producto)

(50) → A1 (A1)
(A1) → λ (Entrega Producto)
(50) → A2 (A2)
(A2) → λ (Entrega Producto)
(50) → A3 (A3)
(A2) → λ (Entrega Producto)
(50) → C1 (C1)
(C1) → λ (Entrega Producto)
(50) → D2 (D2)
(D2) → λ (Entrega Producto)
(50) → B1 (B1)
(B1) → λ (Entrega Producto)
(50) → B2 (B2)
(B2) → λ (Entrega Producto)
(50) → C3 (C3)
(C3) → λ (Entrega Producto)
(50) → B3 (B3)
(B3) → λ (Entrega Producto)
(50) → D3 (D3)
(D3) → λ (Entrega Producto)
(50) → C2 (C2)
(C2) → λ (Entrega Producto)
(50) → D1 (D1)
(D1) → λ (Entrega Producto)

Você também pode gostar