Ejercicios 7ma Deitel Java
Ejercicios 7ma Deitel Java
Ejercicios 7ma Deitel Java
f ) fracciones[ 6 ] = 3.333;
g) double total = 0.0;
for ( int x = 0; x < fracciones.length; x++ )
total += fracciones[ x ];
7.4 a) int tabla[][] = new int[ TAMANIO_ARREGLO ][ TAMANIO_ARREGLO ];
b) Nueve.
c) for ( int x = 0; x < tabla.length; x++ )
for ( int y = 0; y < tabla[ x ].length; y++ )
tabla[ x ][ y ] = x + y;
7.5 a) Error: asignar un valor a una constante después de inicializarla.
Corrección: asigne el valor correcto a la constante en una declaración final int TAMANIO_ARREGLO, o
declare otra variable.
b) Error: se está haciendo referencia al elemento de un arreglo que está fuera de los límites del arreglo
(b[10]).
Corrección: cambie el operador <= por <.
c) Error: la indización del arreglo se está realizando en forma incorrecta.
Corrección: cambie la instrucción por a[ 1 ][ 1 ] = 5;.
Ejercicios
7.6 Complete las siguientes oraciones:
a) Un arreglo unidimensional p contiene cuatro elementos. Los nombres de esos elementos son __________,
____________, ____________ y ____________.
b) Al proceso de nombrar un arreglo, declarar su tipo y especificar el número de dimensiones se le conoce
como __________ el arreglo.
c) En un arreglo bidimensional, el primer índice identifica el(la) ____________ de un elemento y el segundo
identifica el(la) ____________ de un elemento.
d) Un arreglo de m por n contiene ____________ filas, ____________ columnas y ____________ elementos.
e) El nombre del elemento en la fila 3 y la columna 5 del arreglo d es ____________.
7.7 Conteste con verdadero o falso a cada una de las siguientes proposiciones; en caso de ser falso, explique por qué.
a) Para referirse a una ubicación o elemento específico dentro de un arreglo, especificamos el nombre del
arreglo y el valor del elemento específico.
b) La declaración de un arreglo reserva espacio para el mismo.
c) Para indicar que deben reservarse 100 ubicaciones para el arreglo entero p, el programador escribe la decla-
ración
p[ 100 ];
d) Una aplicación que inicializa con cero los elementos de un arreglo con 15 elementos debe contener al
menos una instrucción for.
e) Una aplicación que sume el total de los elementos de un arreglo bidimensional debe contener instrucciones
for anidadas.
7.8 Escriba instrucciones en Java que realicen cada una de las siguientes tareas:
a) Mostrar el valor del elemento 6 del arreglo f.
b) Inicializar con 8 cada uno de los cinco elementos del arreglo entero unidimensional g.
c) Sumar el total de los 100 elementos del arreglo c de punto flotante.
d) Copiar el arreglo a de 11 elementos en la primera porción del arreglo b, el cual contiene 34 elementos.
e) Determinar e imprimir los valores menor y mayor contenidos en el arreglo w con 99 elementos de punto
flotante.
7.9 Considere un arreglo entero t de dos por tres.
a) Escriba una instrucción que declare y cree a t.
b) ¿Cuántas filas tiene t?
Ejercicios 311
7.15 Modifique la figura 7.2, de manera que el tamaño del arreglo se especifique mediante el primer argumento de
línea de comandos. Si no se suministra un argumento de línea de comandos, use 10 como el valor predeterminado del
arreglo.
7.16 Escriba una aplicación que utilice una instrucción for mejorada para sumar los valores double que se pasan
mediante los argumentos de línea de comandos. [Sugerencia: use el método static parseDouble de la clase Double
para convertir un String en un valor double].
7.17 (Tiro de dados) Escriba una aplicación para simular el tiro de dos dados. La aplicación debe utilizar un objeto
de la clase Random una vez para tirar el primer dado, y de nuevo para tirar el segundo dado. Después debe calcularse la
suma de los dos valores. Cada dado puede mostrar un valor entero del 1 al 6, por lo que la suma de los valores variará
del 2 al 12, siendo 7 la suma más frecuente, mientras que 2 y 12 serán las sumas menos frecuentes. En la figura 7.30
se muestran las 36 posibles combinaciones de los dos dados. Su aplicación debe tirar los dados 36,000 veces. Utilice
un arreglo unidimensional para registrar el número de veces que aparezca cada una de las posibles sumas. Muestre los
resultados en formato tabular. Determine si los totales son razonables (es decir, hay seis formas de tirar un 7, por lo que
aproximadamente una sexta parte de los tiros deben ser 7).
7.18 (Juego de craps) Escriba una aplicación que ejecute 1000 juegos de craps (figura 6.9) y responda a las siguientes
preguntas:
a) ¿Cuántos juegos se ganan en el primer tiro, en el segundo, …, en el vigésimo tiro y después de éste?
b) ¿Cuántos juegos se pierden en el primer tiro, en el segundo, …, en el vigésimo tiro y después de éste?
c) ¿Cuáles son las probabilidades de ganar en craps? [Nota: debe descubrir que craps es uno de los juegos de
casino más justos. ¿Qué cree usted que significa esto?].
d) ¿Cuál es la duración promedio de un juego de craps?
e) ¿Las probabilidades de ganar mejoran con la duración del juego?
1 2 3 4 5 6
1 2 3 4 5 6 7
2 3 4 5 6 7 8
3 4 5 6 7 8 9
4 5 6 7 8 9 10
5 6 7 8 9 10 11
6 7 8 9 10 11 12
7.19 (Sistema de reservaciones de una aerolínea) Una pequeña aerolínea acaba de comprar una computadora para su
nuevo sistema de reservaciones automatizado. Se le ha pedido a usted que desarrolle el nuevo sistema. Usted escribirá
una aplicación para asignar asientos en cada vuelo del único avión de la aerolínea (capacidad: 10 asientos).
Su aplicación debe mostrar las siguientes alternativas: Por favor escriba 1 para Primera Clase y Por favor
escriba 2 para Economico. Si el usuario escribe 1, su aplicación debe asignarle un asiento en la sección de primera
clase (asientos 1 a 5). Si el usuario escribe 2, su aplicación debe asignarle un asiento en la sección económica (asientos
6 a 10). Su aplicación deberá entonces imprimir un pase de abordaje, indicando el número de asiento de la persona y
si se encuentra en la sección de primera clase o clase económica del avión.
Use un arreglo unidimensional del tipo primitivo boolean para representar la tabla de asientos del avión. Inicialice
todos los elementos del arreglo con false para indicar que todos los asientos están vacíos. A medida que se asigne cada
asiento, establezca los elementos correspondientes del arreglo en true para indicar que ese asiento ya no está disponible.
Su aplicación nunca deberá asignar un asiento que ya haya sido asignado. Cuando esté llena la sección económi-
ca, su programa deberá preguntar a la persona si acepta ser colocada en la sección de primera clase (y viceversa). Si la
persona acepta, haga la asignación de asiento apropiada. Si no acepta, imprima el mensaje "El proximo vuelo sale
en 3 horas".
Ejercicios 313
7.20 (Ventas totales) Use un arreglo bidimensional para resolver el siguiente problema: una compañía tiene cuatro
vendedores (1 a 4) que venden cinco productos distintos (1 a 5). Una vez al día, cada vendedor pasa una nota por cada
tipo de producto vendido. Cada nota contiene lo siguiente:
a) El número del vendedor.
b) El número del producto.
c) El valor total en dólares de ese producto vendido en ese día.
Así, cada vendedor pasa entre 0 y 5 notas de venta por día. Suponga que está disponible la información sobre todas las
notas del mes pasado. Escriba una aplicación que lea toda esta información para las ventas del último mes y que resuma
las ventas totales por vendedor, por producto. Todos los totales deben guardarse en el arreglo bidimensional ventas.
Después de procesar toda la información del mes pasado, muestre los resultados en formato tabular, en donde cada
columna represente a un vendedor específico y cada fila represente a un producto. Saque el total de cada fila para obte-
ner las ventas totales de cada producto durante el último mes. Saque el total de cada columna para obtener las ventas
totales de cada vendedor durante el último mes. Su impresión tabular debe incluir estos totales cruzados a la derecha de
las filas totalizadas, y en la parte inferior de las columnas totalizadas.
7.21 (Gráficos de tortuga) El lenguaje Logo hizo famoso el concepto de los gráficos de tortuga. Imagine a una tortuga
mecánica que camina por todo el cuarto, bajo el control de una aplicación en Java. La tortuga sostiene una pluma en
una de dos posiciones, arriba o abajo. Mientras la pluma está abajo, la tortuga va trazando figuras a medida que se va
moviendo, y mientras la pluma está arriba, la tortuga se mueve alrededor libremente, sin trazar nada. En este problema
usted simulará la operación de la tortuga y creará un bloc de dibujo computarizado.
Utilice un arreglo de 20 por 20 llamado piso, que se inicialice con ceros. Lea los comandos de un arreglo que
los contenga. Lleve el registro de la posición actual de la tortuga en todo momento, y si la pluma se encuentra arriba o
abajo. Suponga que la tortuga siempre empieza en la posición (0, 0) del piso, con su pluma hacia arriba. El conjunto de
comandos de la tortuga que su aplicación debe procesar se muestra en la figura 7.31.
Suponga que la tortuga se encuentra en algún lado cerca del centro del piso. El siguiente “programa” dibuja e
imprime un cuadrado de 12 por 12, dejando la pluma en posición levantada:
2
5,12
3
5,12
3
5,12
3
5,12
1
6
9
A medida que la tortuga se vaya desplazando con la pluma hacia abajo, asigne 1 a los elementos apropiados del arreglo
piso. Cuando se dé el comando 6 (imprimir el arreglo), siempre que haya un 1 en el arreglo muestre un asterisco o
cualquier carácter que usted elija. Siempre que haya un 0, muestre un carácter en blanco.
Comando Significado
1 Pluma arriba.
2 Pluma abajo.
3 Voltear a la derecha.
4 Voltear a la izquierda.