Vous êtes sur la page 1sur 15

ARREGLOS BIDIMENSIONALES

Un arreglo tipo tabla se define como un conjunto de datos del mismo tipo organizados en dos o mas columnas y uno o mas renglones. Para procesar ( recordar solo operaciones y comparaciones) internamente todos los elementos de la tabla se ocupan dos ciclos for(), uno externo para controlar rengln y uno interno para controlar columna. Los elementos de la tabla se debern simbolizar con el nombre de la tabla y 2 subndices, el primer subndice referencia al rengln y el siguiente subndice referencia la columna los dos dentro del mismo corchete.

POSICIONAMIENTO
RENGLON

(0,0)
COLUMNA

(0,1)

(0,2)

(1,0) (2,0)

(1,1) (2,1)

(1,2) (2,2)

MATRIZ DE 3 * 3

La declaracin de una tabla sera de


acuerdo a los siguientes formatos:

tipodato nomtabla[][]= new tipodato[reng][col]; ejemplo: int calif[][]=new int[3][4]; double ingresos[][]= new double[3][4]; Integer calif[][]= new Integer[2][3]; Double ingresos[][]=new Double[3][4];

Declaracin int[][] tablero; Construccin tablero = new int[8][8]; Podemos declarar y construir al mismo tiempo int[][] tablero = new int[8][8]; Inicializacin en la declaracin (2 3) int[][] numero = {{1,3,5}, {3,6,7}}; En este ltimo caso numero[1][2] es 7

Recuerden que tanto en arreglos unidimensionales como en matrices podemos ver a cada elemento como una variable. La diferencia esta en que cuando creamos un matriz: double[][] A = new double[20][30]; Estamos creando 20 30 elementos (que podemos ver como variables) de una sola vez. Por lo tanto podemos tratar a cada elemento igual como tratamos a una variable. double a,b; a = A[1][2] + A[0][0] + 3; b = A[1][2]*A[0][0]; A[a+3][b-1] = 6;

import java.io.*; public class matrizn { public static void main(String []args) throws Exception { BufferedReader numero = new BufferedReader (new InputStreamReader(System.in)); int i,j, v1, v2; System.out.println ("Tamao de la columna "); v1=Integer.parseInt (numero.readLine()); System.out.println ("Tamao de la renglon "); v2=Integer.parseInt (numero.readLine()); int M[][]=new int[v1][v2]; System.out.println ("Elementos del arreglo "+v1 +"x"+v2+": "); // pide datos for( i=0;i<v1;i++) for( j=0;j<v2;j++) M[i][j]=Integer.parseInt (numero.readLine()); //imprime datos for( i=0;i<v1;i++) { for( j=0;j<v2;j++)

System.out.print(M[i][j]+" "); System.out.println(); } } }

length
*Se puede acceder al nmero de elementos de un arreglo con la variable miembro implcita length (por ejemplo, vect.length). *Se accede a los elementos de un array con los corchetes y un ndice que vara de 0 a length-1.

int[ ] arrayDeEnteros = new int[10]


for (int j = 0; j < arrayDeEnteros.length; j ++) { arrayDeEnteros[j] = j; System.out.println("[j] = " + arrayDeEnteros[j]); }

En Java, el ndice de la primera componente de un vector es siempre 0. - El tamao del array puede obtenerse utilizando la propiedad vector.length - Por tanto, el ndice de la ltima componente es vector.length-1

Una matriz, en realidad, es un vector de vectores: - En Java, el ndice de la primera componente de un vector es siempre 0, por lo que matriz[0][0] ser el primer elemento de la matriz. - El tamao del array puede obtenerse utilizando la propiedad array.length: matriz.length nos da el nmero de filas matriz[0].length nos da el nmero de columnas - Por tanto, el ltimo elemento de la matriz es matriz[matriz.length-1][matriz[0].length-1]

Ejemplo length vector


import java.io.*; public class len { public static void main(String []args) throws Exception { BufferedReader numero = new BufferedReader (new InputStreamReader(System.in)); int i,valor, x,num1[]; System.out.println ("Inserta la cantidad de elementos del arreglo: "); x=Integer.parseInt (numero.readLine()); num1= new int[x]; System.out.println ("Inserta los elementos del arreglo: ");

for (i = 0; i < num1.length; i++) { num1[i]=Integer.parseInt (numero.readLine()); } System.out.println ("Escritura"); for (i = 0; i < num1.length; i++) {System.out.println ("Numero: " + i + ": " + num1[i]); } System.out.println ("Casilla a Mostrar"); valor = Integer.parseInt (numero.readLine()); System.out.println ("Numero: " + valor + ": " + num1[valor]); } }

Ejemplo length matriz


import java.io.*; class matrizlen { public static void main(String []args) throws Exception { BufferedReader numero = new BufferedReader (new InputStreamReader(System.in)); int i,j, v1, v2;

System.out.println ("Tamao de la columna "); v1=Integer.parseInt (numero.readLine()); System.out.println ("Tamao de la renglon "); v2=Integer.parseInt (numero.readLine()); int M[][]=new int[v1][v2]; System.out.println ("Elementos del arreglo "+v1 +"x"+v2+": "); // pide datos for( i=0;i<M.length;i++) for( j=0;j<M[0].length;j++) M[i][j]=Integer.parseInt (numero.readLine()); //imprime datos for( i=0;i<v1;i++) { for( j=0;j<v2;j++)

System.out.print(M[i][j]+" "); System.out.println(); } } }

/*Calcula entre un arreglo de 20 numeros el mas cercano antes y despues a otro que desea el usuario * creado por Eduardo Gutirrez Hernndez*/ import java.io.*; public class cercano { public static void main(String[] args)throws IOException { BufferedReader numero = new BufferedReader (new InputStreamReader(System.in)); int i,numx, num[], naba, pos1=0, narri, pos2=0; num = new int [1 << 20]; //Captura de los datos del arreglo System.out.println ("Inserta los elementos del arreglo: "); for (i = 1; i <= 5; i++) { System.out.println ("Introduce el numero " + i + ": "); num[i]=Integer.parseInt (numero.readLine()); } //Seleccion del numero al cual se desea buscar los mas cercanos System.out.println ("Introduce un numero: "); numx =Integer.parseInt (numero.readLine()); //busqueda del mas cercano por abajo naba=numx; i=1;

do { if((num[i]<numx)&&(naba==numx)) { pos1=i; naba=num[i]; } else if((num[i]>naba)&&(num[i]<numx)) { naba=num[i]; pos1=i; } i+=1; }while(i<=5); //busqueda del mas cercano por arriba narri=numx; i=1; do { if((num[i]>numx)&&(narri==numx)) { pos2=i; narri=num[i]; } else if((num[i]<narri)&&(num[i]>numx)) { narri=num[i]; pos2=i; }

i+=1; }while(i<=5); if(naba==numx) System.out.println("no hay numeros menores"); else System.out.println("El numero que mas se acerca por abajo es: " + naba + " en la posicion: " + pos1); if(narri==numx) System.out.println("no hay numeros mayores"); else System.out.println("El numero que mas se acerca por arriba es: " + narri + " en la posicion: " + pos2); } }

EJERCICIOS
Dadas dos matrices (usuales) A de n m y B de nm podemos sumarlas para crear una matriz C de n m tal que Cij = Aij + Bij I Ejercicio: construya un programa que dados dos matrices JAVA A y B construya una tercera correspondiente a la suma.

Vous aimerez peut-être aussi