C M
Nuestra Historia G ac e ta
sobre
L a H i s t o r i a , L o s S o c i o s , L o s A c o n t e c i m i e n t o s , L a V i da S o c i a l , L a s
Story Transcript
Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación IIC1102 – Introducción a la Programación
Pregunta 1 Clave Morse Samuel Morse inventó el telégrafo en el año 1832 y diseño un esquema de codificación para enviar los mensajes. En el sistema, conocido como "Código Morse" o "Clave Morse", los caracteres se representan mediante puntos y líneas, que corresponden a impulsos eléctricos que producen una señal acústica o luminosa de una cierta duración. Así, la letra 'A' se codifica como un punto y una línea:
.-
Mientras que la letra 'F' como dos puntos, una línea y un punto:
..-.
El código Morse se encuentra disponible en un archivo llamado "morse.txt" para que su programa lo utilice. Cada línea del archivo contiene una letra seguida de un espacio en blanco y una sucesión de puntos y líneas que representan la codificación Morse para la letra. El inicio del archivo se vería como: A B C D E F G H I J K
.-... -.-. -.. . ..-. --. .... .. .---.-
En esta pregunta Ud. debe escribir una clase en Java que será utilizada para encriptar una palabra utilizando la Clave Morse. Su clase debe contener al menos dos métodos: -
el constructor, en el cual se lean las claves desde el archivo indicado arriba.
-
Un método llamado encriptar que reciba como parámetro una palabra y que devuelva un string con la clave Morse correspondiente. Por ejemplo, si se imprime en pantalla el retorno de su método para la palabra caja, debería aparecer lo siguiente:
-.-..-.---.-
1
Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación IIC1102 – Introducción a la Programación
2
Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación IIC1102 – Introducción a la Programación
Solución import java.io.*; public class Morse { private char[] letra; private String[] clave; int l; public Morse()throws IOException { letra = new char [100]; clave = new String [100]; File F = new File("morse.txt"); FileReader FR = new FileReader(F); BufferedReader BFR = new BufferedReader(FR); String s; String []tmp; int i = 0; while((s=BFR.readLine())!=null) { tmp = s.split(" "); letra[i] = tmp[0].charAt(0); clave[i] = tmp[1]; i++; } l = i;
} public String encriptar(String s) { int j=0; String res=""; while (j < s.length()) { int i=0; while(i