¿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