U.A.B.C Facultad de Ingeniería Tecnologías de Programación Práctica # 2: Cadenas de caracteres M.C. Pablo M. Navarro Álvarez EJERCICIO 1: El código morse representa los caracteres como una secuencia de puntos y rayas de longitud variable. En la práctica, los caracteres que forman un mensaje están separados por pequeñas pausas entre cada carácter y en nuestro caso se representara con un espacio en blanco. La siguiente tabla, muestra la secuencia del código Morse. Note que algunas combinaciones de puntos y rayas no han sido asignadas. Para propósitos de este problema asignaremos esos valores de la siguiente manera (Esta no es la asignación actual del código Morse): Por lo tanto, el mensaje “ACM_GREATER_NY_REGION” es codificado de la siguiente manera: .- -.-. -- ..-- --. .-. . .- - . .-. ..-- -. -.-- ..-- .-. . --. .. --- -. M.E. Ohaver propuso un esquema de encriptación basado en la mutilación del código morse. Ella remplazo las pausas entre cada letra (espacio en blanco) con una cadena de números que representa la cantidad de puntos y rayas que forman cada uno de los caracteres convertidos a clave morse. Por ejemplo, consideremos el mensaje “.--.-.-“. Sin tener un conocimiento de donde debe ir cada pausa o espacio en blanco, este mensaje podría ser “ACM”, “ANK”, o cualquier otra cantidad de posibilidades. Si agregamos información sobre la longitud de caracteres morse que forman una letra o carácter, por ejemplo, “.--.-.--242”, entonces el código no sería ambiguo, ya que la serie de números idéntica que los primeros 2 caracteres morse representan el primer carácter, los siguientes 4 el segundo carácter y los últimos dos el tercer carácter. Hacer un programa en C que ofrezca un menú de opciones como el que se muestra a continuación: Conversión a Clave Morse [1] Leer una cadena [2] Convertir la cadena [3] Imprimir cadena en clave morse [4] Imprimir cadena encriptada [5] Terminar La opción 1, permitirá leer una cadena de caracteres con una longitud máxima de 50 caracteres. La opción 2, permitirá realizar la conversión de la cadena leída en la opción 1 a su representación en clave Morse sin mostrar la conversión. La opción 3, permitirá imprimir la cadena original y su representación en clave morse utilizando un espacio en blanco para separar cada carácter de la cadena resultante (en clave Morse). La opción 4, convertirá la cadena en clave Morse a su representación en Morse encriptada utilizando el Método Ohaver e imprimirá como resultado la cadena original, la representación en clave Morse y su representación en clave morse encriptada (Método Ohaver), esto es sin separación de caracteres morse y con la cadena de números indicando las longitudes necesarias para representar cada carácter. U.A.B.C Facultad de Ingeniería Tecnologías de Programación Práctica # 2: Cadenas de caracteres M.C. Pablo M. Navarro Álvarez EJERCICIO 2: El ejército mexicano cuenta con un estándar para encriptar mensajes que llevan información confidencial, el problema es que es muy tardado desencriptarlos a mano por lo que se ocupa desarrollar un programa en C que reciba uno de estos mensajes encriptados y los haga más fácil de comprender. El mensaje recibido puede incluir letras de la A-Z minúsculas o mayúsculas, números 0-9 y caracteres especiales (+ - * /). El mensaje no será mayor a 50 caracteres. El programa debe manipular el mensaje recibido y separarlo en 2 cadenas diferentes, una para letras y una para números. Cada vez que se encuentre en la cadena original uno de los siguientes 4 caracteres especiales, se deberá agregar a la cadena de letras el nombre de este carácter, “Mas” (+), “Menos” (-), “Entre” (/) y “Por” (*). El mensaje puede contener cualquier otro carácter especial a parte de los 4 mencionados anteriormente, estos deben ser ignorados ya que solo sirven como encriptación extra. El programa deberá ofrecer un menú de opciones como el que se muestra a continuación: Menu 1. 2. 3. 4. Ingresar un nuevo mensaje Decodificar el mensaje Mostrar el mensaje original y los mensajes decodificados Salir La opción 1, permitirá al usuario ingresar una la cadena que se desea desencriptar. La opción 2, permitirá manipular la cadena ingresada y llevar a cabo el proceso de separación y decodificación sin mostrar resultados. La opoción 3, permitirá mostrar la cadena original y los resultados obtenidos. La opción 4, permitirá salir del programa. Ejemplo: Cadena Original Në89&ce$#&4sita0=?mò)(s[]+âp87o777yo Resultado Letras: NëcesitamòsMasâpoyo Números: 89487777