algoritmos y estructura de datos - arreglos bidimensionales (matrices)
TRANSCRIPT
![Page 1: Algoritmos y Estructura de Datos - Arreglos Bidimensionales (Matrices)](https://reader036.vdocuments.pub/reader036/viewer/2022082703/557212ab497959fc0b90b1d0/html5/thumbnails/1.jpg)
Arreglos Bidimensionales: Arreglos Bidimensionales: Matrices
Algoritmos y Estructuras de Datosg y
![Page 2: Algoritmos y Estructura de Datos - Arreglos Bidimensionales (Matrices)](https://reader036.vdocuments.pub/reader036/viewer/2022082703/557212ab497959fc0b90b1d0/html5/thumbnails/2.jpg)
Objetivos
Reconocer las estructuras de datos denominadas arreglos bidimensionales o matrices.g
Declarar matrices en Java.Trabajar con los elementos de las matrices.Trabajar con los elementos de las matrices.
2
![Page 3: Algoritmos y Estructura de Datos - Arreglos Bidimensionales (Matrices)](https://reader036.vdocuments.pub/reader036/viewer/2022082703/557212ab497959fc0b90b1d0/html5/thumbnails/3.jpg)
¿Qué es una Matriz?
Es un conjunto de elementos, todos del mismo tipo, en el cual el orden de los componentes es p , psignificativo y en el que se necesita especificar dos subíndices para poder identificar a cada uno de sus elementos.
En otros términos, una matriz es un vector de tvectores.
3
![Page 4: Algoritmos y Estructura de Datos - Arreglos Bidimensionales (Matrices)](https://reader036.vdocuments.pub/reader036/viewer/2022082703/557212ab497959fc0b90b1d0/html5/thumbnails/4.jpg)
Representación de una Matriz
Fila 1
Fila 2
Fila 3Fila 3
Fila 4Fila 4
Columna 1 Columna 2 Columna 4
Columna 5
Columna 1
Columna 3
Columna 2 Columna 4
4
![Page 5: Algoritmos y Estructura de Datos - Arreglos Bidimensionales (Matrices)](https://reader036.vdocuments.pub/reader036/viewer/2022082703/557212ab497959fc0b90b1d0/html5/thumbnails/5.jpg)
Matrices en Algoritmos
1 2 3 4 … J … N
11
2
…
I [I, J]
…
M
5
![Page 6: Algoritmos y Estructura de Datos - Arreglos Bidimensionales (Matrices)](https://reader036.vdocuments.pub/reader036/viewer/2022082703/557212ab497959fc0b90b1d0/html5/thumbnails/6.jpg)
Matrices en Java
0 1 2 3 … J … N-1
00
1
…
I [I, J]
…
M-1
6
![Page 7: Algoritmos y Estructura de Datos - Arreglos Bidimensionales (Matrices)](https://reader036.vdocuments.pub/reader036/viewer/2022082703/557212ab497959fc0b90b1d0/html5/thumbnails/7.jpg)
Operaciones con Matrices
![Page 8: Algoritmos y Estructura de Datos - Arreglos Bidimensionales (Matrices)](https://reader036.vdocuments.pub/reader036/viewer/2022082703/557212ab497959fc0b90b1d0/html5/thumbnails/8.jpg)
Operaciones con Matrices
Las operaciones con matrices son casi las mismas que se pueden realizar con los vectores, así q p ,tenemos:– Declaración– Asignación– Lectura / Escritura– Recorrido (acceso secuencial)– Búsqueda
8
![Page 9: Algoritmos y Estructura de Datos - Arreglos Bidimensionales (Matrices)](https://reader036.vdocuments.pub/reader036/viewer/2022082703/557212ab497959fc0b90b1d0/html5/thumbnails/9.jpg)
Declaración
tipoarray [liminf .. limsup] [liminf .. limsup]array [liminf .. limsup] [liminf .. limsup]de tipo : nombre_array
tipotipoarray [1..10][1..5] de entero : NUMEROS
varNUMEROS : N
ti [][] b ti [ fil][ l]
NUMEROS : N
tipo[][] nombre = new tipo[nro_fil][nro_col];
int[][] numeros = new int[10][5];
9
![Page 10: Algoritmos y Estructura de Datos - Arreglos Bidimensionales (Matrices)](https://reader036.vdocuments.pub/reader036/viewer/2022082703/557212ab497959fc0b90b1d0/html5/thumbnails/10.jpg)
ú d lNúmero de Elementos en una MatrizMatrizPara determinar el número de filas de una matriz,
consultamos la propiedad length usando la p p gexpresión matriz.length
Para determinar el número de columnas, consultamos por la longitud de cualquiera de las filas, por ejemplo la fila 0, como se muestra en la e p e ión t i [0] l thexpresión matriz[0].length
10
![Page 11: Algoritmos y Estructura de Datos - Arreglos Bidimensionales (Matrices)](https://reader036.vdocuments.pub/reader036/viewer/2022082703/557212ab497959fc0b90b1d0/html5/thumbnails/11.jpg)
i ió d lAsignación de Elementos –AlgoritmoAlgoritmoA[2][3] 5 //asigna 5 a la fila 2, columna 3
leer (A[i][j]) //solicita el elemento i, j
// Asigna 0 a todos los elementos de na matri// Asigna 0 a todos los elementos de una matriz// de 5 * 10desde i = 1 hasta 5 hacer
d d j h hdesde j = 1 hasta 10 hacerA[i][j] 0
fin_desdefin_desde
11
![Page 12: Algoritmos y Estructura de Datos - Arreglos Bidimensionales (Matrices)](https://reader036.vdocuments.pub/reader036/viewer/2022082703/557212ab497959fc0b90b1d0/html5/thumbnails/12.jpg)
i ió d lAsignación de Elementos –JavaJavaA[1][2] = 5; //asigna 5 a la fila 2 columna 3
A[i][j] = Integer.parseInt(args[0]);
// Asigna 0 a todos los elementos de na matri// Asigna 0 a todos los elementos de una matriz// de 5 * 10for (i = 0; i < 5; i++)
f (j j j )for (j = 0; j < 10; j++)A[i][j] = 0;
12
![Page 13: Algoritmos y Estructura de Datos - Arreglos Bidimensionales (Matrices)](https://reader036.vdocuments.pub/reader036/viewer/2022082703/557212ab497959fc0b90b1d0/html5/thumbnails/13.jpg)
Acceso Secuencial a Matrices
Se puede acceder a los elementos de una matriz para introducir datos (escribir) en ella o bien para visualizar su contenido (leer).
A la operación de efectuar una acción general sobre todos los elementos de una matriz al igual sobre todos los elementos de una matriz, al igual que en los vectores, se le denomina recorrido de la matriz.
Para ellos es preciso utilizar dos niveles de bucle: el externo que recorra las filas y el interno que recorra las columnas o viceversa Las variables de recorra las columnas o viceversa. Las variables de control de los bucles se usan como índices.
13
![Page 14: Algoritmos y Estructura de Datos - Arreglos Bidimensionales (Matrices)](https://reader036.vdocuments.pub/reader036/viewer/2022082703/557212ab497959fc0b90b1d0/html5/thumbnails/14.jpg)
j l d l i dEjemplo de Algoritmo de Acceso Secuencial a MatricesAcceso Secuencial a Matricesalgoritmo leer_vectortipotipo
array[1..5][1..10] de entero : FINALvar
FINAL : FFINAL : Fentero : i
iniciodesde i 1 hasta 5 hacerdesde i 1 hasta 5 hacer
desde j 1 hasta 10 hacerleer (F[i][j])
fi d dfin_desdefin_desde
fin
14
![Page 15: Algoritmos y Estructura de Datos - Arreglos Bidimensionales (Matrices)](https://reader036.vdocuments.pub/reader036/viewer/2022082703/557212ab497959fc0b90b1d0/html5/thumbnails/15.jpg)
j l d dEjemplo de Programa Java de Acceso Secuencial a MatricesAcceso Secuencial a Matricespublic class Leer_Matriz {
public static void main (String[] args) {public static void main (String[] args) {int fil = Integer.parseInt(args[0]);int col = Integer.parseInt(args[1]);int[][] num = new int[fil][col];int[][] num = new int[fil][col];int f, c, cont = 1;for (f = 0; f < num.length; f++)
for (c 0; c < num[0] length; c++) {for (c = 0; c < num[0].length; c++) {num[f][c] = cont;cont++;
}}}
}
15
![Page 16: Algoritmos y Estructura de Datos - Arreglos Bidimensionales (Matrices)](https://reader036.vdocuments.pub/reader036/viewer/2022082703/557212ab497959fc0b90b1d0/html5/thumbnails/16.jpg)
Ej l d P J d Ejemplo de Programa Java de Escritura de Datos de una Matrizpublic class Escribir Matriz {public class Escribir_Matriz {
public static void main (String[] args) {int[][] num = new int[10][10];
// A i ió d l l t... // Asignación de los elementosint f, c;for (f = 0; f < num.length; f++) {
for (c = 0; c < num[0].length; c++) System.out.print(num[f][c]) + “ ”;
System.out.println();y p ();}
}}
16
}
![Page 17: Algoritmos y Estructura de Datos - Arreglos Bidimensionales (Matrices)](https://reader036.vdocuments.pub/reader036/viewer/2022082703/557212ab497959fc0b90b1d0/html5/thumbnails/17.jpg)
P J G ió d Programa Java: Generación de una matriz de 50 números aleatoriospublic class Asigna Matriz {public class Asigna_Matriz {
// Genera números aleatorios 0 ó 1public static void main (String[] args) {
int[][] num = new int[10][5];int[][] num = new int[10][5];int f, c;double aux;for (f = 0; c < num length; c++) {for (f = 0; c < num.length; c++) {
for (c = 0; c < num[0].length; c++) {aux = Math.round ( Math.random() );num[f][c] = (int) aux;u [ ][c] ( t) au ;
}}
}
17}