SlideShare a Scribd company logo
1 of 7
¿Que es un arreglo de dos dimensiones?
Un arreglo de dos dimensiones es una colección de datos para una misma variable en dos
dimensiones comúnmente llamados renglones y columnas.
Arreglo
12 -
4
0 28 -3
-3 -
5
2 189 -2
1 0 9 -4 12
Para poder guardar un valor u obtener alguno del arreglo de dos dimensiones (también
llamado matriz) es ahora necesario utilizar dos dimensiones, el renglón y la columna.
Declaración de arreglos de dos dimensiones
Para declarar un arreglo de dos dimensiones se utiliza el siguiente formato:
tipo nombre_arreglo [][] = new tipo[ numero renglones][ numero columnas];
donde tipo es el tipo de los datos que almacenará el arreglo de dos dimensiones. Es
importante recordar que se pueden declarar arreglos de los tipos primitivos de Java (int,
double, char, etc) o bien de tipos definidos por el usuario (Cuenta, Alumno, etc).
Tamaño representa la cantidad de casillas que se reservan para el arreglo. En Java todos los
arreglos empiezan en el subíndice 0 y llegan al subíndice tamaño-1.
Por ejemplo:
int arr[][] = new int[5] [6]; // arreglo de 5 renglones y 6 columnas enteros
char cad[][] = new char[10] [5]; // arreglo de 10 renglones por 5 columnas tipo carácter
Uso e inicialización de los elementos del arreglo de dos dimensiones
III. Desarrollo de aplicaciones con manejo
de datos en la memoria
Para usar los elementos individuales de un arreglo se usa el siguiente formato:
arreglo[subíndice-renglon] [subíndice-columna]
Como un elemento de un arreglo de dos dimensiones es también un dato, se puede usar
como cualquier variable de ese tipo, debemos recordar que tanto el índice de renglón como el
índice de columna toman como base el primer elemento cero:
int arr[][] = new int [2][5];
arr[3][4] = 12;
arr[1][0]= Integer.parseInt(t1.getText());
t2.setText("" + arr[0][1]);
arr[0][0] = arr[0][1] + arr[0][2];
int k = 2;
int l = 3
arr[k+1][l] = 20;
Ejemplo:
En este siguiente ejemplo, tenemos una aplicación que define un arreglo de enteros de dos
dimensiones, con 3 renglones y 5 columnas, y los inicializa con el valor de 1 a 15, de acuerdo
a cada renglón, empezando por 1 en el renglón 1, luego por 6 en el renglón 2 y 11 en el
renglón 3. Después de inicializar la matriz, la despliega, desplegando los valores de un
mismo renglón en la misma línea, como lo muestra la figura:
La aplicación es como se muestra a continuación:
public class AplicacionMatrices1 {
public static void main(String[] args) {
int arreglo[][] = new int [3][5];
for (int i=0; i<3; i++) {
for (int j=0; j<5; j++) {
arreglo [i][j] = i*5+j+1;
}
}
for (int i=0; i<3; i++) {
for (int j=0; j<5; j++) {
System.out.print(" " + arreglo[i][j] + " ");
}
System.out.println();
}
}
}
Inicializar matriz en la declaración
En Java es posible inicializar una matriz al declararla, tal y como sucede con los arreglos;
esto se hace sin definir el número de renglones y columnas, colocando un operador de
asignación y después entre llaves la lista de valores para cada renglón del arreglo, el arreglo
separando con llaves para cada valor por columna, separado por comas, veamos los
siguientes ejemplos:
double arreglo[][] = { {3.5, 5.4, -2.3 }, {22.3, 78.5, -9.4}};
char cadena[][] = {{‘a’, ‘g’, ‘u’, ‘a’}, {‘r’, ‘o’, ‘j’, ‘a’}} ;
En Java es posible saber el número de renglones de una matriz, solo escribiendo el nombre
de la matriz un punto y la palabra length, también se puede saber el número de elementos
de un renglón, dando el nombre del arreglo , el renglón entre corchetes y un punto y la
palabra length, como se muestra en el siguiente ejemplo:
public class AplicacionMatrices2 {
public static void main(String[] args) {
int arreglo[][] = {{1,2,3}, {4,5,6}, {7,8,9}};
for (int i=0; i<arreglo.length; i++) {
for (int j=0; j<arreglo[0].length; j++) {
System.out.print(" " + arreglo[i][j] + " ");
}
System.out.println();
}
}
}
El cual al ejecutar mostrará lo siguiente:
Es importante observar como se escriben los renglones por columna, recordando que se
utiliza el print() para desplegar el valor, esto permitirá no cambiar de renglón, pero tampoco
saldrá a la pantalla hasta encontrar un println(), el cual se hace después del ciclo de adentro
que despliega todos los renglones de una columna.
Ahora vamos a observar como se pueden introducir los datos para meterlos a una matriz en
una aplicación, debemos observar que hay un nuevo objeto que es creado que lo hemos
llamado in, por input, ya que es un objeto que es de entrada de datos, este objeto es de la
clase BufferedReader, la cual nos ayuda a tomar datos en forma de carácter de un
InputStreamReader, el cual toma todo los datos que vienen de consola al usar System.in,
observemos la aplicación:
import java.io.*;
public class AplicacionMatrices3 {
public static void main(String[] args) throws IOException {
int arreglo[][] = new int[3][3];
// definiendo un objeto de entrada para tomar datos del teclado
BufferedReader in =
new BufferedReader(new InputStreamReader(System.in));
// pidiendo los datos del teclado
for (int i=0; i<arreglo.length; i++) {
for (int j=0; j<arreglo[0].length; j++) {
System.out.print("Da elemento " + (i+1)+ " , " + (j+1) + " : ");
arreglo[i][j] = Integer.parseInt(in.readLine());
}
System.out.println();
}
//desplegando los valores por renglon
for (int i=0; i<arreglo.length; i++) {
for (int j=0; j<arreglo[0].length; j++) {
System.out.print(" " + arreglo[i][j] + " ");
}
System.out.println();
}
}
}
La cual se visualiza asi:
Esta aplicación utiliza primero un ciclo anidado (un ciclo dentro de otro ciclo) para pedir los
datos, utilizando para ello el objeto in, el objeto in no se te explicará en este momento su
uso, solo debes utilizar el objeto tal y como esta declarado y cada vez que quieras leer algo
del teclado utilizar in.readLine(), esto substituye al t.getText() de un applet, por eso
tenemos
arreglo[i][j] = Integer.parseInt(in.readLine());
ya que estamos tomando lo que se leyo del teclado, se pasa a entero, ayudándonos por la
clase Integer y finalmente se asigna esto en la matriz arreglo dentro del renglón (i-1)
columna (j-1).
Usando mal los Índices
Al igual que en un arreglo, cuando utilizamos mal los índices de una matriz, Java arroja un
error de ejecución llamado de excepción, el cual es ArrayIndexOutOfBoundsException,
debemos tener cuidado en esto, pues la aplicación se cancela y no continua, como se
muestra en la siguiente aplicación:
import java.io.*;
public class AplicacionMatrices4 {
public static void main(String[] args) throws IOException {
int arreglo[][] = new int[3][3];
// definiendo un objeto de entrada para tomar datos del teclado
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
// pidiendo los datos del teclado
for (int i=0; i<arreglo.length; i++) {
for (int j=0; j<arreglo[0].length; j++) {
System.out.print("Da elemento " + (i+1)+ " , " + (j+1) + " : ");
arreglo[i][j] = Integer.parseInt(in.readLine());
}
System.out.println();
}
//desplegando los valores por renglon
for (int i=0; i<4; i++) {
for (int j=0; j<3; j++) {
System.out.print(" " + arreglo[i][j] + " ");
}
System.out.println();
}
}
}
La ejecución que muestra la aplicación es:
Podemos observar como la aplicación alcanza a mostrar todos los renglones desplegados,
pero como queremos continuar con el renglón 3, el cual no existe pues el último fue 2
(empezando en cero), arroja la excepción ArrayIndexOutofBoundsException.
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
// pidiendo los datos del teclado
for (int i=0; i<arreglo.length; i++) {
for (int j=0; j<arreglo[0].length; j++) {
System.out.print("Da elemento " + (i+1)+ " , " + (j+1) + " : ");
arreglo[i][j] = Integer.parseInt(in.readLine());
}
System.out.println();
}
//desplegando los valores por renglon
for (int i=0; i<4; i++) {
for (int j=0; j<3; j++) {
System.out.print(" " + arreglo[i][j] + " ");
}
System.out.println();
}
}
}
La ejecución que muestra la aplicación es:
Podemos observar como la aplicación alcanza a mostrar todos los renglones desplegados,
pero como queremos continuar con el renglón 3, el cual no existe pues el último fue 2
(empezando en cero), arroja la excepción ArrayIndexOutofBoundsException.

More Related Content

What's hot (19)

7.arreglos en java
7.arreglos en  java7.arreglos en  java
7.arreglos en java
 
12 Arreglos
12 Arreglos12 Arreglos
12 Arreglos
 
Arrays unidimensionales
Arrays unidimensionalesArrays unidimensionales
Arrays unidimensionales
 
Arreglos
ArreglosArreglos
Arreglos
 
Arreglos c++
Arreglos c++Arreglos c++
Arreglos c++
 
Arreglos, Procedimientos y Funciones
Arreglos, Procedimientos y FuncionesArreglos, Procedimientos y Funciones
Arreglos, Procedimientos y Funciones
 
Arreglos java
Arreglos javaArreglos java
Arreglos java
 
Clase 9- programacion
Clase 9- programacionClase 9- programacion
Clase 9- programacion
 
Arreglos bidimensionales o matrices
Arreglos bidimensionales o matricesArreglos bidimensionales o matrices
Arreglos bidimensionales o matrices
 
7.arreglos y vectores en c++
7.arreglos y vectores en c++7.arreglos y vectores en c++
7.arreglos y vectores en c++
 
Arreglos en java
Arreglos en javaArreglos en java
Arreglos en java
 
Arreglos unidimensionales
Arreglos unidimensionalesArreglos unidimensionales
Arreglos unidimensionales
 
Informe técnico 1
Informe técnico 1Informe técnico 1
Informe técnico 1
 
Arreglos C++
Arreglos C++Arreglos C++
Arreglos C++
 
17 arreglos bidimensionales java
17 arreglos bidimensionales java17 arreglos bidimensionales java
17 arreglos bidimensionales java
 
16 Curso de POO en java - arreglos unidimensionales
16 Curso de POO en java - arreglos unidimensionales16 Curso de POO en java - arreglos unidimensionales
16 Curso de POO en java - arreglos unidimensionales
 
Arreglos En Una Dimension
Arreglos En Una DimensionArreglos En Una Dimension
Arreglos En Una Dimension
 
Apuntadores y direccionamiento
Apuntadores y direccionamientoApuntadores y direccionamiento
Apuntadores y direccionamiento
 
Arreglos en c ++
Arreglos en c ++Arreglos en c ++
Arreglos en c ++
 

Viewers also liked

3 desarollo manejo datos capitulo 1 -02 operaciones con arreglos (3)
3 desarollo manejo datos capitulo 1 -02 operaciones con arreglos (3)3 desarollo manejo datos capitulo 1 -02 operaciones con arreglos (3)
3 desarollo manejo datos capitulo 1 -02 operaciones con arreglos (3)luis freddy
 
3guillecollection
3guillecollection3guillecollection
3guillecollectionspclass
 
3 desarollo manejo datos capitulo 1 -03 aplicaciones con arreglos (2)
3 desarollo manejo datos capitulo 1 -03 aplicaciones con arreglos (2)3 desarollo manejo datos capitulo 1 -03 aplicaciones con arreglos (2)
3 desarollo manejo datos capitulo 1 -03 aplicaciones con arreglos (2)luis freddy
 
3 desarollo manejo datos capitulo 4 -02 aplicaciones colecciones
3 desarollo manejo datos capitulo 4 -02 aplicaciones colecciones3 desarollo manejo datos capitulo 4 -02 aplicaciones colecciones
3 desarollo manejo datos capitulo 4 -02 aplicaciones coleccionesluis freddy
 
3 desarollo manejo datos capitulo 2 -02 operaciones arreglos dos dime
3 desarollo manejo datos capitulo 2 -02 operaciones arreglos dos dime3 desarollo manejo datos capitulo 2 -02 operaciones arreglos dos dime
3 desarollo manejo datos capitulo 2 -02 operaciones arreglos dos dimeluis freddy
 
3 desarollo manejo datos capitulo 1 -01 arreglos de dimension (6)
3 desarollo manejo datos capitulo 1 -01 arreglos de dimension (6)3 desarollo manejo datos capitulo 1 -01 arreglos de dimension (6)
3 desarollo manejo datos capitulo 1 -01 arreglos de dimension (6)luis freddy
 

Viewers also liked (8)

3 desarollo manejo datos capitulo 1 -02 operaciones con arreglos (3)
3 desarollo manejo datos capitulo 1 -02 operaciones con arreglos (3)3 desarollo manejo datos capitulo 1 -02 operaciones con arreglos (3)
3 desarollo manejo datos capitulo 1 -02 operaciones con arreglos (3)
 
Javascript
JavascriptJavascript
Javascript
 
3guillecollection
3guillecollection3guillecollection
3guillecollection
 
3 desarollo manejo datos capitulo 1 -03 aplicaciones con arreglos (2)
3 desarollo manejo datos capitulo 1 -03 aplicaciones con arreglos (2)3 desarollo manejo datos capitulo 1 -03 aplicaciones con arreglos (2)
3 desarollo manejo datos capitulo 1 -03 aplicaciones con arreglos (2)
 
3 desarollo manejo datos capitulo 4 -02 aplicaciones colecciones
3 desarollo manejo datos capitulo 4 -02 aplicaciones colecciones3 desarollo manejo datos capitulo 4 -02 aplicaciones colecciones
3 desarollo manejo datos capitulo 4 -02 aplicaciones colecciones
 
3 desarollo manejo datos capitulo 2 -02 operaciones arreglos dos dime
3 desarollo manejo datos capitulo 2 -02 operaciones arreglos dos dime3 desarollo manejo datos capitulo 2 -02 operaciones arreglos dos dime
3 desarollo manejo datos capitulo 2 -02 operaciones arreglos dos dime
 
3 desarollo manejo datos capitulo 1 -01 arreglos de dimension (6)
3 desarollo manejo datos capitulo 1 -01 arreglos de dimension (6)3 desarollo manejo datos capitulo 1 -01 arreglos de dimension (6)
3 desarollo manejo datos capitulo 1 -01 arreglos de dimension (6)
 
Java 1
Java 1Java 1
Java 1
 

Similar to 3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (5)

Similar to 3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (5) (20)

Transparencias8
Transparencias8Transparencias8
Transparencias8
 
Matrices en java
Matrices en javaMatrices en java
Matrices en java
 
Arreglos. lidia
Arreglos. lidiaArreglos. lidia
Arreglos. lidia
 
arrays
arraysarrays
arrays
 
06 - Arrays y matrices en lenguaje C
06 - Arrays y matrices en lenguaje C06 - Arrays y matrices en lenguaje C
06 - Arrays y matrices en lenguaje C
 
Aplicación de arreglos bidimensionales
Aplicación de arreglos bidimensionalesAplicación de arreglos bidimensionales
Aplicación de arreglos bidimensionales
 
Lenguaje de Programacion - Java
Lenguaje de Programacion - JavaLenguaje de Programacion - Java
Lenguaje de Programacion - Java
 
Práctica 12
Práctica 12Práctica 12
Práctica 12
 
Practicas java gustavo carbajal macias 402
Practicas java gustavo carbajal macias 402Practicas java gustavo carbajal macias 402
Practicas java gustavo carbajal macias 402
 
Grupo4
Grupo4Grupo4
Grupo4
 
Grupo4
Grupo4Grupo4
Grupo4
 
Grupo4
Grupo4Grupo4
Grupo4
 
Grupo4
Grupo4Grupo4
Grupo4
 
Grupo4
Grupo4Grupo4
Grupo4
 
Practicas java gustavo carbajal macias 402
Practicas java gustavo carbajal macias 402Practicas java gustavo carbajal macias 402
Practicas java gustavo carbajal macias 402
 
Pres arreglosmat animacion
Pres arreglosmat animacionPres arreglosmat animacion
Pres arreglosmat animacion
 
Arreglos en C++
Arreglos en C++Arreglos en C++
Arreglos en C++
 
Agregación Composición
Agregación ComposiciónAgregación Composición
Agregación Composición
 
Agregacion composicion
Agregacion composicionAgregacion composicion
Agregacion composicion
 
introducción a la programación utilizando C++.pptx
introducción a la programación utilizando C++.pptxintroducción a la programación utilizando C++.pptx
introducción a la programación utilizando C++.pptx
 

More from luis freddy

3 desarollo manejo datos capitulo 4 -01 introduccion colecciones
3 desarollo manejo datos capitulo 4 -01 introduccion colecciones3 desarollo manejo datos capitulo 4 -01 introduccion colecciones
3 desarollo manejo datos capitulo 4 -01 introduccion coleccionesluis freddy
 
3 desarollo manejo datos capitulo 3 -03 aplicaciones arreglo objetos
3 desarollo manejo datos capitulo 3 -03 aplicaciones arreglo objetos3 desarollo manejo datos capitulo 3 -03 aplicaciones arreglo objetos
3 desarollo manejo datos capitulo 3 -03 aplicaciones arreglo objetosluis freddy
 
3 desarollo manejo datos capitulo 3 -02 busqueda arreglo objetos
3 desarollo manejo datos capitulo 3 -02 busqueda arreglo objetos3 desarollo manejo datos capitulo 3 -02 busqueda arreglo objetos
3 desarollo manejo datos capitulo 3 -02 busqueda arreglo objetosluis freddy
 
3 desarollo manejo datos capitulo 3 -01 arreglo objetos
3 desarollo manejo datos capitulo 3 -01 arreglo objetos3 desarollo manejo datos capitulo 3 -01 arreglo objetos
3 desarollo manejo datos capitulo 3 -01 arreglo objetosluis freddy
 

More from luis freddy (6)

3 desarollo manejo datos capitulo 4 -01 introduccion colecciones
3 desarollo manejo datos capitulo 4 -01 introduccion colecciones3 desarollo manejo datos capitulo 4 -01 introduccion colecciones
3 desarollo manejo datos capitulo 4 -01 introduccion colecciones
 
3 desarollo manejo datos capitulo 3 -03 aplicaciones arreglo objetos
3 desarollo manejo datos capitulo 3 -03 aplicaciones arreglo objetos3 desarollo manejo datos capitulo 3 -03 aplicaciones arreglo objetos
3 desarollo manejo datos capitulo 3 -03 aplicaciones arreglo objetos
 
3 desarollo manejo datos capitulo 3 -02 busqueda arreglo objetos
3 desarollo manejo datos capitulo 3 -02 busqueda arreglo objetos3 desarollo manejo datos capitulo 3 -02 busqueda arreglo objetos
3 desarollo manejo datos capitulo 3 -02 busqueda arreglo objetos
 
3 desarollo manejo datos capitulo 3 -01 arreglo objetos
3 desarollo manejo datos capitulo 3 -01 arreglo objetos3 desarollo manejo datos capitulo 3 -01 arreglo objetos
3 desarollo manejo datos capitulo 3 -01 arreglo objetos
 
Semaforo555
Semaforo555Semaforo555
Semaforo555
 
La robotica pp
La robotica ppLa robotica pp
La robotica pp
 

3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (5)

  • 1. ¿Que es un arreglo de dos dimensiones? Un arreglo de dos dimensiones es una colección de datos para una misma variable en dos dimensiones comúnmente llamados renglones y columnas. Arreglo 12 - 4 0 28 -3 -3 - 5 2 189 -2 1 0 9 -4 12 Para poder guardar un valor u obtener alguno del arreglo de dos dimensiones (también llamado matriz) es ahora necesario utilizar dos dimensiones, el renglón y la columna. Declaración de arreglos de dos dimensiones Para declarar un arreglo de dos dimensiones se utiliza el siguiente formato: tipo nombre_arreglo [][] = new tipo[ numero renglones][ numero columnas]; donde tipo es el tipo de los datos que almacenará el arreglo de dos dimensiones. Es importante recordar que se pueden declarar arreglos de los tipos primitivos de Java (int, double, char, etc) o bien de tipos definidos por el usuario (Cuenta, Alumno, etc). Tamaño representa la cantidad de casillas que se reservan para el arreglo. En Java todos los arreglos empiezan en el subíndice 0 y llegan al subíndice tamaño-1. Por ejemplo: int arr[][] = new int[5] [6]; // arreglo de 5 renglones y 6 columnas enteros char cad[][] = new char[10] [5]; // arreglo de 10 renglones por 5 columnas tipo carácter Uso e inicialización de los elementos del arreglo de dos dimensiones III. Desarrollo de aplicaciones con manejo de datos en la memoria
  • 2. Para usar los elementos individuales de un arreglo se usa el siguiente formato: arreglo[subíndice-renglon] [subíndice-columna] Como un elemento de un arreglo de dos dimensiones es también un dato, se puede usar como cualquier variable de ese tipo, debemos recordar que tanto el índice de renglón como el índice de columna toman como base el primer elemento cero: int arr[][] = new int [2][5]; arr[3][4] = 12; arr[1][0]= Integer.parseInt(t1.getText()); t2.setText("" + arr[0][1]); arr[0][0] = arr[0][1] + arr[0][2]; int k = 2; int l = 3 arr[k+1][l] = 20; Ejemplo: En este siguiente ejemplo, tenemos una aplicación que define un arreglo de enteros de dos dimensiones, con 3 renglones y 5 columnas, y los inicializa con el valor de 1 a 15, de acuerdo a cada renglón, empezando por 1 en el renglón 1, luego por 6 en el renglón 2 y 11 en el renglón 3. Después de inicializar la matriz, la despliega, desplegando los valores de un mismo renglón en la misma línea, como lo muestra la figura: La aplicación es como se muestra a continuación: public class AplicacionMatrices1 { public static void main(String[] args) { int arreglo[][] = new int [3][5]; for (int i=0; i<3; i++) { for (int j=0; j<5; j++) { arreglo [i][j] = i*5+j+1; } } for (int i=0; i<3; i++) {
  • 3. for (int j=0; j<5; j++) { System.out.print(" " + arreglo[i][j] + " "); } System.out.println(); } } } Inicializar matriz en la declaración En Java es posible inicializar una matriz al declararla, tal y como sucede con los arreglos; esto se hace sin definir el número de renglones y columnas, colocando un operador de asignación y después entre llaves la lista de valores para cada renglón del arreglo, el arreglo separando con llaves para cada valor por columna, separado por comas, veamos los siguientes ejemplos: double arreglo[][] = { {3.5, 5.4, -2.3 }, {22.3, 78.5, -9.4}}; char cadena[][] = {{‘a’, ‘g’, ‘u’, ‘a’}, {‘r’, ‘o’, ‘j’, ‘a’}} ; En Java es posible saber el número de renglones de una matriz, solo escribiendo el nombre de la matriz un punto y la palabra length, también se puede saber el número de elementos de un renglón, dando el nombre del arreglo , el renglón entre corchetes y un punto y la palabra length, como se muestra en el siguiente ejemplo: public class AplicacionMatrices2 { public static void main(String[] args) { int arreglo[][] = {{1,2,3}, {4,5,6}, {7,8,9}}; for (int i=0; i<arreglo.length; i++) { for (int j=0; j<arreglo[0].length; j++) { System.out.print(" " + arreglo[i][j] + " "); } System.out.println(); } } } El cual al ejecutar mostrará lo siguiente:
  • 4. Es importante observar como se escriben los renglones por columna, recordando que se utiliza el print() para desplegar el valor, esto permitirá no cambiar de renglón, pero tampoco saldrá a la pantalla hasta encontrar un println(), el cual se hace después del ciclo de adentro que despliega todos los renglones de una columna. Ahora vamos a observar como se pueden introducir los datos para meterlos a una matriz en una aplicación, debemos observar que hay un nuevo objeto que es creado que lo hemos llamado in, por input, ya que es un objeto que es de entrada de datos, este objeto es de la clase BufferedReader, la cual nos ayuda a tomar datos en forma de carácter de un InputStreamReader, el cual toma todo los datos que vienen de consola al usar System.in, observemos la aplicación: import java.io.*; public class AplicacionMatrices3 { public static void main(String[] args) throws IOException { int arreglo[][] = new int[3][3]; // definiendo un objeto de entrada para tomar datos del teclado BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); // pidiendo los datos del teclado for (int i=0; i<arreglo.length; i++) { for (int j=0; j<arreglo[0].length; j++) { System.out.print("Da elemento " + (i+1)+ " , " + (j+1) + " : "); arreglo[i][j] = Integer.parseInt(in.readLine()); } System.out.println(); } //desplegando los valores por renglon for (int i=0; i<arreglo.length; i++) { for (int j=0; j<arreglo[0].length; j++) { System.out.print(" " + arreglo[i][j] + " "); } System.out.println(); } } }
  • 5. La cual se visualiza asi: Esta aplicación utiliza primero un ciclo anidado (un ciclo dentro de otro ciclo) para pedir los datos, utilizando para ello el objeto in, el objeto in no se te explicará en este momento su uso, solo debes utilizar el objeto tal y como esta declarado y cada vez que quieras leer algo del teclado utilizar in.readLine(), esto substituye al t.getText() de un applet, por eso tenemos arreglo[i][j] = Integer.parseInt(in.readLine()); ya que estamos tomando lo que se leyo del teclado, se pasa a entero, ayudándonos por la clase Integer y finalmente se asigna esto en la matriz arreglo dentro del renglón (i-1) columna (j-1). Usando mal los Índices Al igual que en un arreglo, cuando utilizamos mal los índices de una matriz, Java arroja un error de ejecución llamado de excepción, el cual es ArrayIndexOutOfBoundsException, debemos tener cuidado en esto, pues la aplicación se cancela y no continua, como se muestra en la siguiente aplicación: import java.io.*; public class AplicacionMatrices4 { public static void main(String[] args) throws IOException { int arreglo[][] = new int[3][3]; // definiendo un objeto de entrada para tomar datos del teclado
  • 6. BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); // pidiendo los datos del teclado for (int i=0; i<arreglo.length; i++) { for (int j=0; j<arreglo[0].length; j++) { System.out.print("Da elemento " + (i+1)+ " , " + (j+1) + " : "); arreglo[i][j] = Integer.parseInt(in.readLine()); } System.out.println(); } //desplegando los valores por renglon for (int i=0; i<4; i++) { for (int j=0; j<3; j++) { System.out.print(" " + arreglo[i][j] + " "); } System.out.println(); } } } La ejecución que muestra la aplicación es: Podemos observar como la aplicación alcanza a mostrar todos los renglones desplegados, pero como queremos continuar con el renglón 3, el cual no existe pues el último fue 2 (empezando en cero), arroja la excepción ArrayIndexOutofBoundsException.
  • 7. BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); // pidiendo los datos del teclado for (int i=0; i<arreglo.length; i++) { for (int j=0; j<arreglo[0].length; j++) { System.out.print("Da elemento " + (i+1)+ " , " + (j+1) + " : "); arreglo[i][j] = Integer.parseInt(in.readLine()); } System.out.println(); } //desplegando los valores por renglon for (int i=0; i<4; i++) { for (int j=0; j<3; j++) { System.out.print(" " + arreglo[i][j] + " "); } System.out.println(); } } } La ejecución que muestra la aplicación es: Podemos observar como la aplicación alcanza a mostrar todos los renglones desplegados, pero como queremos continuar con el renglón 3, el cual no existe pues el último fue 2 (empezando en cero), arroja la excepción ArrayIndexOutofBoundsException.