0% encontró este documento útil (0 votos)
63 vistas7 páginas

Proyecto Autómatas

El documento presenta 4 puntos sobre lenguajes regulares. El primer punto diseña un autómata finito determinístico para un reproductor de audio. El segundo punto diseña un autómata para una máquina expendedora de jugos. El tercer punto construye un analizador léxico para identificar valores numéricos. El cuarto punto diseña un autómata para reconocer el lenguaje formado por cadenas con un número i de as seguido de j bes, donde j es el máximo común divisor de i y 3.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
63 vistas7 páginas

Proyecto Autómatas

El documento presenta 4 puntos sobre lenguajes regulares. El primer punto diseña un autómata finito determinístico para un reproductor de audio. El segundo punto diseña un autómata para una máquina expendedora de jugos. El tercer punto construye un analizador léxico para identificar valores numéricos. El cuarto punto diseña un autómata para reconocer el lenguaje formado por cadenas con un número i de as seguido de j bes, donde j es el máximo común divisor de i y 3.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 7

Jefferson Beltrán 67000150

Julián Guarín 6700139


Daniel Gutiérrez 67000233

LENGUAJES REGULARES

WILSON ARMANDO BERMUDEZ RAMIREZ


67000078
JAIRO ALEXANDER CHOCONTÁ BEJARANO
67000505

PROYECTO DE LENGUAJES REGULARES

PROFESOR
MARIO MARTINEZ

UNIVERSIDAD CATOLICA DE COLOMBIA


FACULTAD DE INGENIERÍA
INGENIERÍA DE SISTEMAS
BOGOTÁ
2019

● Punto1.
Jefferson Beltrán 67000150
Julián Guarín 6700139
Daniel Gutiérrez 67000233

Diseñar un autómata finito determinístico que represente el funcionamiento de un reproductor de audio que
reconoce los comandos PLAY, FORWARD, STOP, PAUSE y REWIND ingresados al reproductor
por el usuario. También debe reconocer que se ha alcanzado el extremo inicial o final de la
información almacenada, en este caso, música (supondremos funcionamiento circular). Las
condiciones de operación del equipo son ENCENDIDO, APAGADO, RETROCEDE, IDIOMA,
AVANZA, PAUSA.
Play P

Forward F

Stop S

Pause A

Rewind R

Off O

On N

P F S A R O N

q0 --- --- --- --- --- q0 q1

q1 q5 q2 --- --- q3 q0 ---

q2 --- q2 q4 q4 q3 q0 ---

q3 --- q2 q4 q4 q3 q0 ---

q4 q2 q2 --- --- q3 q0 ---

q5 q2 --- --- q3 q0 ---


Jefferson Beltrán 67000150
Julián Guarín 6700139
Daniel Gutiérrez 67000233

Programa 1
Proyecto.cpp

● Punto 2

Diseñar un autómata finito determinístico que modele el funcionamiento de una máquina expendedora de
jugos que acepta monedas de 5, 10 y 25 céntimos. Cuando el cliente deposita 30 céntimos o más,
la máquina devuelve inmediatamente todo lo que sobrepase de 30 céntimos. A continuación, el
cliente presiona el botón naranja y obtener un jugo de naranja o presionar el botón rojo y obtener
un jugo de manzana. Al retirarse el jugo la máquina vuelve a su estado inicial, de esta manera queda
disponible para una nueva operación. Cuando el cliente deposita menos de 30 céntimos la máquina
le devuelve inmediatamente todo lo depositado, no obtiene ningún jugo y la máquina vuelve a su
estado inicial, de esta manera queda disponible para una nueva operación.
Jefferson Beltrán 67000150
Julián Guarín 6700139
Daniel Gutiérrez 67000233

Tablas de estados para una máquina expendedora.

Estado siguiente Salida

Entrada Entrada

Esta
do 5 10 25 N R Estado 5 10 25 N R

q0 q1 q2 q5 q0 q0 q0 n n n n n

q1 q2 q3 q6 q0 q0 q1 n n n 5 5

q2 q3 q4 q6 q0 q0 q2 n n 5 10 10

q3 q4 q5 q6 q0 q0 q3 n n 10 15 15

q4 q5 q6 q6 q0 q0 q4 n n 15 20 20

q5 q6 q6 q6 q0 q0 q5 n 5 20 25 25

q6 q6 q6 q6 q0 q0 q6 5 10 25 ZN ZR

Programa 2
Proyecto.cpp
Jefferson Beltrán 67000150
Julián Guarín 6700139
Daniel Gutiérrez 67000233

● Punto 3
Construir un analizador léxico que identifique los valores numéricos (constantes) en
sus diferentes tipos (int, float, double, long, etc) y notaciones de un programa escrito
en un lenguaje de programación.

Int

- 0 1 2 3 4 5 6 7 8 9
Q0 Q1 Q2 Q2 Q2 Q2 Q2 Q2 Q2 Q2 Q2 Q2
Q1 --- Q2 Q2 Q2 Q2 Q2 Q2 Q2 Q2 Q2 Q2
Q2 --- Q2 Q2 Q2 Q2 Q2 Q2 Q2 Q2 Q2 Q2

IntPrograma3.cpp
Jefferson Beltrán 67000150
Julián Guarín 6700139
Daniel Gutiérrez 67000233

Float

. - 0 1 2 3 4 5 6 7 8 9
Q0 --- Q1 Q2 Q2 Q2 Q2 Q2 Q2 Q2 Q2 Q2 Q2
Q1 --- --- Q2 Q2 Q2 Q2 Q2 Q2 Q2 Q2 Q2 Q2
Q2 Q3 --- Q2 Q2 Q2 Q2 Q2 Q2 Q2 Q2 Q2 Q2
Q3 --- --- Q4 Q4 Q4 Q4 Q4 Q4 Q4 Q4 Q4 Q4
Q4 --- --- Q4 Q4 Q4 Q4 Q4 Q4 Q4 Q4 Q4 Q4

FloatPrograma3.cp
p

● Punto 4
Jefferson Beltrán 67000150
Julián Guarín 6700139
Daniel Gutiérrez 67000233

Diseñar un autómata finito determinístico que reconozca el lenguaje L = {ai bj | j = mcd (i, 3), i ≥
0}, sobre Σ = {a, b}.

Modelamiento
Construir un AFD que reconozca el lenguaje L de todas las cadenas sobre {a, b}* que empiezan con i  0
aes seguidas de j = mcd (i, 3) bes. (Sugerencia: observe en la siguiente tabla el resultado del mcd(i,3)
para diferentes valores de i).

a b
Q0 Q1 ---
Q1 Q2 Q7
Q2 Q3 Q7
Q3 Q1 Q4
Q4 --- Q5
Q5 --- Q6
Q6 --- ---
Q7 --- ---

Programa 4
Proyecto.cpp

También podría gustarte