Capitulo 13 Arreglos
En este capitulo conoceremos cómo:
-
Declarar un arreglo.
-
Utilizar un indice.
-
Obtener el tamaño de un arreglo.
-
Pasar arreglos como párametros.
-
Usar la intrucción for mejorada.
-
Inicializar un arreglo.
-
Llegar a cabo operaciones tipicas teles como las búsquedas rapidas (lookup) y detalladas (search).
-
Crear arreglos de objetos.
Introducción
- Ejemplo; Muestra un arreglo de números.
Este arreglo podría representar las edades de un grupo de personas en una fiesta.
Mustra una tabla de palabras que guarda los nombres de los miembros de un grupo musical.
- Ejemplo; Un arreglo de cadenas de texto
En java, a una tabla como ésta se le denomina arreglo.
En la programación, a un componente del arreglo se le conoce como elemento y nos referimos a éste por su posición en el arreglo, la cual se conose como índice (en el mundo de la programación, algunas veces se utiliza el termino componente en ves de el, y el término subindice en vez de índice).
Para nosotros los humanos, el nombre John está en la primera posición de esta tabla, pero en java a la primera posición es un arreglo se le denomina la posición cero.
Las posiciones es un arreglo son cero, primera, segunda, tercera, etc.
Por ende, la cadena de texto Ringo se encuentra en la tercera posición del arreglo anterior.
En consecuencia, podemos visualizar un arreglo, junto con sus índices.
Recuerde que los índices no se guardan en la menoria de la computadora, únicamente los datos.
Los índices son la forma en que podemos localizar la información en un arreglo.
Otro arreglo que contiene números.
También se muestan los índices para el arreglo.
Cómo Crear un Arreglo
En java un arreglo se declara justo igual que cualquier otro objeto mediante la palabra clave new, por lo general en la parte superior de una clase o de un métondo.
El programador debe dar al arreglo un nombre como se muestra a continuación:
int [ ] edades = new int [6] ;
String [ ] grupo = new String [4];
Índices
- Empiezan en cero.
- Son enteros.
- Llegan hasta un número menos que el tamaño del arreglo ( el valor que se especifica al momento de declarar el arreglo).
Algunas veces, como veremos mas adelante, es conveniente utilizar el valor de una variable como índice.
En tales cases utilizamos variables int como índices.
Podemos recibir como entrada el valor de un elemento de un arreglo mediante un campo de texto:
edades[2] = Integer.pareInt(campoTexto.getText());
grupo[3] = campoTexto.getText();
campoTexto.setText(" La Primera Edad es " + Integer.toString(edades[0]));
campoTexto.setText(" El 4o . Mienbro del Grupo es " + grupo[3]);
edaes[3] = 99;
grupo[2] = "Mike" ;
La Longitud de un Arreglo
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;