sustantivo
. A medida que se elija cada palabra, concaténela con las palabras anteriores en el enunciado. Las palabras
deberán separarse mediante espacios. Cuando se muestre el enunciado fi nal, deberá empezar con una letra mayúscula y
terminar con un punto. El programa deberá generar 20 enunciados y mostrarlos en un área de texto.
30.6
El arreglo de artículos debe contener los artículos
"el"
,
"un"
,
"algún"
y
"ningún"
; el arreglo de sustantivos
deberá contener los sustantivos
"ninio"
,
"ninia"
,
"perro"
,
"ciudad"
y
"auto"
; el arreglo de verbos deberá contener
los verbos
"manejo"
,
"salto"
,
"corrio"
,
"camino"
y
"omitio"
; el arreglo de preposiciones deberá contener las pre-
posiciones
"a"
,
"desde"
,
"encima de"
,
"debajo de"
y
"sobre"
.
30.7
Una vez que escriba el programa anterior, modifíquelo para producir una historia breve que consista de varias
de estas oraciones (¿qué hay sobre la posibilidad de un escritor de exámenes fi nales al azar?)
30.8
(
Quintillas) Una quintilla es un verso humorístico de cinco líneas en el cual la primera y segunda línea riman
con la quinta, y la tercera línea rima con la cuarta. Utilizando técnicas similares a las desarrolladas en el ejercicio 30.5,
escriba una aplicación en Java que produzca quintillas al azar. Mejorar el programa para producir buenas quintillas es
un gran desafío, ¡pero el resultado valdrá la pena!
30.9
(Latín cerdo) Escriba una aplicación que codifi que frases en español a frases en latín cerdo. El latín cerdo es una
forma de lenguaje codifi cado. Existen muchas variaciones en los métodos utilizados para formar frases en latín cerdo.
Por cuestiones de simpleza, utilice el siguiente algoritmo:
Para formar una frase en latín cerdo a partir de una frase en español, divida la frase en palabras con un objeto de
la clase
StringTokenizer
. Para traducir cada palabra en español a una palabra en latín cerdo, coloque la primera letra
de la palabra en español al fi nal de la palabra, y agregue las letras “ae”. De esta forma, la palabra “salta” se convierte a
“altasae”, la palabra “el” se convierte en “leae” y la palabra “computadora” se convierte en “omputadoracae”. Los espacios
en blanco entre las palabras permanecen como espacios en blanco. Suponga que la frase en español consiste en palabras
separadas por espacios en blanco, que no hay signos de puntuación y que todas las palabras tienen dos o más letras.
El método
imprimirPalabraEnLatin
deberá mostrar cada palabra. Cada token devuelto de
nextToken
se pasará al
método
imprimirPalabraEnLatin
para imprimir la palabra en latín cerdo. Permita al usuario introducir el enunciado.
Use un área de texto para ir mostrando cada uno de los enunciados convertidos.
30.10
Escriba una aplicación que reciba como entrada un número telefónico como una cadena de la forma
(555)
555-5555
. La aplicación deberá utilizar un objeto de la clase
StringTokenizer
para extraer el código de área como un
token, los primeros tres dígitos del número telefónico como otro token y los últimos cuatro dígitos del número telefóni-
co como otro token. Los siete dígitos del número telefónico deberán concatenarse en una cadena. Deberán imprimirse
tanto el código de área como el número telefónico. Recuerde que tendrá que modifi car los caracteres delimitadores al
dividir la cadena en tokens.
30.11
Escriba una aplicación que reciba como entrada una línea de texto, que divida la línea en tokens mediante un
objeto de la clase
StringTokenizer
y que muestre los tokens en orden inverso. Use caracteres de espacio como delimi-
tadores.
30.12
Use los métodos de comparación de cadenas que se describieron en este capítulo, junto con las técnicas para
ordenar arreglos que se desarrollaron en el capítulo 16 para escribir una aplicación que ordene alfabéticamente una
lista de cadenas. Permita al usuario introducir las cadenas en un campo de texto. Muestre los resultados en un área de
texto.
30.13
Escriba una aplicación que reciba como entrada una línea de texto y que la imprima dos veces; una vez en letras
mayúsculas y otra en letras minúsculas.
30.14
Escriba una aplicación que reciba como entrada una línea de texto y un carácter de búsqueda, y que utilice el
método
indexOf
de la clase
String
para determinar el número de ocurrencias de ese carácter en el texto.
30.15
Escriba una aplicación con base en el programa del ejercicio 30.14, que reciba como entrada una línea de texto
y utilice el método
indexOf
de la clase
String
para determinar el número total de ocurrencias de cada letra del alfabe-
to en ese texto. Las letras mayúsculas y minúsculas deben contarse como una sola. Almacene los totales para cada letra
en un arreglo, e imprima los valores en formato tabular después de que se hayan determinado los totales.
30.16
Escriba una aplicación que lea una línea de texto, que divida la línea en tokens utilizando caracteres de espacio
como delimitadores, y que imprima sólo aquellas palabras que comiencen con la letra
"b"
.
30.17
Escriba una aplicación que lea una línea de texto, que divida la línea en tokens utilizando caracteres de espacio
como delimitadores, y que imprima sólo aquellas palabras que comiencen con las letras
"ED"
.
Ejercicios
1335
30_MAQ_CAP_30_DEITEL.indd1335
5/8/084:22:49PM