Arreglos
Un Arreglo es una estructura de datos que almacena bajo el mismo nombre (variable) a una colección de datos del mismo tipo.
Los arreglos se caracterizan por:
-
Almacenan los elementos en posiciones contiguas de memoria
-
Tienen un mismo nombre de variable que representa a todos los elementos. Para hacer referencia a esos elementos es necesario utilizar un índice que especifica el lugar que ocupa cada elemento dentro del archivo.
-
compuesta por elementos del mismo tipo de dato
Los arreglos se clasifican de acuerdo a su dimensión así:
Unidimensionales o vectores.
Bidimensionales o matrices.
Explicaciòn
El miembro izquierdo de la asignación corresponde a la declaración del arreglo, y se explicita el tipo de datos del arreglo, su nombre y cantidad de dimensiones (cantidad de pares de corchetes vacíos); la parte derecha hace referencia al dimensionamiento del arreglo, es decir, al espacio de memoria que utilizará el arreglo.
<tipo_dato>: Es el tipo de datos del arreglo. Puede ser un tipo estándar (entero, real, caracter, logico, cadena)
nomArreglo: Es el nombre dado al arreglo, que debe cumplir todas las características para la construcción de identificadores.
[ ] [[ ]… [ ]]: Son pares de corchetes, donde cada par indica una nueva dimensión del arreglo; del segundo al último son opcionales.
nuevo: Es una palabra reservada del seudo lenguaje con la cual se solicita memoria para el arreglo. Como se verá, con esta misma palabra se podrán crear objetos.
[d1] [[d2]… [dn]]: Son números enteros que determinan la máxima capacidad de cada dimensión del arreglo. No hay un límite para la cantidad de dimensiones, simplemente se debe tener claro que n > 0.
Si se quiere definir un vector se especifica sólo la dimensión d1, para una matriz se especifican las dimensiones d1 y d2, para un arreglo de tridimensional las dimensiones d1, d2 y d3, y así sucesivamente.
Ejemplos:
entero valores[ ] = nuevo entero[100]
real numeros[ ] [ ] = nuevo real[4] [5]
cadena nombres[ ] [ ] [ ] = nuevo cadena[2] [3] [5]
En el primer ejemplo se ha declarado el vector valores de 100 enteros, en el segundo la matriz numeros de 20 reales (en cuatro filas y 5 columnas) y en el tercero el arreglotridimensional nombres con 30 cadenas (2 filas, 3 columnas y 5 planos).
Arreglos Unidimensionales(Vectores)
Es un arreglo unidimensional, es decir, cada elemento se diferencia del otro mediante un subíndice.
En nuestro caso, la primera posición será la posición 0 (cero).
Para este caso, el vector se llama Edades, tiene 6 elementos enteros, los números 0, 1, 2, 3,4 y 5 representan las posiciones del vector. 18, 15, 20, 10,12 y 30 son los elementos que están dentro del vector.
¿Cómo se declara un Vector?
Como los vectores en la POO son objetos se deben de instanciar
<Tipo de dato> <nombre del vector> < [ ]>= nuevo <tipo de dato> < [tamaño]>
Entero Edades [] = nuevo Entero [6]
valores constantes (el compilador deduce automáticamente la dimensión del array)
Entero Edades[] = {1,2,3,4}
NOTA Si se desea crear un vector tipo Atributo permitiendo al usuario dimensionarlo por medio de teclado, se debe declararlo fuera del metodo y dimensionarlo dentro del metodo
Ejemplo
Clase ejemplo
entero vector[]
metodo principal()
entero n
imprima("digite tamaño del vector")
lea n
vector= nuevo entero[n]
fin metodo
fin clase
¿Cómo se ingresa un dato al vector?
Lea <nombre del vector> < [posición]>
EJEMPLO:
Lea Edades [3]
¿Cómo se muestra un dato del vector?
Muestre <nombre del vector> < [posición]>
EJEMPLO:
Muestre Edades [2]
Nota: La posición del vector debe ser un número entero, una variable entera o el resultado entero de un cálculo matemático.
Observación: podemos usar el atributo length quien nos determina la longitud del vector
Ejemplo n= vector.length
EJEMPLO:
Realice un algoritmo que cree un vector con 10 edades y luego las muestre desde la última edad ingresada hasta la primera.
A continuacion se muestra un ejemplo utilizando los diferentes conceptos vistos en eesta unidad
Mètodos de Ordenamiento y Busqueda
Arreglos Bidimensionales(Matrices)
Matrices son un arreglo bidimensional, rectangular de datos dispuestos en filas y columnas, es decir se manejan dos subíndices
¿Cómo se declara una Matriz?
Como las matrices en la POO son objetos se deben de instanciar
<Tipo de dato> <nombre de la matriz> < [ ][ ]>=nuevo <nombre de la matriz> [fila] [columna]
Entero Edades [ ][ ] = nuevo Entero[5 ][6 ]
Valores constantes (el compilador deduce automáticamente la dimensión del array)
entero Edades[][] = { {1,2,3}, {4,5,6} }
NOTA Si se desea crear una matriz tipo Atributo permitiendo al usuario dimensionarlo por medio de teclado, se debe declararlo fuera del metodo y dimensionarlo dentro del metodo
Ejemplo
Clase ejemplo
entero matriz[][]
metodo principal()
entero n,m
imprima("digite tamaño de la matriz")
lea n
lea m
matriz= nuevo entero[n][m]
fin metodo
fin clase
¿Cómo se ingresa un dato a la matriz?
Lea <nombre de la matriz> < [fila][columna]>
EJEMPLO:
Lea Edades [3][2]
¿Cómo se muestra un dato de la matriz?
Muestre <nombre de la matriz> < [fila][columna]>
EJEMPLO:
Muestre Edades [2][3]
Nota: La posición de la matriz debe ser un número entero, una variable entera o el resultado entero de un cálculo matemático.
Observación: podemos usar el atributo length quien nos determina la cantidad de filas de la matriz
Ejemplo n= matriz.length
para obtener la cantidad de columnas de cada fila se utiliza el atributo length de la siguiente forma
Ejemplo m= matriz[i].length
OTRA FORMA DE CREAR MATRICES EN JAVA
Se crean de forma similar a los arrays unidimensionales, añadiendo un índice.
Por ejemplo:
matriz de datos de tipo entero llamado ventas de 4 filas y 6 columnas:
entero [][] ventas = nuevo entero[4][6];
matriz de datos real llamado temperaturas de 3 filas y 4 columnas:
real [][] temperaturas = nuevo real[3][4];
En Java se pueden crear arrays irregulares en los que el número de elementos de cada fila es variable. Solo es obligatorio
indicar el número de filas.
Por ejemplo:
entero [][] m = nuevo entero[3][];
crea una matriz m de 3 filas.
A cada fila se le puede asignar un número distinto de columnas:
m[0] = nuevo entero[3];
m[1] = nuevo entero[5];
m[2] = nuevo entero[2];
Gráficamente podemos representar la disposición real en memoria del array anterior así:
Para recorrer arrays irregulares como el siguiente:
entero [][] a = {{6,7,5,0,4}, {3, 8, 4}, {1,0,2,7}, {9,5}};
Usaremos siempre length para obtener el número de columnas que tiene cada fila:
para (i = 0 hasta a.length-1,1) //número de filas
para (j = 0 hasta a[i].length-1,1 //número de columnas de cada fila
imprima(a[i][j] , " ")
fin para
fin para
EJEMPLO:
Hacer un algoritmo que almacene números en una matriz de 5 * 6. Imprimir la suma de los números almacenados en la matriz.









