Está en la página 1de 17

Fundamentos de

Programación

Imagen obtenida de: https://images.wallpapersden.com/image/download/cool-4k-pattern_bGduZWyUmZqaraWkpJRobWllrWdma2U.jpg


Arreglos
Bidimensionales

Imagen obtenida de: https://1000logos.net/wp-content/uploads/2020/09/Java-Logo.png


contenido 1
Arreglos de dos
dimensiones

2
Declaración, creación
e inicialización

3
Recorrido de arreglos
bidimensionales

4
Práctica

3
contenido 1
Arreglos de dos
dimensiones

2
Declaración, creación
e inicialización

3
Recorrido de arreglos
bidimensionales

4
Práctica

4
Arreglos de dos dimensiones
1. Arreglos de dos dimensiones

índices de columna
• Es la forma más básica de 0 1 2
arreglos
0
15 10 0
multidimensionales.

índices de fila
• Es, esencialmente, un arreglo 1 7 3 16
tamaño:
3x3

de arreglos unidimensionales.

• Se le conoce también con el 2 9 20 8


nombre de matriz o tabla.
elemento[2][0]
5
Dimensiones de una matriz
1. Arreglos de dos dimensiones

2x2 2x4 3x7

3x2 4x3 8x5

Dimensiones ó tamaño:
numero_filas x numero_columnas

6
Para no olvidar
1. Arreglos de dos dimensiones

filas columnas
0 1 2 3 0 1 2 3

0 15 10 0 28 0 15 10 0 28

1 7 3 16 93 1 7 3 16 93

2 9 20 8 4 2 9 20 8 4

La matriz tiene 3 filas y 4 columnas (3x4)


7
Declaración
2. Declaración, creación e inicialización

• Una matriz se declara indicando:

tipo de dato int[][] tabla; identificador

dos pares de corchetes vacíos, que


representan las dos dimensiones

• Al igual que los vectores, una matriz necesita crearse


(asignar memoria) para poder utilizarse.
Con la instrucción new
¿Cómo creo una matriz en
Java?
Con inicializadores
8
Creación con “new”
2. Declaración, creación e inicialización

1º Se declara una variable 2º Se asigna memoria


de referencia a la matriz para la matriz

int[][] notas = new int[3][4];


Longitudes
Declara el tipo de de fila y
dato (tipo base) que 0 1 2 3 columna
almacenará la matriz
0 0 0 0 0

1 0 0 0 0
int[][] notas;
notas = new int[3][4];
2 0 0 0 0
Declaración y creación equivalente
9
Creación con inicializador
2. Declaración, creación e inicialización

• La longitud de la matriz está determinada por el número de


valores indicados como filas y columnas.
• Proporcione los valores de inicialización de cada fila
separados por coma y entre llaves.
• Y todos los conjuntos anteriores, separados por coma,
dentro de un par de llaves general.
0 1 2

0 1 2 3
int[][] matriz = { {1, 2, 3},
{4, 5, 6}, 1 4 5 6
{7, 8, 9} };
2 7 8 9
10
¿Cómo se accede a una matriz?
3. Recorrido de arreglos bidimensionales

Por su índice de fila...

variable[f][c]

...y su índice de columna

11
Acceso
3. Recorrido de arreglos bidimensionales

fila columna

0 1 2

0 15 10 0 matriz[0][1] 10

1 7 3 16 matriz[1][2] 16
2 9 20 8 matriz[3][1] ArrayIndexOutOfBoundsException

matriz

12
Acceso. Asignación.
3. Recorrido de arreglos bidimensionales

columna

columna

columna
int[][] matriz = new int[3][3];

matriz[0][1] = 33;
0 1 2
matriz[1][0] = 18;
matriz[2][2] = 78;
fila 0 0 33 0

fila columna fila 1 18 0 0

fila 2
0 0 78

13
Recorrido
3. Recorrido de arreglos bidimensionales

Flujo de iteración clásico

• Recorremos una matriz utilizando 2º Recorrido de


columnas (bucle interno)
estructuras repetitivas anidadas.
0 1 2
• El bucle externo recorrerá una de las 1º Recorrido 0 18 6 29
de filas
dimensiones, y el interno, la otra. (bucle
externo) 1 64 11 7
int[][] matriz = { { 18, 6, 29 },{ 64, 11, 7 },{ 30, 81, 37 } };
2 30 81 37
for (int f = 0; f < matriz.length; f++) {
for (int c = 0; c < matriz[0].length; c++) {
System.out.printf("%2d ", matriz[f][c]); Salida:

18 6 29
} 64 11 7
30 81 37
System.out.println();
} 14
Recorrido
3. Recorrido de arreglos bidimensionales

Flujo de iteración inverso

• Recorremos una matriz utilizando 1º Recorrido de


columnas (bucle interno)
estructuras repetitivas anidadas.
0 1 2
• El bucle externo recorrerá una de las 2º Recorrido 0 18 6 29
de filas
dimensiones, y el interno, la otra. (bucle
externo) 1 64 11 7
int[][] matriz = { { 18, 6, 29 },
2 30 81 37
{ 64, 11, 7 },
{ 30, 81, 37 },};
for (int c = 0; c < matriz[0].length; c++) {
for (int f = 0; f < matriz.length; f++){ Salida:
System.out.printf("%2d ", matriz[f][c]);
18 64 30
} 6 11 81
System.out.println(); 29 7 37
}

15
contenido 1
Arreglos de dos
dimensiones

2
Declaración, creación
e inicialización

3
Recorrido de arreglos
bidimensionales

4
Práctica

16
Ejercicio
Escribir un programa en Java que solicite números reales para
una matriz de 3x3. Calcular, por fila, la suma y promedio.
Almacenar los resultados en vectores paralelos y mostrarlos
4. Práctica

en pantalla.
0 1 2 suma promedio

0 15 10 28 53 17.67

1 7 3 16 26 8.67

2 9 20 8 37 12.33

17

También podría gustarte