Actividad Entregable: Analizador de Texto
Resultados de Aprendizaje
Esta actividad trabaja los siguientes RAs del módulo de Programación:
- RA2, RA3 — Escribe y depura código aplicando programación modular con funciones y procedimientos. Desarrolla programas estructurados que reutilizan código mediante parámetros, valores de retorno y manipulación de cadenas.
Objetivo
Diseñar y construir un programa complejo aplicando los principios de la programación modular (Unidad 3), haciendo un uso intensivo de funciones y procedimientos, y aplicando las técnicas de manipulación de String (Unidad 2).
Enunciado
Has sido contratado para crear una herramienta de análisis de texto. El programa principal (main) debe ser simple: pedirá al usuario que introduzca un párrafo de texto y luego llamará a una única función que se encargará de analizarlo y mostrar un informe completo.
El desafío es delegar cada cálculo individual a una función especializada.
Estructura del Programa
Tu programa AnalizadorTexto.java debe contener las siguientes funciones. Presta atención a lo que debe hacer cada una y a lo que debe devolver
1. La función principal main
-
Debe ser simple.
-
Su única responsabilidad es:
-
Crear un
Scanner. -
Llamar a
mostrarBienvenida(). -
Llamar a
pedirTexto()para obtener el texto del usuario. -
Llamar a
analizarYMostrarResultados()pasándole el texto. -
Cerrar el
Scanner.
2. Funciones a Implementar
Aquí es donde ocurre la funcionalidad principal. Deberás crear:
A. public static void mostrarBienvenida()
-
Tipo: Procedimiento.
-
Tarea: Muestra un mensaje de bienvenida claro y las instrucciones del programa.
B. public static String pedirTexto(Scanner teclado)
-
Tipo: Función.
-
Tarea: Pide al usuario que "Introduzca un texto para analizar:" y devuelve el
Stringque el usuario escriba. -
Concepto clave: Devuelve un tipo
String.
C. public static void analizarYMostrarResultados(String texto)
-
Tipo: Procedimiento.
-
Tarea: Es la función que coordina el análisis. No calcula nada directamente, sino que llama a todas las funciones auxiliares (las siguientes) y usa sus resultados para imprimir un informe final.
-
Concepto clave: Composición de funciones (una función que llama a otras).
D. public static int contarPalabras(String texto)
-
Tipo: Función.
-
Tarea: Recibe el texto y devuelve el número total de palabras.
-
Pista: Recorre el
Stringcarácter a carácter con unfor(charAt()). Una palabra nueva comienza cuando el carácter actual no es un espacio (' ') y el carácter anterior sí lo era. (¡No olvides el caso especial de la primera palabra y ten cuidado con los espacios dobles!). -
Concepto clave: Manipulación de
String(UD2) y retorno deint.
E. public static int contarVocales(String texto)
-
Tipo: Función.
-
Tarea: Recibe el texto y devuelve el número total de vocales (a, e, i, o, u), sin importar si son mayúsculas o minúsculas.
-
Pista: Recorre el
Stringcon unfor, usatoLowerCase()ycharAt(), y comprueba cada carácter con unswitch. -
Concepto clave: Recorrido de
String,switch, acumulador.
F. public static String encontrarPalabraMasLarga(String texto)
-
Tipo: Función.
-
Tarea: Recibe el texto y encuentra y devuelve la palabra más larga. Si hay varias con la misma longitud máxima, devuelve la primera que encontró.
-
Pista: Recorre el
Stringcarácter a carácter. Usa unStringauxiliar (ej:palabraActual) para "construir" la palabra que estás leyendo. Cuando encuentres un espacio, significa que la palabra ha terminado. En ese momento, compara su longitud (.length()) con la longitud máxima que hayas encontrado hasta ahora. ¡No olvides comprobar la última palabra después de que termine el bucle! -
Concepto clave: Algorítmica de búsqueda, recorrido de
String.
G. public static int contarOcurrencias(String texto, char letra)
-
Tipo: Función.
-
Tarea: Recibe el texto y una letra. Devuelve cuántas veces aparece esa letra en el texto (sin distinguir mayúsculas/minúsculas).
-
Concepto clave: Paso de parámetros por valor (el
char).
Ejemplo de Salida
Entrega
-
Genera un fichero Java con el nombre
ud3_actividad_texto_[tu_nombre].java. -
Asegúrate de que tu
mainesté limpio y que cada función cumpla con su responsabilidad única.