¿Por qué escribimos tantas palabras en forma incorrecta? En algunos casos es porque simplemente no conocemos
la manera correcta de escribirlas, por lo que tratamos de adivinar lo mejor que podemos. En otros casos, es porque
transponemos dos letras (por ejemplo, “perdeterminado” en lugar de “predeterminado”). Algunas veces escribimos una
letra doble por accidente (por ejemplo, “úttil” en vez de “útil”). Otras veces escribimos una tecla que está cerca de la que
pretendíamos escribir (por ejemplo, “cunpleaños” en vez de “cumpleaños”), etcétera.
Diseñe e implemente una aplicación de corrección ortográfi ca en Java. Su aplicación debe mantener un arreglo de
cadenas llamado
listaDePalabras
. Permita al usuario introducir estas cadenas. [
Nota: en el capítulo 14 presentamos
el procesamiento de archivos. Con esta capacidad, puede obtener las palabras para el corrector ortográfi co de un diccio-
nario computarizado almacenado en un archivo].
Su aplicación debe pedir al usuario que introduzca una palabra. La aplicación debe entonces buscar esa palabra en
el arreglo
listaDePalabras
. Si la palabra se encuentra en el arreglo, su aplicación deberá imprimir
"La palabra está
escrita correctamente"
. Si la palabra no se encuentra en el arreglo, su aplicación debe imprimir
"La palabra no
está escrita correctamente"
. Después su aplicación debe tratar de localizar otras palabras en la
listaDePalabras
que puedan ser la palabra que el usuario trataba de escribir. Por ejemplo, puede probar con todas las transposiciones
simples posibles de letras adyacentes para descubrir que la palabra “predeterminado” concuerda directamente con una
palabra en
listaDePalabras
. Desde luego que esto implica que su programa comprobará todas las otras transposi-
ciones posibles, como “rpedeterminado”, “perdeterminado”, “predetreminado”, “predetemrinado” y “predetermniado”.
Cuando encuentre una nueva palabra que concuerde con una en la
listaDePalabras
, imprima esa palabra en un
mensaje como
“¿Quiso decir “predeterminado”?”.
Lleve a cabo otras pruebas, como reemplazar cada letra doble con una sola letra y cualquier otra prueba que pueda
desarrollar para aumentar el valor de su corrector ortográfi co.
30.28
(Proyecto: un generador de crucigramas) La mayoría de las personas han resuelto crucigramas, pero pocos han
intentado generar uno. Aquí lo sugerimos como un proyecto de manipulación de cadenas que requiere una cantidad
considerable de sofi sticación y esfuerzo.
Hay muchas cuestiones que el programador tiene que resolver para hacer que funcione incluso hasta la aplicación
generador de crucigramas más simple. Por ejemplo, ¿cómo representaría la cuadrícula de un crucigrama dentro de la
computadora? ¿Debería utilizar una serie de cadenas o arreglos bidimensionales?
El programador necesita una fuente de palabras (es decir, un diccionario computarizado) a la que la aplicación
pueda hacer referencia de manera directa. ¿De qué manera deben almacenarse estas palabras para facilitar las manipu-
laciones complejas que requiere la aplicación?
Si usted es realmente ambicioso, querrá generar la porción de “claves” del crucigrama, en la que se imprimen pistas
breves para cada palabra “horizontal” y cada palabra “vertical”. La sola impresión de la versión del crucigrama en blanco
no es una tarea fácil.
Sección especial: proyectos desafi antes de manipulación de cadenas
1339
30_MAQ_CAP_30_DEITEL.indd1339
5/8/084:22:51PM