Código Morse en Groovy

Este pequeño programa toma una palabra, frase o texto y lo codifica en Clave Morse sin alterar los caracteres que no se pueden codificar. Analizaremos cómo está programado y como funciona paso a paso hasta obtener un resultado en pantalla.

Código fuente

Algo que hace de Groovy un lenguaje de sintaxis sencilla es que no es obligatorio declarar una clase con el mismo nombre del archivo y en su interior un método estático main(), como sí ocurre en Java. Un detalle a destacar es que Groovy es compatible 100% con la API de Java.

Creando el objeto Scanner

El programa está diseñado para interactuar con el usuario al permitir que el ingrese la información desde la terminal, por este motivo creamos el objeto Scanner para leer la información que el usuario ingrese.

Usamos la clase Scanner() para crear el objeto Scanner, que debe ser inicializado pasando como argumento el campo statico in de tipo InputStream que se encuentra en la clases System(). El objeto llamado «input» fue creado como un tipo constante usando la palabra clave «final» .

Creando mapa con los códigos morse

Una forma muy sencilla para codificar la palabra, texto o frase ingresada por el usuario es usar un mapa que asocie cada carácter alfanumérico y símbolos a un código morse. Este mapa es llamado «mapCode».

Este mapa se crea como un tipo de dato constante, igual que el objeto Scanner. Básicamente cada conjunto de pares clave-valor se conforma por los caracteres alfanuméricos junto con algunos símbolos y cada código morse separados por un «:». Este mapa será accedido más adelante para consultar cada código morse durante la codificación de la palabra ingresada por el usuario.

Leer palabra o texto ingresado por el usuario

El programa lógicamente debe permitir al usuario ingresar datos para que sean procesados.

Mostramos el clásico mensaje usando la función println() solicitando al usuario que ingrese la palabra que desea codificar. Usamos el método nextLine() del objeto Scanner creado anteriormente para leer la palabra o el texto que ingrese el usuario y luego lo asignamos a la variable «texto».

Codificando la palabra o texto en Código Morse

Este pequeño fragmento de código es el encargado de procesar la palabra o texto ingresada por el usuario y lo codifica en Código Morse.

Primero creamos una variable de tipo String para almacenar la palabra o texto codificado, en este caso la he llamado «texto_codificado». Convertimo la palabra o texto en minúscula usando el método toLowerCase(), luego usamos el iterador each {…} para recorrer cada carácter y es asignado a la variable por defecto «it».

Usamos el método getOrDefault() para obtener el valor en código morse correspondiente a cada carácter en «it» o de lo contrario, si no existe dicho valor, nos devuelve nuevamente el valor de «it»; el primer parámetro es la clave asociada a un valor en el mapa y el segundo parámetro es el valor que por defecto nos devuelve el método si la clave no existe en el mapa; luego vamos añadiendo cada valor a la variable «texto_codificado».

Mostrar información codificada en Código Morse

Mostramos en pantalla el resultado final, la información codificada en Código Morse.

Probando programa

Siempre es bueno probar los programas para saber si funcionan como lo esperado.

[fixedtorres@linuxero]$ groovy CodigoMorse.groovy
Ingrese la palabra que desea codificar: Fecha: 22/08/2019
Texto codificado: ..-..-.-......-: ..---..---/--------../..--------.--------.
[fixedtorres@linuxero]$

El programa funciona como es esperado, pero hay que notar 1 detalle muy importante y es que el programa respeta los caracteres que no pueden ser codificados, como lo es el carácter «/».

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *