Vous êtes sur la page 1sur 17

Arreglos Bidimensionales: Matrices

Algoritmos y Estructuras de Datos g

Objetivos
Reconocer las estructuras de datos denominadas arreglos bidimensionales o matrices. g Declarar matrices en Java. Trabajar con los elementos de las matrices.

Qu es una Matriz?
Es un conjunto de elementos, todos del mismo tipo, en el cual el orden de los componentes es p , p significativo y en el que se necesita especificar dos subndices para poder identificar a cada uno de sus elementos. En otros trminos, una matriz es un vector de vectores. t

Representacin de una Matriz


Fila 1 Fila 2 Fila 3 Fila 4 Columna 1 Columna 2 Columna 3 Columna 4 Columna 5
4

Matrices en Algoritmos
1 1 2 I M
5

[I, J]

Matrices en Java
0 0 1 I M-1
6

N-1

[I, J]

Operaciones con Matrices

Operaciones con Matrices


Las operaciones con matrices son casi las mismas q que se pueden realizar con los vectores, as p , tenemos:
Declaracin Asignacin Lectura / Escritura Recorrido (acceso secuencial) Bsqueda

Declaracin
tipo array [liminf .. limsup] [liminf .. limsup] de tipo : nombre_array tipo array [1..10][1..5] de entero : NUMEROS var NUMEROS : N

tipo ti [][] nombre = new ti [nro_fil][nro_col] b tipo fil l];


int[][] numeros = new int[10][5];
9

Nmero d Elementos en una de l Matriz


Para determinar el nmero de filas de una matriz, consultamos la propiedad length usando la p p g expresin matriz.length Para determinar el nmero de columnas, consultamos por la longitud de cualquiera de las filas, por ejemplo la fila 0, como se muestra en la expresin e p e in matriz[0].length t i [0] l th

10

Asignacin de Elementos i i d l Algoritmo


A[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 una matriz na matri // de 5 * 10 desde i = 1 hasta 5 hacer desde d d j = 1 hasta 10 hacer h h A[i][j] 0 fin_desde fin_desde

11

Asignacin de Elementos i i d l Java


A[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 una matriz na matri // de 5 * 10 for (i = 0; i < 5; i++) for (j = 0; j < 10; j++) f j ) A[i][j] = 0;

12

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 operacin de efectuar una accin general sobre todos los elementos de una matriz al igual matriz, 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 viceversa. control de los bucles se usan como ndices.
13

Ejemplo de Algoritmo de j l d l i d Acceso Secuencial a Matrices


algoritmo leer_vector tipo array[1..5][1..10] de entero : FINAL var FINAL : F entero : i inicio desde i 1 hasta 5 hacer desde j 1 hasta 10 hacer leer (F[i][j]) fin_desde fi d d fin_desde fin
14

Ejemplo de Programa Java de j l d d Acceso Secuencial a Matrices


public class Leer_Matriz { 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 f, c, cont = 1; for (f = 0; f < num.length; f++) for (c = 0; c < num[0].length; c++) { num[0] length; num[f][c] = cont; cont++; } } }
15

Ejemplo de P Ej l d Programa Java de J d Escritura de Datos de una Matriz


public class Escribir Matriz { Escribir_Matriz public static void main (String[] args) { int[][] num = new int[10][10]; ... // A i Asignacin de los elementos i d l l t int 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

Programa Java: Generacin de P J G i d una matriz de 50 nmeros aleatorios


public class Asigna_Matriz { Asigna Matriz // Genera nmeros aleatorios 0 1 public static void main (String[] args) { int[][] num = new int[10][5]; int f, c; double aux; for (f = 0; c < num.length; c++) { num length; for (c = 0; c < num[0].length; c++) { aux = Math.round ( Math.random() ); num[f][c] = (int) aux; u [ ][c] ( t) au ; } } } }

17

Vous aimerez peut-être aussi