CAPÍTULO 14 MATRICES
MATRICES
- Declarar una matriz (o arreglo bidimensional).
- Utilizar los índices con las matrices.
- Obtener el tamaño de una matriz.
- Pasar matrices como parámetros.
- Inicializar una matriz
INTRODUCCIÓN
- Un tablero de ajedrez.
- El itinerario de los trenes.
- Una hoja de cálculo.
En el capítulo anterior vimos los arreglos unidimensionales.
Java cuenta con una forma natural para extender los arreglos unidimensionales a dos dimensiones.
Por ejemplo, la siguiente declaración:
int [ ] [ ] ventas = new int [4] [7];
Declara una matriz o arreglo bidimensional de enteros.
Contiene las cifras de las ventas de computadoras en cada una de cuatro tiendas para cada uno de los siete días de una semana.
La matriz se llama ventas.
Podemos considerar que tiene cuatro filas y seis columnas.
Cada fila representar una semana en una tienda especifica.
Cada columna representa un día individual en cada una de las cuatro tiendas.
Los índices de las filas van de 0 a 3.
Los índices de las columnas van de 0 a 6.
La columna 0 es el lunes, la columna 1 es martes, etc.
Una matriz o arreglo bidimensional.
Comó Declarar una Matriz
int [ ] [ ] ventas = new int [ 4] [ 7];
double [ ] [ ] temps = new double [ 10] [ 24];
Al declarar una matriz es necesario indicar cúantas filas y columnas tiene.
La matriz ventas tiene cuatro filas: una para cada una de las cuatro tiendas.
Tiene siete columnas: una para cada día de la semana.
La matriz contiene cifras de ventas para cada una de las cuatro tiendas durante cada día de la semana.
La matriz temps contiene información sobre las temperaturas en cada una de 10 hornos, para cada hora durante un perioda de 24 horas.
Al igual que con cualquier otra variable, es común ( y conveniente) elegir un nombre para la matriz que describa con claridad para qué se va a utilizar.
El nombre es para la matriz completa: para toda la colección de datos.
Índices
Para hacer referencia a un elmento endividual en una matriz, un programador debe especificar los valores de los índices enteros (también conocidos como subíndices).
Por lo tanto, ventas [ 3] [ 2] se refiere al elemento de la matriz que se encuentra en la fila 3 y columna 2, lo cual representa a la tienda número 3 y el día número 2 (miercoles).
De manera similar, tableroAjedrez [ 2 ] [7 ] podría contener la cadena de texto "peón"
Para entroducir un valor para un elemnto de una matriz podemos utilizar el siguiente código:
ventas[ 3] [2 ] = Integer.parseInt(campoTexto.getText());
tableroAjedrez [ 3] [4 ] = campoTexto.getText();
y de manera similar podemos mostrar los valores de los elemntos de una matriz mediante cuatros de texto.
Podemos modificar los valores con intrucciones de asignación, como en el siguiente ejemplo:
ventana [ 3 ] [ 2 ] = 99
tableroAjedrez [ 2 ] [ 7 ] = "caballo"; // coloca un caballo en uno de los cuadros
En todos los fragmentos de programas, para referirnos a los elementos individuales de una matriz declaramos los valores de los índices que identifican al elemnto específico en el que estamos interesado.
A menudo es necesario hacer referencia a un elemento de una matriz mediante la especificación de variables para cada uno de los dos índices.
Ésta es la forman en la que podemos aprovechar el poder de las matrices.
Como ejemplo, suponga que queremos sumar todos los números en una matriz de números que contiene datos sobre las ventas de computadoras en cuatro tiendas, durante en periodo de siete días:
int [ ] [ ] ventas = new int [ 4 ] [ 7 ];
La manera burda de sumar las ventas sería esrcibir lo siguiente:
suma =
ventas [ 0 ] [ 0 ] + ventas [ 0 ] [ 1 ] + ventas[ 0 ] [ 2 ] + ventas [ 0 ] [ 3 ]
+ ventas [ 0 ] [ 4 ] + ventas [ 0 ] [ 5 ] + ventas [ 0 ] [ 6 ]
+ ventas [ 1 ] [ 0 ] + ventas [ 1 ] [ 2 ]
+ ventas [ 1 ] [ 3 ] + ventas [ 1 ] [ 3 ] + ventas [ 1 ] [ 4 ] + ventas [ 1 ] [ 5 ] + ventas [ 1 ] [6
+ etcétera;
el código anterior es largo, dificil de entender y propenso a errores, pero es correcto.
Sin embargo, no aprovecha la regularidad de una matriz.
La alternativa sería utilizar in ciclo for.
Se utilizann variables para guardar los valores de los índices.
Al principio cada índice se hace igual a 0 y después se incrementa cada vez que se repite el ciclo:
int [ ] [ ] ventas new int [ 4] [ 7];
int suma;
suma = 0;
for (int tienda = 0; tienda <= 3; tienda++) {
for (int númeroDía = 0; númeroDía <= 6; númeroDía++ ) {
suma = suma + ventas[ tienda] [ númeroDía];
}
}
El Tamaño de una Matriz
double [ ] [ ] info = new double [20] [ 40];
int tamañoFila = info.legnth;
int tamañoColumna = info [ 0].legnth;