Está en la página 1de 3

Universidad Diego Portales Curso: Estructuras de Datos

Facultad de Ingenierı́a Profesor: Nelson Baloian


Escuela de Infromática Ayudantes: Jaime Guzmán

Tarea 1: Maquina de Estados

Fecha de Entrega: Martes 21 de Abril 2009, 23:59.


La tarea es individual, para efecto se sancionará por copia dos trabajos ”parecidos”.

1 Recordatorio
Un diagrama de estados nos permite visualizar los diferentes estados por los que va pasando un programa.
Las transiciones de un estado a otro se realizan ya sea incondicionalmente o bajo una condicin. Adems,
pueden ir acompaadas de una accin que se realiza junto con la transicin.

2 Desarrollo
Para realizar esta tarea usted deberá realizar un diagrama de estados (automata), para poder reconocer
variables del siguiente tipo.

variable=operando(operador,operando)*;

Analisando la expresion anterior se dara cuenta que:

operando : Es un identificador de cualquier tipo de dato numerico, numero que puede ser entero o de
coma flotante.
= : Signo de Asignacion, las asignacion es de derecha a izuierda.
(operador) : Cualquier operador unario como por ejemplo
* : Se puede repetir la expresión la cantidad de veces que sea necesaria.
ˆ Suma ( + )
ˆ Resta ( − )
ˆ Multiplicación ( ∗ )
ˆ División ( / )
Nota: las operaciones son sin prioridad, osea que es indiferente como aparescan, por ejemplo:

4 + 5 ∗ 3
En este caso la multiplicacion no le damos la prioridad, nuestro interes no se presenta en priorizar operaciones solo de
reconocimiento.

Para hacer un algoritmo de reconocimiento usted antes debera realizar un modelo de digramas de
estados (Maquina) el cual deberá entregar impreso con el codigo fuente de la tarea.
Despues de que usted haya realizado su modelo debera implementar (Programarlo), dentro de la siguiente
clase que usted podrá modificar completamente. Puede usar package o librerias que estime necesario.

1
1

3 public machine {
4

5 // v a r i a b l e
6

8 // c o n s t r u c t o r
9 public machine ( ) {
10

11 //Su i m p l e m e n t a c i o n
12

13

14 }
15

16 // methods
17

18 public int e v a l u a r ( S t r i n g x ) {
19 int aux =0;
20 //Su i m p l e m e n t a c i o n
21

22 return aux ;
23 }
24

25

26

27 // Main
28

29 public s t a t i c void main ( S t r i n g a r g s [ ] ) {


30

31 //Su i m p l e m e n t a c i o n
32 }
33

34

35 }

1. Si usted desea programar en otro lenguaje que no se java ( C , C++) debera implemtar esta
estructura y ejecucion para que realize la misma funcion.
2. Para manipular el stream de entrada usted podra utilizar cualquier recurso de lenguaje de pro-
gramacion usado para manipularlo con su programa, por ejemplo Scannner(), BufferedReader(),
scanf(), etc.
3. Para poder ejecutar el programa usted no debera realizar ningun tipo de interface grafica el pro-
grama solo debera correr por linea de comando. En su defecto debera compilar y ejecutarse por
consola:
En java , compilar javac
En C , compilar con gcc
En C++, compilar con g++

3 Opciones del Programa


ˆ El programa debe compilar

ˆ El programa debera tener un archivo README, explicando su ejecucion y funcionamiento

ˆ El Programa debera correr mediante linea de comando

ˆ El Codigo Fuente del programa debera estar documentando y bien identado.

2
4 Restricciones
Su Tarea deberá cumplir con los siguientes requerimientos

ˆ Debe usar C, C++ ó Java para realizar

ˆ Los nombres de archivo que se leen y escriben deben indicarse de manera relativa al directorio en
que se ejecuta el programa. Esto significa que no debe obligar a que los archivos se encuentren en
una direccion absoluta como C: M is Documentos M iT area, o /home/Yo/MiTarea.
ˆ Codigo fuente DOCUMENTADO

ˆ En el inicio del codigo fuente a nivel de comentario debera colocar:

– Nombre y apellido
– RUT
– Email

5 Recomendaciones
ˆ Diseñe su solucion antes de programar

ˆ Realice pruebas de su codigo a medida que va programando

ˆ Pruebe su entrega antes de enviar su trabajo

6 Evaluación
Su trabajo se evaluará bajo el siguiente criterio:

ˆ 10% Cumplimiento de las normas de entrega.

ˆ 20% Modelo de Diagramas de Estado.

ˆ 20% Construcción de la Solución


Compilación
Informe de Depuración (Debera incluirlo dentro del archivo README)

ˆ 50% Prueba de ejecución. Funcionamiento de cada una de las opciones solicitadas. La salida de su
programa, y los archivos que genere, deben seguir las normas indicadas.

7 Entrega
Como parte de su evaluación, usted debe enviar un archivo (.tar.gz, .zip, ó .rar) que contenga lo
siguiente.

ˆ Codigos fuentes (NO cuentan los binarios )

ˆ Archivo README

ˆ Sin Archivos de prueba, el cor

La forma de entrega via mail o weblogs se establecerá en ayudantia o catedras.

También podría gustarte