U.A.B.C Facultad de Ingeniería Tecnologías de Programación Ejercicio de 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 Ejercicio de Cadenas de caracteres M.C. Pablo M. Navarro Álvarez EJERCICIO 2: Hacer un programa en C que lea una cadena de caracteres con una longitud máxima de 80 caracteres y que contiene el siguiente formato: Nombre completo, dirección (calle numero colonia código postal), email, teléfono El programa deberá validar que los datos estén correctos y los desglose como se muestra en el siguiente ejemplo: Cadena leída desde el teclado: Pablo navarro alvarez, calzada cetys 898 cp 92231, navarro.pablo@uabc.edu.mx, (686)566-42-70 Salida generada por el programa: Nombre: Pablo Navarro Alvarez Dirección: calzada Cetys #898, cp 92231 Email: navarro.pablo@uabc.edu.mx Teléfono: (686) 5664270 Se deben considerar las características que a continuación se enlistan: Nombre, se deberá validar que contenga puras letras, espacios en blanco, letras acentuadas, diéresis o apóstrofes, además deberá transformarlo de tal forma que todas las letras iniciales sean en mayúscula. Si contiene carácter invalida notificarlo. Dirección, anteponer al número el símbolo de # y agregar una coma después del número si está incluido el código postal, sino está incluido el código postal no incluir la coma. Recuerda que para saber si existe un código postal, deben aparecer las letras “cp” en la dirección. Email, se deberá validar que la cadena correspondiente a email incluya como valores validos letras, dígitos, carácter de punto, guion bajo, guion medio y forzosamente el carácter de @. Cualquier error en los caracteres proporcionados deberá ser notificado. Teléfono, se deberá validar que la cadena correspondiente a teléfono solo contenga dígitos, () y el carácter “‐”, cualquier otro carácter deberá ser tratado y notificado como error. Al momento de escribir el número de teléfono se deberán eliminar todos los caracteres de “‐”. FELICES FIESTAS PATRIAS!!!!