Sunteți pe pagina 1din 4

Universidad Diego Portales Curso: Estructuras de Datos

Facultad de Ingenierı́a Profesor: Nelson Baloian


Escuela de Infromática Ayudantes: Jaime Guzmán

Tarea 3: Decodificador Morse

Fecha de Entrega: Por confirmar.


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

1 Introducción
El lenguaje morse se utilizo en gran medidad con los telégrafo elctrico. El método morse según el cual
cada letra o numero era transmitido de forma individual con un codigo consistente en rayas y puntos, es
decir, la simbologia utlizada se diferencian en el tiempo de duracin de la seal activa. La duracin del punto
es la mı́nima posible. Una raya tiene una duracin de aproximadamente tres veces la del punto. Entre
cada par de smbolos de una misma palabra existe una ausencia de seal con duracion aproximada a la de
un punto. Para la separacin de palabras transmitidas el tiempo es de aproximadamente tres veces el de
la raya. Por ejemplo los caracteres mas basicos dentro de un lenguaje en morse serian los siguientes:

1
2 Desarrollo
Se debera realizar un programa que funcione mediante consola que permita decodificar palabras morses
por ejemplo, si nosotros ingresamos la palabra ”hola” en morse la entrada de datos serı́a como la siguiente

.... − − − . − .. .−
Que corresponderia al equivalente de la palabtra ”hola”.

2.1 Funcionalidad Basica


El programa decodificador se basara en un arbol ABB para funcionar lo cual implicara que cada vez que
lea un palabra esta quedara en memoria hasta que pase por el arbol ( una letra para cada nodo ) ,despues
se procesara y almacenara el resultado en un estructura hashtable. Tambien el programa podra recivir
multiples palabras, es decir se pueden recivir dos o mas palabras y podra procesarlo como una cadena de
caracteres mas grande.
El programa no validara la coherencia de las palabras solo traducirá caracter a caracter, pero no traducira
la siguientes palabras restrictivas:

ˆ EDD

ˆ flojo

ˆ Solemne

ˆ Heap

ˆ AVL

ˆ heapsort

ˆ quicksort

ˆ Tree

ˆ hash

Estas palabras restrictivas seran detectadas por el programa sin importar si son todas mayusculas o
minusculas, por lo tanto no habra sensibilidad a caracteres en mayuscula o minuscula. Por ejemplo
”EDD” seria igual que ”edd” y el programa debera tirar un error de procesamiento al usuario, y el
programa no se debera caer en este caso.

2.2 Accesibilidad
El programa tambien dispondra para el usuario el siguiente menu

1. Traducir palabra a morse


2. Traducir expresion en morse a una palabra
3. Listar todas las palabras traducidas hasta la ultima ejecucion. Se podra utilizar la clase hashtable
de java o tambien una propia implementacion
4. Imprimir cantidad de traducciones
5. Imprimir cantidad de palabras restringidas

6. Salir
7. Menu

2
1

2 import j a v a . u t i l . * ;
3

5 public c l a s s d e c o d i f i c a d o r {
6 //
7

9 //An i n s t a n c e o f d e c o d i f i c a d o r
10 public d e c o d i f i c a d o r ( ) {
11

12 }
13

14 // Main method
15 public s t a t i c void main ( S t r i n g a r g s [ ] ) {
16

17

18

19 }
20 // methods
21 public nodo Arbol i n s e r t a r ( Nodo Arbol x , S t r i n g code , char y ) { . . . . . . . . }
22

23 public void imprimirHash ( H a s h t a b l e h ) { }


24

25 public void i m p r i m i r P a l a b r a ( ) { }
26

27 public S t r i n g t r a d u c i r ( S t r i n g cod ){ .......... }


28

29 public void imprimirCantRest ( ) { }


30

31

32 }

1. Usted deberá programar en los lenguaje JAVA, C ó C++ , también deberá implemtar las estructura
que usted estime necesario.
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 sólo deberá 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.

3
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% Funcionamiento de decodificación morse.

ˆ 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.

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

S-ar putea să vă placă și