ARREGLOS BIDIMENSIONALES
MATRICES
Slide 2
EISC
Universidad del Valle
CONTENIDO
 Arreglos Bidimensionales (matrices)
 Qué son
 Cómo se declaran
 Cómo se insertan y leen datos
 Ejemplos
Slide 3
EISC
Universidad del Valle
También llamados arreglos bidimensionales
Es un conjunto de datos de un mismo tipo que
están almacenados en arreglos de dos
dimensiones.
Tienen una cantidad de filas y una cantidad
de columnas
MATRICES
Slide 4
EISC
Universidad del Valle
También llamados arreglos bidimensionales
Es un conjunto de datos de un mismo tipo que
están almacenados en arreglos de dos
dimensiones. Tienen una cantidad de filas y
una cantidad de columnas
Arreglo bidimensional con 3 filas y 4 columnas
MATRICES
3.5 4.0 5.0 5.0
5.0 5.0 3.0 2.5
4.5 4.5 4.0 5.0
Slide 5
EISC
Universidad del Valle
MATRICES
* Al igual que los arreglos unidimensionales, los
índices empiezan a partir de cero y se indican
entre corchetes: [ ][ ]. El primer índice indica la
fila y el segundo indica la columna.
Slide 6
EISC
Universidad del Valle
0 1 2 3
0
1
2
3.5 4.0 5.0 5.0
5.0 5.0 3.0 2.5
4.5 4.5 4.0 5.0
ARREGLOS BIDIMENSIONALES
Índice para las filas
Índice para las
columnas
Slide 7
EISC
Universidad del Valle
PARA RECORDAR…
* Una matriz almacena elementos del mismo tipo.
* Una matriz es de tamaño fijo (mxn).
* Cada elemento se guarda en un espacio independiente.
* Cada espacio se referencia con dos índices.
* El primer índice referencia las filas.
* El segundo índice referencia las columnas.
* Los índices se empiezan a contar a partir de 0.
* En una matriz de mxn sus índices irán de 0 a m-1 para
las filas y de 0 a n-1 para las columnas.
Slide 8
EISC
Universidad del Valle
Arreglo bidimensional 3 filas y 2 columnas
Oscar Sarah
Juan Diana
Jhon Andrea
MATRICES
Slide 9
EISC
Universidad del Valle
0 1
0
1
2
Arreglo bidimensional 3 filas y 2 columnas
Oscar Sarah
Juan Diana
Jhon Andrea
MATRICES
Slide 10
EISC
Universidad del Valle
Sarah 24.8
Oscar 50.6
Kate 13.3
¿Es posible definir la siguiente matriz?
MATRICES
Slide 11
EISC
Universidad del Valle
¿Es posible definir la siguiente matriz?
MATRICES
Slide 12
EISC
Universidad del Valle
• Cómo definir un arreglo bidimensional (Matriz)
MATRICES
Slide 13
EISC
Universidad del Valle
• Cómo definir un arreglo bidimensional (Matriz)
tipoDeDato nombre[ ][ ]=new tipoDeDato[m][n];
donde m es la cantidad de filas y n es la cantidad de
columnas
MATRICES
Slide 14
EISC
Universidad del Valle
• String nombres[ ][ ]=new String[3][2];
• double notas[ ][ ]=new double[50][4];
MATRICES
Slide 15
EISC
Universidad del Valle
• String nombres[ ][ ]=new String[3][2];
Arreglo bidimensional de Strings, llamado Nombres,
con 3 filas y 2 columnas
• double notas[ ][ ]=new double[50][4];
Arreglo bidimensional de números reales, llamado
Notas, con 50 filas y 4 columnas
MATRICES
Slide 16
EISC
Universidad del Valle
null null
null null
null null
nombres 0 1
0
1
2
notas 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0 1 2 3
0
1
2
.
.
.
.
.
49
Slide 17
EISC
Universidad del Valle
Declarando e Inicializando
Se puede declarar e inicializar una matriz al igual que
los vectores:
Ejemplos:
String nombres[ ][ ] = {{ “Oscar”, “Fonseca” },
{ “John” , “Santos”},
{ “Julio” , “Ruiz” }};
double notas[ ][ ] = {{ 5.0, 4.0, 5.0},
{ 4.3, 4.7, 3.8},
{ 2.7, 3.2, 4.0},
{ 4.3, 4.7, 5.0}};
Slide 18
EISC
Universidad del Valle
Declarando e Inicializando
Se puede declarar e inicializar una matriz al igual que
los vectores:
Ejemplos:
String nombres[ ][ ] = {{ “Oscar”, “Fonseca” },
{ “John” , “Santos”},
{ “Julio” , “Ruiz” }};
double notas[ ][ ] = {{ 5.0, 4.0, 5.0},
{ 4.3, 4.7, 3.8},
{ 2.7, 3.2, 4.0},
{ 4.3, 4.7, 5.0}};
Matriz de reales de
4 filas y 3 columnas.
Matriz de cadenas
de texto de 3 filas
y 2 columnas.
Slide 19
EISC
Universidad del Valle
Cómo definir una matriz de enteros, con 4 filas y
3 columnas, llamada numeros
MATRICES
Slide 20
EISC
Universidad del Valle
Cómo definir una matriz de enteros, con 4 filas y
3 columnas, llamada numeros
int numeros[ ][ ] = new int[4][3];
MATRICES
Slide 21
EISC
Universidad del Valle
¿Cómo definir este arreglo?
3104567 24 109 -1
2134231 50 201 -30
1231141 13 130 -45
3123232 40 110 -63
5645343 23 150 -70
2233424 27 170 -5
MATRICES
Slide 22
EISC
Universidad del Valle
int datos[ ][ ]=new int[6][4]
3104567 24 109 -1
2134231 50 201 -30
1231141 13 130 -45
3423232 40 110 -63
5645343 23 150 -70
2233424 27 170 -5
MATRICES
Slide 23
EISC
Universidad del Valle
3.104567 24.8
2.134231 50.6
1.231141 13.3
3.423232 40.5
5.645343 23.3
2.233424 27.5
¿Cómo definir esta matriz?
MATRICES
Slide 24
EISC
Universidad del Valle
3.104567 24.8
2.134231 50.6
1.231141 13.3
3.423232 40.5
5.645343 23.3
2.233424 27.5
double nombre[ ][ ]=new double[6][2];
MATRICES
Slide 25
EISC
Universidad del Valle
¿DÓNDE ESTÁ EL ERROR?
String nombres [] = new String[4][3];
int anchoLargo = new int [15][2];
double valorTiempo [][] = int [7,7];
String nombres [2][2] = {{”Oscar”,”100”},
{”Sofia”,“A”}};
String nombres [][] = {{”Oscar”,”100”} {”Sofia”,“A”}};
String refs[][] = {{“a34” “b34” “d33”},
{“cf2” “b12” “aa3”}};
Slide 26
EISC
Universidad del Valle
¿Cómo insertar datos en los arreglos bidimensionales
(matrices)?
MATRICES
Slide 27
EISC
Universidad del Valle
¿Cómo insertar datos en los arreglos bidimensionales?
Debe indicar la posición de la fila y de la columna
donde va a almacenar el dato
nombreDelArreglo[posicionFila][posicionColumna]=valor;
MATRICES
Slide 28
EISC
Universidad del Valle
¿Cómo insertar datos en los arreglos bidimensionales?
Debe indicar la posición de la fila y de la columna donde va
a almacenar el dato
nombres[0][0]=“Oscar”;
nombres[0][1]=“Sarah”;
Oscar Sarah
null null
null null
MATRICES
nombres
Slide 29
EISC
Universidad del Valle
¿Cómo insertar datos en los arreglos bidimensionales?
Debe indicar la posición de la fila y de la columna donde va
a almacenar el dato
nombres[0][0]=“Oscar”;
nombres[0][1]=“Sarah”;
nombres[?][?]=“Jhon”;
nombres[?][?]=“Andrea”;
Oscar Sarah
null null
Jhon Andrea
MATRICES
nombres
Slide 30
EISC
Universidad del Valle
¿Cómo insertar datos en los arreglos bidimensionales?
Debe indicar la posición de la fila y de la columna donde va
a almacenar el dato
nombres[0][0]=“Oscar”;
nombres[0][1]=“Sarah”;
nombres[2][0]=“Jhon”;
nombres[2][1]=“Andrea”;
Andrea
Jhon
null
null
Sarah
Oscar
MATRICES
nombres
Slide 31
EISC
Universidad del Valle
MATRICES
¿Dónde puede haber errores?
int matriz[][] = new int [5][3];
double i;
int m=6,n=3;
...
matriz[0][3] = 21.2;
matriz[i][n] = 90;
matriz[m-1][n-1] = matriz [m][n] + 10;
matriz[5][3]=matriz[n][m];
...
Slide 32
EISC
Universidad del Valle
¿Cómo recuperar los datos de los arreglos bidimensionales?
MATRICES
Slide 33
EISC
Universidad del Valle
¿Cómo recuperar los datos de los arreglos
bidimensionales?
Debe indicar la posición de la fila y de la columna
nombreDelArreglo[posicionFila][posicionColumna]
MATRICES
Slide 34
EISC
Universidad del Valle
¿Cómo recuperar datos de los arreglos bidimensionales?
Debe indicar la posición de la fila y de la columna
nombres[0][0]
nombres[0][1]
¿Cómo obtener “Andrea”?
Oscar Sarah
null null
Jhon Andrea
MATRICES
nombres
Slide 35
EISC
Universidad del Valle
• Presente el conjunto de instrucciones Java para
crear una matriz de 50x4 números reales.
• Adicione las instrucciones necesarias para solicitar al
usuario cada uno de los números
• Ahora, muestre en un mensaje, todos los números
MATRICES
Slide 36
EISC
Universidad del Valle
• Presente el conjunto de instrucciones Java para
crear una matriz de 50x4 números reales.
double numeros[][]= new double[50][4];
MATRICES
Slide 37
EISC
Universidad del Valle
. . . . . . . . . . . .
0 1 2 3
0
1
2
49
Slide 38
EISC
Universidad del Valle
• Presente el conjunto de instrucciones Java para
crear una matriz de 50x4 números reales.
• Adicione las instrucciones necesarias para solicitar
al usuario cada uno de los números
double numeros[][]= new double[50][4];
MATRICES
Slide 39
EISC
Universidad del Valle
. . . . . . . . . . . .
0 1 2 3
0
1
2
49
Slide 40
EISC
Universidad del Valle
. . . . . . . . . . . .
0 1 2 3
0
1
2
49
Slide 41
EISC
Universidad del Valle
double numeros[][]= new double[50][4];
numeros[0][0]=Double.parseDouble(JOptionPane.showInputDialog(“Digite un numero”));
numeros[0][1]=Double.parseDouble(JOptionPane.showInputDialog(“Digite un numero”));
numeros[0][2]=Double.parseDouble(JOptionPane.showInputDialog(“Digite un numero”));
numeros[0][3]=Double.parseDouble(JOptionPane.showInputDialog(“Digite un numero”));
MATRICES
Slide 42
EISC
Universidad del Valle
. . . . . . . . . . . .
0 1 2 3
0
1
2
49
Slide 43
EISC
Universidad del Valle
double numeros[][]= new double[50][4];
numeros[0][0]=Double.parseDouble(JOptionPane.showInputDialog(“Digite un numero”));
numeros[0][1]=Double.parseDouble(JOptionPane.showInputDialog(“Digite un numero”));
numeros[0][2]=Double.parseDouble(JOptionPane.showInputDialog(“Digite un numero”));
numeros[0][3]=Double.parseDouble(JOptionPane.showInputDialog(“Digite un numero”));
numeros[1][0]=Double.parseDouble(JOptionPane.showInputDialog(“Digite un numero”));
numeros[1][1]=Double.parseDouble(JOptionPane.showInputDialog(“Digite un numero”));
numeros[1][2]=Double.parseDouble(JOptionPane.showInputDialog(“Digite un numero”));
numeros[1][3]=Double.parseDouble(JOptionPane.showInputDialog(“Digite un numero”));
MATRICES
Slide 44
EISC
Universidad del Valle
. . . . . . . . . . . .
0 1 2 3
0
1
2
49
Slide 45
EISC
Universidad del Valle
numeros[0][0]=Double.parseDouble(JOptionPane.showInputDialog(“Digite un numero”));
numeros[0][1]=Double.parseDouble(JOptionPane.showInputDialog(“Digite un numero”));
numeros[0][2]=Double.parseDouble(JOptionPane.showInputDialog(“Digite un numero”));
numeros[0][3]=Double.parseDouble(JOptionPane.showInputDialog(“Digite un numero”));
numeros[1][0]=Double.parseDouble(JOptionPane.showInputDialog(“Digite un numero”));
numeros[1][1]=Double.parseDouble(JOptionPane.showInputDialog(“Digite un numero”));
numeros[1][2]=Double.parseDouble(JOptionPane.showInputDialog(“Digite un numero”));
numeros[1][3]=Double.parseDouble(JOptionPane.showInputDialog(“Digite un numero”));
. . .
numeros[49][0]=Double.parseDouble(JOptionPane.showInputDialog(“Digite un numero”));
numeros[49][1]=Double.parseDouble(JOptionPane.showInputDialog(“Digite un numero”));
numeros[49][2]=Double.parseDouble(JOptionPane.showInputDialog(“Digite un numero”));
numeros[49][3]=Double.parseDouble(JOptionPane.showInputDialog(“Digite un numero”));
Slide 46
EISC
Universidad del Valle
for (int i=0; i<=49; i=i+1){
for (int j=0; j<=3; j=j+1){
numeros[i][j]=Double.parseDouble(JOptionPane.showInputDialog(“Digite un numero en
la posición ”+i+” “+j));
}
}
Slide 47
EISC
Universidad del Valle
for (int i=0; i<=49; i=i+1){
for (int j=0; j<=3; j=j+1){
numeros[i][j]=Double.parseDouble(JOptionPane.showInputDialog(“Digite un numero en
la posición ”+i+” “+j));
}
}
La variable i maneja las filas.
Comienzan en 0, hasta 49
Slide 48
EISC
Universidad del Valle
for (int i=0; i<=49; i=i+1){
for (int j=0; j<=3; j=j+1){
numeros[i][j]=Double.parseDouble(JOptionPane.showInputDialog(“Digite un numero en
la posición ”+i+” ”+j));
}
}
La variable j maneja las columnas.
Comienzan en 0, hasta 3
Slide 49
EISC
Universidad del Valle
for (int i=0; i<=49; i=i+1){
for (int j=0; j<=3; j=j+1){
numeros[i][j]=Double.parseDouble(JOptionPane.showInputDialog(“Digite un numero de
la posición ”+i+” ”+j));
}
}
La variable j maneja las columnas.
Comienzan en 0, hasta 3
Se almacena cada número
decimal solicitado en la
posicion i,j de la matriz
Slide 50
EISC
Universidad del Valle
For(int i=?; i<=?; i=i+1){
for(intj=?; j<=?; j=j+1){
numeros[i][j]=Double.parseDouble(JOptionPane.showInputDialog(“Digite numero”));
}
}
. . . . .
.
. . . . .
.
0 1 … 5
0
1
2
29
Matriz de 30x6
Slide 51
EISC
Universidad del Valle
For(int i=0; i<=29; i=i+1){
for(intj=0; j<=5; j=j+1){
numeros[i][j]=Double.parseDouble(JOptionPane.showInputDialog(“Digite numero”));
}
}
. . . . .
.
. . . . .
.
0 1 … 5
0
1
2
29
Matriz de 30x6
Slide 52
EISC
Universidad del Valle
For(int i=?; i<=?; i=i+1){
for(intj=?; j<=?; j=j+1){
numeros[i][j]=Double.parseDouble(JOptionPane.showInputDialog(“Digite numero”));
}
}
0 1 2 3
0
1
2
3
Matriz de 4x4
Slide 53
EISC
Universidad del Valle
For(int i=0; i<=3; i=i+1){
for(intj=0; j<=3; j=j+1){
numeros[i][j]=Double.parseDouble(JOptionPane.showInputDialog(“Digite numero”));
}
}
0 1 2 3
0
1
2
3
Matriz de 4x4
Slide 54
EISC
Universidad del Valle
• Presente el conjunto de instrucciones Java para
crear una matriz de 50x4 números reales.
• Adicione las instrucciones necesarias para solicitar al
usuario cada uno de los números
• Ahora, muestre en un mensaje de texto, todos los
números
MATRICES
Slide 55
EISC
Universidad del Valle
double numeros = new double[50][4];
for (int i=0; i<=49; i=i+1){
for (int j=0; j<=3; j=j+1){
numeros[i][j]=Double.parseDouble(JOptionPane.showInputDialog(“Digite
un numero”));
}
}
String mensaje=“”;
for (int i=0; i<=49; i=i+1){
for (int j=0; j<=3; j=j+1){
mensaje=mensaje + numeros[i][j]+” “);
}
mensaje+=“n”;
}
Slide 56
EISC
Universidad del Valle
Las matrices y el ciclo for
Una matriz se procesa generalmente usando dos
ciclos for anidados:
Slide 57
EISC
Universidad del Valle
Las matrices y el ciclo for
Una matriz se procesa generalmente usando dos
ciclos for anidados:
Slide 58
EISC
Universidad del Valle
Las matrices y el ciclo for
b.length indica la cantidad de filas de la matriz.
b[i].length indica la cantidad de columnas de la
matriz.
Slide 59
EISC
Universidad del Valle
Ejemplo 1:
Escriba un programa en Java que solicite el código y el
nombre de los estudiantes de cualquier curso y los
muestre todos al final. Use una matriz para guardar los
datos solicitados.
Slide 60
EISC
Universidad del Valle
Ejemplo 1: Análisis
* Debemos capturar los nombres de m estudiantes. por
lo tanto requerimos saber el valor de m para saber
cuántas filas tendrá la matriz.
* La matriz tendrá dos columnas: una para el código del
estudiante (String) y otra para el nombre (String).
* La matriz será del tipo String y de tamaño mx2.
* La salida del programa será un String que contendrá la
lista numerada de los nombres de los estudiantes.
Slide 61
EISC
Universidad del Valle
Ejemplo 1: Programa en Java
import javax.swing.*;
public class NombresCurso {
static String estudiantesCurso[][];
public static void main(String[] args) {
int cantEstudiantes;
String salida;
cantEstudiantes = Integer.parseInt(
JoptionPane.showInputDialog(
"Cantidad de Estudiantes:"));
estudiantesCurso = new String [cantEstudiantes][2];
Slide 62
EISC
Universidad del Valle
Ejemplo 1: Programa en Java
for (int m=0; m < estudiantesCurso.length; m++){
estudiantesCurso[m][0]=JoptionPane.showInputDialog
("Codigo del estudiante número" + (m+1) + ":");
estudiantesCurso[m][1]=JoptionPane.showInputDialog
("Nombre del estudiante número" + (m+1) + ":");
}
salida = "Estudiantes delCurso:nn" +
"NúmerotCódigotNombren";
for (int m=0; m < estudiantesCurso.length; m++){
salida += (m+1) + "t";
for (int n=0; n < estudiantesCurso[m].length; n++){
salida += estudiantesCurso[m][n] + "t";
}
salida += "n";
}
Slide 63
EISC
Universidad del Valle
Ejemplo 1: Programa en Java
//mostrar los resultados en un Area de Texto
JTextArea areaSalida = new JTextArea();
JScrollPane scroll = new JScrollPane(areaSalida);
areaSalida.setText( salida );
JOptionPane.showMessageDialog( null, scroll,
"Resultados", JOptionPane.INFORMATION_MESSAGE );
}//Fin método main
}//Fin clase
Slide 64
EISC
Universidad del Valle
Ejemplo 2:
Escriba un programa que lea dos matrices de mxn,
calcule la suma de ellas y muestre el resultado.
Slide 65
EISC
Universidad del Valle
Ejemplo 2: Programa en Java
import javax.swing.*;
public class SumaMatrices {
static String salida="";
public static void main(String[] args) {
int m, n,
int a [][];
int b [][];
int c [][];
m=Integer.parseInt(JOptionPane.showInputDialog(
"Número de filas de las matrices:"));
n=Integer.parseInt(JOptionPane.showInputDialog(
"Número de Columnas de las matrices:"));
a = new int [m][n];
b = new int [m][n];
c = new int [m][n];
//Continúa…
Slide 66
EISC
Universidad del Valle
Ejemplo 2: Programa en Java
//Continuación método main
leerMatriz(a, "Matriz A");
leerMatriz(b, "Matriz B");
calcularSuma(a,b,c);
generarSalida(a, "Matriz A");
generarSalida(b, "Matriz B");
generarSalida(c, "Matriz A+B");
JTextArea areaSalida = new JTextArea();
areaSalida.setText( salida );
JOptionPane.showMessageDialog( null, areaSalida,
"Suma de Matrices", JOptionPane.INFORMATION_MESSAGE );
}//fin método main
Slide 67
EISC
Universidad del Valle
Ejemplo 2: Programa en Java
static void leerMatriz(int matriz[][], String s){
for(int m=0; m < matriz.length; m++){
for(int n=0; n < matriz[m].length; n++){
matriz[m][n]=Integer.parseInt(
JoptionPane.showInputDialog(
s + ": Valor posición [" +
m + "][" + n + "]:"));
}
}
}//fin método leerMatriz
Slide 68
EISC
Universidad del Valle
Ejemplo 2: Programa en Java
static void calcularSuma(int a[][],int b[][],int c[][]){
for(int m=0; m < c.length; m++){
for(int n=0; n < c[m].length; n++){
c[m][n]= a[m][n] + b[m][n];
}
}
}//fin método calcularSuma
static void generarSalida (int a[][], String titulo){
salida += titulo + ":n";
for(int m=0; m < a.length; m++){
for(int n=0; n < a[m].length; n++){
salida += a[m][n] + "t";
}
salida +="n";
}
salida +="n";
}//fin método generarSalida
}//fin clase
Slide 69
EISC
Universidad del Valle
2 5 2 4
3 5 12 5
6 12 43 4
21 32 31 5
0 1 2 3
0
1
2
3
•Cómo mostrar en el área de texto
solo los elementos de la primera fila
ARREGLOS BIDIMENSIONALES
Slide 70
EISC
Universidad del Valle
String salida=“”;
for (int i=0; i<=3; i++){
salida=salida+ numeros[0][i] +“n”;
}
miArea.append(salida);
Slide 71
EISC
Universidad del Valle
2 5 2 4
3 5 12 5
6 12 43 4
21 32 31 5
0 1 2 3
0
1
2
3
•Cómo mostrar en el área de texto
solo los elementos de la primera
columna
ARREGLOS BIDIMENSIONALES
Slide 72
EISC
Universidad del Valle
2 5 2 4
3 5 12 5
6 12 43 4
21 32 31 5
0 1 2 3
0
1
2
3
•Cómo mostrar en el área de texto
los elementos de la diagonal 
ARREGLOS BIDIMENSIONALES
Slide 73
EISC
Universidad del Valle
for (int i=0; i<=3; i++){
for (int j=0; j<=3; j++){
if (i==j){
miArea.append(“n” + numeros[i][j]);
}
}
} De todas las posiciones,
solo muestra los número,
cuando la fila es igual a la
columna (diagonal )
Slide 74
EISC
Universidad del Valle
• Muestre la suma de todos los números en la matriz
ARREGLOS BIDIMENSIONALES
Slide 75
EISC
Universidad del Valle
int suma=0;
for (int i=0; i<=3; i++){
for (int j=0; j<=3; j++){
suma = suma + numeros[i][j];
}
}
miArea.append(“n La suma es : ” + suma )
Slide 76
EISC
Universidad del Valle
• Muestre la suma de los elementos de la diagonal 
ARREGLOS BIDIMENSIONALES
Slide 77
EISC
Universidad del Valle
int suma=0;
for (int i=0; i<=3; i++){
for (int j=0; j<=3; j++){
if (i==j){
suma = suma + numeros[i][j];
}
}
}
miArea.append(“nLa suma es : ” + suma )
Slide 78
EISC
Universidad del Valle
• Muestre la suma de los elementos de cada columna
ARREGLOS BIDIMENSIONALES
Slide 79
EISC
Universidad del Valle
2 5 2
3 5 12
6 12 43
21 32 31
ARREGLOS BIDIMENSIONALES
La suma de la columna 1 es: 32
La suma de la columna 2 es: 54
La suma de la columna 3 es: 88
Slide 80
EISC
Universidad del Valle
int sumaCol;
for (int col=0; col<3; col++){
sumaCol=0;
for (int fil=0; fil<4; fil++){
sumaCol = sumaCol + numeros[fil][col];
}
miArea.append(“nLa suma de la columna”+(col+1)+” es: ” +
sumaCol);
}
Slide 81
EISC
Universidad del Valle
Ejercicio: Se requiere una aplicación en java para almacenar los
resultados de las ultimas elecciones de rector de la universidad
del Valle. Los datos deben almacenarse en una matriz donde
cada fila corresponde a una sede y cada columna corresponde a
un candidato. El programa debe mostrar la tabla con los
nombres de las sedes y los nombres de los candidatos y cada
uno de los resultados. La aplicación también debe mostrar el
candidato ganador.
Se debe mostrar en un JTextArea todos los valores del arreglo.
ARREGLOS BIDIMENSIONALES
Slide 82
EISC
Universidad del Valle
MATRICES
Sedes
Arreglos a utilizar
Candidatos
Votos
500 400 300
250 150 250
200 250 100
120 200 210
“ Ivan Ramos” “Jorge Sanchez” “ José Rios”
“ Cali” “Palmira” “Buga” “Tuluá”
Slide 83
EISC
Universidad del Valle
MATRICES
Sedes
Arreglos a utilizar
Candidatos
500 400 300
250 150 250
200 250 100
120 200 210
“ Ivan Ramos” “Jorge Sanchez” “ José Rios”
“ Cali” “Palmira” “Buga” “Tuluá”
Ramos Sanchez Rios
Votos
Slide 84
EISC
Universidad del Valle
MATRICES
Sedes
Arreglos a utilizar
Candidatos
500 400 300
250 150 250
200 250 100
120 200 210
“ Ivan Ramos” “Jorge Sanchez” “ José Rios”
“ Cali” “Palmira” “Buga” “Tuluá”
Ramos Sanchez Rios
Cali
Palmira
Buga
Tuluá
Votos
Slide 85
EISC
Universidad del Valle
public class votaciones{
public static void main (String a[]){
String candidatos[], sedes[];
int votos[][], fil, col;
JTextArea area= new JTextArea(15, 30);;
JScrollPane scroll = new JScrollPane(area);
fil = Integer.parseInt(JOptionPane.showInputDialog
("Ingrese el número de sedes:"));
sedes = new String[fil];
for (int x = 0; x < fil; x++){
sedes[x] = JOptionPane.showInputDialog("Sede No
:"+(x+1));
}
ARREGLOS BIDIMENSIONALES
Slide 86
EISC
Universidad del Valle
col = Integer.parseIntJOptionPane.showInputDialog(
"Ingrese el número de candidatos:"));
candidatos = new String[col];
for (int x = 0; x < col; x++){
candidatos[x] = JOptionPane.showInputDialog("Nombre del
Candidato No :"+(x+1));
}
votos = new int[fil][col];
for (int x = 0; x < fil; x++){
for (int y = 0; y < col; y++){
votos[x][y] = Integer.parseInt(JOptionPane.
showInputDialog("Ingrese los votos de la sede
" +sedes[x]+ "para el candidato" +candidatos[y]));
}
}
ARREGLOS BIDIMENSIONALES
Slide 87
EISC
Universidad del Valle
int[] totalVotos = new int[candidatos.length];
for (int y = 0; y < col; y++){
for (int x = 0; x < fil; x++){
totalVotos[y] += votos[x][y];
}
}
int max = 0;
int pos = 0;
for (int i = 0; i < totalVotos.length; i++){
if ( max < totalVotos[i] ){
max = totalVotos[i];
pos = i;
}
}
area.append("Candidato con mayoría de votos:
"+candidatos[pos]+“. Total de Votos: "+totalVotos[pos]);
}
ARREGLOS BIDIMENSIONALES
Slide 88
EISC
Universidad del Valle
for (int i = 0; i < fil; i++){
area.append("n"+sedes[i]);
for (int x = 0; x < col; x++){
area.append("n"+candidatos[x]);
area.append("t"+votos[i][x]);
}
}
JOptionPane.showMessageDialog(null, scroll);
}//fin main
}//fin clase
ARREGLOS BIDIMENSIONALES

Más contenido relacionado

PDF
Arreglos Bidimensionales - Java - NetBeans
PDF
Array en java
PPT
PPTX
S5-POO-3.1 Arreglos y Listas
PPT
Organizacion de los datos jose felix rodriguez 26632429
PDF
PDF
PPT_01_MATRIZ_TEORÍA_2024_1(1) (1).pdf...
Arreglos Bidimensionales - Java - NetBeans
Array en java
S5-POO-3.1 Arreglos y Listas
Organizacion de los datos jose felix rodriguez 26632429
PPT_01_MATRIZ_TEORÍA_2024_1(1) (1).pdf...

Similar a Desarrollo de aplicaciones con Arreglos-bi.pdf (20)

PDF
Arreglos Unidimensionales - Java - NetBeans
PPTX
Fundamentos de Programación - Unidad IV: Arreglos (Vectores)
PPT
PPSX
Bases de datos my sql
PDF
Tema 5 - Estructuras de datos.pdf
PDF
PPT DE LA SEMANA NUMERO 13 DEL CURSO PROGRAMACION TEMA MATRICECES
PPTX
14.0 Arreglo Bidimensionales.pptxdfbdfbfbsdb
PPTX
Array bidimensional
PPTX
Arrays Bidimensionales y Multidimensionales - Carlos Correa
DOCX
Xxxxxxxxxxxxxx
DOCX
Tutorial de matrices c#
DOCX
Tutorial de matrices c#
DOCX
Arreglos
DOCX
Arreglos unidad 2 semestre 2
PDF
Arreglos
PDF
Arreglos
PPT
Tema IV Arreglos
PDF
S01_ Videoconferencia.pdf
DOCX
Ejercicios de estadistica
PDF
2 vectores matrices
Arreglos Unidimensionales - Java - NetBeans
Fundamentos de Programación - Unidad IV: Arreglos (Vectores)
Bases de datos my sql
Tema 5 - Estructuras de datos.pdf
PPT DE LA SEMANA NUMERO 13 DEL CURSO PROGRAMACION TEMA MATRICECES
14.0 Arreglo Bidimensionales.pptxdfbdfbfbsdb
Array bidimensional
Arrays Bidimensionales y Multidimensionales - Carlos Correa
Xxxxxxxxxxxxxx
Tutorial de matrices c#
Tutorial de matrices c#
Arreglos
Arreglos unidad 2 semestre 2
Arreglos
Arreglos
Tema IV Arreglos
S01_ Videoconferencia.pdf
Ejercicios de estadistica
2 vectores matrices
Publicidad

Más de AnaximandroFernandez (10)

PPTX
SOBRE APLICACION DEL LENGUAJE UNIFY UNIT LANGUAJE
PDF
S06_s1 - TABLAS HASH_Aplicaciones Varias.pdf
PDF
S04_s1 - Algoritmos de Ordenación Externa_ETLGRS_GXNLIN.pdf
PDF
S05_s1 - Ordenación por inserción_FNAFQG_LAPYQG.pdf
PDF
S09_s1-Algoritmos de Búsqueda en Archivos Listas Invertidas Multilistas__BVRX...
PDF
S01 Introducción Analisis complejidad algoritmica-eficiencia-rendimiento-nota...
PDF
S09.semana01 Antes Semana09 Sesion01.pdf
PDF
Sesion7.semana01 Antes Semana07 Sesion01.pdf
DOC
Desarrollo de aplicaciones package Formularios.doc
DOCX
Aplicacion que convierte de Numeros a Letras Ok.docx
SOBRE APLICACION DEL LENGUAJE UNIFY UNIT LANGUAJE
S06_s1 - TABLAS HASH_Aplicaciones Varias.pdf
S04_s1 - Algoritmos de Ordenación Externa_ETLGRS_GXNLIN.pdf
S05_s1 - Ordenación por inserción_FNAFQG_LAPYQG.pdf
S09_s1-Algoritmos de Búsqueda en Archivos Listas Invertidas Multilistas__BVRX...
S01 Introducción Analisis complejidad algoritmica-eficiencia-rendimiento-nota...
S09.semana01 Antes Semana09 Sesion01.pdf
Sesion7.semana01 Antes Semana07 Sesion01.pdf
Desarrollo de aplicaciones package Formularios.doc
Aplicacion que convierte de Numeros a Letras Ok.docx
Publicidad

Último (20)

PDF
Tips de Seguridad para evitar clonar sus claves del portal bancario.pdf
PPTX
El uso de las TIC en la vida cotidiana..
PDF
capacitación de aire acondicionado Bgh r 410
DOCX
TRABAJO GRUPAL (5) (1).docxsjsjskskksksksks
DOCX
TRABAJO GRUPAL (5) (1).docxjsjsjskskksksk
PDF
Final Tecno .pdfjdhdjsjdhsjshshhshshshhshhhhhhh
PPTX
Diapositivas Borrador Rocha Jauregui David Paolo (3).pptx
PPTX
la-historia-de-la-medicina Edna Silva.pptx
PDF
informe_fichas1y2_corregido.docx (2) (1).pdf
DOCX
Guía 5. Test de orientación Vocacional 2.docx
PPTX
Presentación final ingenieria de metodos
PDF
Documental Beyond the Code (Dossier Presentación - 2.0)
PDF
Estrategia de apoyo valentina lopez/ 10-3
PDF
Teoría de estadística descriptiva y aplicaciones .pdf
PDF
ADMINISTRACIÓN DE ARCHIVOS - TICS (SENA).pdf
DOCX
Trabajo informatica joel torres 10-.....................
PPTX
ccna: redes de nat ipv4 stharlling cande
PPTX
ccna: redes de nat ipv4 stharlling cande
DOCX
Trabajo grupal.docxjsjsjsksjsjsskksjsjsjsj
PDF
NREN - red nacional de investigacion y educacion en LATAM y Europa: Caracteri...
Tips de Seguridad para evitar clonar sus claves del portal bancario.pdf
El uso de las TIC en la vida cotidiana..
capacitación de aire acondicionado Bgh r 410
TRABAJO GRUPAL (5) (1).docxsjsjskskksksksks
TRABAJO GRUPAL (5) (1).docxjsjsjskskksksk
Final Tecno .pdfjdhdjsjdhsjshshhshshshhshhhhhhh
Diapositivas Borrador Rocha Jauregui David Paolo (3).pptx
la-historia-de-la-medicina Edna Silva.pptx
informe_fichas1y2_corregido.docx (2) (1).pdf
Guía 5. Test de orientación Vocacional 2.docx
Presentación final ingenieria de metodos
Documental Beyond the Code (Dossier Presentación - 2.0)
Estrategia de apoyo valentina lopez/ 10-3
Teoría de estadística descriptiva y aplicaciones .pdf
ADMINISTRACIÓN DE ARCHIVOS - TICS (SENA).pdf
Trabajo informatica joel torres 10-.....................
ccna: redes de nat ipv4 stharlling cande
ccna: redes de nat ipv4 stharlling cande
Trabajo grupal.docxjsjsjsksjsjsskksjsjsjsj
NREN - red nacional de investigacion y educacion en LATAM y Europa: Caracteri...

Desarrollo de aplicaciones con Arreglos-bi.pdf

  • 2. Slide 2 EISC Universidad del Valle CONTENIDO  Arreglos Bidimensionales (matrices)  Qué son  Cómo se declaran  Cómo se insertan y leen datos  Ejemplos
  • 3. Slide 3 EISC Universidad del Valle También llamados arreglos bidimensionales Es un conjunto de datos de un mismo tipo que están almacenados en arreglos de dos dimensiones. Tienen una cantidad de filas y una cantidad de columnas MATRICES
  • 4. Slide 4 EISC Universidad del Valle También llamados arreglos bidimensionales Es un conjunto de datos de un mismo tipo que están almacenados en arreglos de dos dimensiones. Tienen una cantidad de filas y una cantidad de columnas Arreglo bidimensional con 3 filas y 4 columnas MATRICES 3.5 4.0 5.0 5.0 5.0 5.0 3.0 2.5 4.5 4.5 4.0 5.0
  • 5. Slide 5 EISC Universidad del Valle MATRICES * Al igual que los arreglos unidimensionales, los índices empiezan a partir de cero y se indican entre corchetes: [ ][ ]. El primer índice indica la fila y el segundo indica la columna.
  • 6. Slide 6 EISC Universidad del Valle 0 1 2 3 0 1 2 3.5 4.0 5.0 5.0 5.0 5.0 3.0 2.5 4.5 4.5 4.0 5.0 ARREGLOS BIDIMENSIONALES Índice para las filas Índice para las columnas
  • 7. Slide 7 EISC Universidad del Valle PARA RECORDAR… * Una matriz almacena elementos del mismo tipo. * Una matriz es de tamaño fijo (mxn). * Cada elemento se guarda en un espacio independiente. * Cada espacio se referencia con dos índices. * El primer índice referencia las filas. * El segundo índice referencia las columnas. * Los índices se empiezan a contar a partir de 0. * En una matriz de mxn sus índices irán de 0 a m-1 para las filas y de 0 a n-1 para las columnas.
  • 8. Slide 8 EISC Universidad del Valle Arreglo bidimensional 3 filas y 2 columnas Oscar Sarah Juan Diana Jhon Andrea MATRICES
  • 9. Slide 9 EISC Universidad del Valle 0 1 0 1 2 Arreglo bidimensional 3 filas y 2 columnas Oscar Sarah Juan Diana Jhon Andrea MATRICES
  • 10. Slide 10 EISC Universidad del Valle Sarah 24.8 Oscar 50.6 Kate 13.3 ¿Es posible definir la siguiente matriz? MATRICES
  • 11. Slide 11 EISC Universidad del Valle ¿Es posible definir la siguiente matriz? MATRICES
  • 12. Slide 12 EISC Universidad del Valle • Cómo definir un arreglo bidimensional (Matriz) MATRICES
  • 13. Slide 13 EISC Universidad del Valle • Cómo definir un arreglo bidimensional (Matriz) tipoDeDato nombre[ ][ ]=new tipoDeDato[m][n]; donde m es la cantidad de filas y n es la cantidad de columnas MATRICES
  • 14. Slide 14 EISC Universidad del Valle • String nombres[ ][ ]=new String[3][2]; • double notas[ ][ ]=new double[50][4]; MATRICES
  • 15. Slide 15 EISC Universidad del Valle • String nombres[ ][ ]=new String[3][2]; Arreglo bidimensional de Strings, llamado Nombres, con 3 filas y 2 columnas • double notas[ ][ ]=new double[50][4]; Arreglo bidimensional de números reales, llamado Notas, con 50 filas y 4 columnas MATRICES
  • 16. Slide 16 EISC Universidad del Valle null null null null null null nombres 0 1 0 1 2 notas 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 1 2 3 0 1 2 . . . . . 49
  • 17. Slide 17 EISC Universidad del Valle Declarando e Inicializando Se puede declarar e inicializar una matriz al igual que los vectores: Ejemplos: String nombres[ ][ ] = {{ “Oscar”, “Fonseca” }, { “John” , “Santos”}, { “Julio” , “Ruiz” }}; double notas[ ][ ] = {{ 5.0, 4.0, 5.0}, { 4.3, 4.7, 3.8}, { 2.7, 3.2, 4.0}, { 4.3, 4.7, 5.0}};
  • 18. Slide 18 EISC Universidad del Valle Declarando e Inicializando Se puede declarar e inicializar una matriz al igual que los vectores: Ejemplos: String nombres[ ][ ] = {{ “Oscar”, “Fonseca” }, { “John” , “Santos”}, { “Julio” , “Ruiz” }}; double notas[ ][ ] = {{ 5.0, 4.0, 5.0}, { 4.3, 4.7, 3.8}, { 2.7, 3.2, 4.0}, { 4.3, 4.7, 5.0}}; Matriz de reales de 4 filas y 3 columnas. Matriz de cadenas de texto de 3 filas y 2 columnas.
  • 19. Slide 19 EISC Universidad del Valle Cómo definir una matriz de enteros, con 4 filas y 3 columnas, llamada numeros MATRICES
  • 20. Slide 20 EISC Universidad del Valle Cómo definir una matriz de enteros, con 4 filas y 3 columnas, llamada numeros int numeros[ ][ ] = new int[4][3]; MATRICES
  • 21. Slide 21 EISC Universidad del Valle ¿Cómo definir este arreglo? 3104567 24 109 -1 2134231 50 201 -30 1231141 13 130 -45 3123232 40 110 -63 5645343 23 150 -70 2233424 27 170 -5 MATRICES
  • 22. Slide 22 EISC Universidad del Valle int datos[ ][ ]=new int[6][4] 3104567 24 109 -1 2134231 50 201 -30 1231141 13 130 -45 3423232 40 110 -63 5645343 23 150 -70 2233424 27 170 -5 MATRICES
  • 23. Slide 23 EISC Universidad del Valle 3.104567 24.8 2.134231 50.6 1.231141 13.3 3.423232 40.5 5.645343 23.3 2.233424 27.5 ¿Cómo definir esta matriz? MATRICES
  • 24. Slide 24 EISC Universidad del Valle 3.104567 24.8 2.134231 50.6 1.231141 13.3 3.423232 40.5 5.645343 23.3 2.233424 27.5 double nombre[ ][ ]=new double[6][2]; MATRICES
  • 25. Slide 25 EISC Universidad del Valle ¿DÓNDE ESTÁ EL ERROR? String nombres [] = new String[4][3]; int anchoLargo = new int [15][2]; double valorTiempo [][] = int [7,7]; String nombres [2][2] = {{”Oscar”,”100”}, {”Sofia”,“A”}}; String nombres [][] = {{”Oscar”,”100”} {”Sofia”,“A”}}; String refs[][] = {{“a34” “b34” “d33”}, {“cf2” “b12” “aa3”}};
  • 26. Slide 26 EISC Universidad del Valle ¿Cómo insertar datos en los arreglos bidimensionales (matrices)? MATRICES
  • 27. Slide 27 EISC Universidad del Valle ¿Cómo insertar datos en los arreglos bidimensionales? Debe indicar la posición de la fila y de la columna donde va a almacenar el dato nombreDelArreglo[posicionFila][posicionColumna]=valor; MATRICES
  • 28. Slide 28 EISC Universidad del Valle ¿Cómo insertar datos en los arreglos bidimensionales? Debe indicar la posición de la fila y de la columna donde va a almacenar el dato nombres[0][0]=“Oscar”; nombres[0][1]=“Sarah”; Oscar Sarah null null null null MATRICES nombres
  • 29. Slide 29 EISC Universidad del Valle ¿Cómo insertar datos en los arreglos bidimensionales? Debe indicar la posición de la fila y de la columna donde va a almacenar el dato nombres[0][0]=“Oscar”; nombres[0][1]=“Sarah”; nombres[?][?]=“Jhon”; nombres[?][?]=“Andrea”; Oscar Sarah null null Jhon Andrea MATRICES nombres
  • 30. Slide 30 EISC Universidad del Valle ¿Cómo insertar datos en los arreglos bidimensionales? Debe indicar la posición de la fila y de la columna donde va a almacenar el dato nombres[0][0]=“Oscar”; nombres[0][1]=“Sarah”; nombres[2][0]=“Jhon”; nombres[2][1]=“Andrea”; Andrea Jhon null null Sarah Oscar MATRICES nombres
  • 31. Slide 31 EISC Universidad del Valle MATRICES ¿Dónde puede haber errores? int matriz[][] = new int [5][3]; double i; int m=6,n=3; ... matriz[0][3] = 21.2; matriz[i][n] = 90; matriz[m-1][n-1] = matriz [m][n] + 10; matriz[5][3]=matriz[n][m]; ...
  • 32. Slide 32 EISC Universidad del Valle ¿Cómo recuperar los datos de los arreglos bidimensionales? MATRICES
  • 33. Slide 33 EISC Universidad del Valle ¿Cómo recuperar los datos de los arreglos bidimensionales? Debe indicar la posición de la fila y de la columna nombreDelArreglo[posicionFila][posicionColumna] MATRICES
  • 34. Slide 34 EISC Universidad del Valle ¿Cómo recuperar datos de los arreglos bidimensionales? Debe indicar la posición de la fila y de la columna nombres[0][0] nombres[0][1] ¿Cómo obtener “Andrea”? Oscar Sarah null null Jhon Andrea MATRICES nombres
  • 35. Slide 35 EISC Universidad del Valle • Presente el conjunto de instrucciones Java para crear una matriz de 50x4 números reales. • Adicione las instrucciones necesarias para solicitar al usuario cada uno de los números • Ahora, muestre en un mensaje, todos los números MATRICES
  • 36. Slide 36 EISC Universidad del Valle • Presente el conjunto de instrucciones Java para crear una matriz de 50x4 números reales. double numeros[][]= new double[50][4]; MATRICES
  • 37. Slide 37 EISC Universidad del Valle . . . . . . . . . . . . 0 1 2 3 0 1 2 49
  • 38. Slide 38 EISC Universidad del Valle • Presente el conjunto de instrucciones Java para crear una matriz de 50x4 números reales. • Adicione las instrucciones necesarias para solicitar al usuario cada uno de los números double numeros[][]= new double[50][4]; MATRICES
  • 39. Slide 39 EISC Universidad del Valle . . . . . . . . . . . . 0 1 2 3 0 1 2 49
  • 40. Slide 40 EISC Universidad del Valle . . . . . . . . . . . . 0 1 2 3 0 1 2 49
  • 41. Slide 41 EISC Universidad del Valle double numeros[][]= new double[50][4]; numeros[0][0]=Double.parseDouble(JOptionPane.showInputDialog(“Digite un numero”)); numeros[0][1]=Double.parseDouble(JOptionPane.showInputDialog(“Digite un numero”)); numeros[0][2]=Double.parseDouble(JOptionPane.showInputDialog(“Digite un numero”)); numeros[0][3]=Double.parseDouble(JOptionPane.showInputDialog(“Digite un numero”)); MATRICES
  • 42. Slide 42 EISC Universidad del Valle . . . . . . . . . . . . 0 1 2 3 0 1 2 49
  • 43. Slide 43 EISC Universidad del Valle double numeros[][]= new double[50][4]; numeros[0][0]=Double.parseDouble(JOptionPane.showInputDialog(“Digite un numero”)); numeros[0][1]=Double.parseDouble(JOptionPane.showInputDialog(“Digite un numero”)); numeros[0][2]=Double.parseDouble(JOptionPane.showInputDialog(“Digite un numero”)); numeros[0][3]=Double.parseDouble(JOptionPane.showInputDialog(“Digite un numero”)); numeros[1][0]=Double.parseDouble(JOptionPane.showInputDialog(“Digite un numero”)); numeros[1][1]=Double.parseDouble(JOptionPane.showInputDialog(“Digite un numero”)); numeros[1][2]=Double.parseDouble(JOptionPane.showInputDialog(“Digite un numero”)); numeros[1][3]=Double.parseDouble(JOptionPane.showInputDialog(“Digite un numero”)); MATRICES
  • 44. Slide 44 EISC Universidad del Valle . . . . . . . . . . . . 0 1 2 3 0 1 2 49
  • 45. Slide 45 EISC Universidad del Valle numeros[0][0]=Double.parseDouble(JOptionPane.showInputDialog(“Digite un numero”)); numeros[0][1]=Double.parseDouble(JOptionPane.showInputDialog(“Digite un numero”)); numeros[0][2]=Double.parseDouble(JOptionPane.showInputDialog(“Digite un numero”)); numeros[0][3]=Double.parseDouble(JOptionPane.showInputDialog(“Digite un numero”)); numeros[1][0]=Double.parseDouble(JOptionPane.showInputDialog(“Digite un numero”)); numeros[1][1]=Double.parseDouble(JOptionPane.showInputDialog(“Digite un numero”)); numeros[1][2]=Double.parseDouble(JOptionPane.showInputDialog(“Digite un numero”)); numeros[1][3]=Double.parseDouble(JOptionPane.showInputDialog(“Digite un numero”)); . . . numeros[49][0]=Double.parseDouble(JOptionPane.showInputDialog(“Digite un numero”)); numeros[49][1]=Double.parseDouble(JOptionPane.showInputDialog(“Digite un numero”)); numeros[49][2]=Double.parseDouble(JOptionPane.showInputDialog(“Digite un numero”)); numeros[49][3]=Double.parseDouble(JOptionPane.showInputDialog(“Digite un numero”));
  • 46. Slide 46 EISC Universidad del Valle for (int i=0; i<=49; i=i+1){ for (int j=0; j<=3; j=j+1){ numeros[i][j]=Double.parseDouble(JOptionPane.showInputDialog(“Digite un numero en la posición ”+i+” “+j)); } }
  • 47. Slide 47 EISC Universidad del Valle for (int i=0; i<=49; i=i+1){ for (int j=0; j<=3; j=j+1){ numeros[i][j]=Double.parseDouble(JOptionPane.showInputDialog(“Digite un numero en la posición ”+i+” “+j)); } } La variable i maneja las filas. Comienzan en 0, hasta 49
  • 48. Slide 48 EISC Universidad del Valle for (int i=0; i<=49; i=i+1){ for (int j=0; j<=3; j=j+1){ numeros[i][j]=Double.parseDouble(JOptionPane.showInputDialog(“Digite un numero en la posición ”+i+” ”+j)); } } La variable j maneja las columnas. Comienzan en 0, hasta 3
  • 49. Slide 49 EISC Universidad del Valle for (int i=0; i<=49; i=i+1){ for (int j=0; j<=3; j=j+1){ numeros[i][j]=Double.parseDouble(JOptionPane.showInputDialog(“Digite un numero de la posición ”+i+” ”+j)); } } La variable j maneja las columnas. Comienzan en 0, hasta 3 Se almacena cada número decimal solicitado en la posicion i,j de la matriz
  • 50. Slide 50 EISC Universidad del Valle For(int i=?; i<=?; i=i+1){ for(intj=?; j<=?; j=j+1){ numeros[i][j]=Double.parseDouble(JOptionPane.showInputDialog(“Digite numero”)); } } . . . . . . . . . . . . 0 1 … 5 0 1 2 29 Matriz de 30x6
  • 51. Slide 51 EISC Universidad del Valle For(int i=0; i<=29; i=i+1){ for(intj=0; j<=5; j=j+1){ numeros[i][j]=Double.parseDouble(JOptionPane.showInputDialog(“Digite numero”)); } } . . . . . . . . . . . . 0 1 … 5 0 1 2 29 Matriz de 30x6
  • 52. Slide 52 EISC Universidad del Valle For(int i=?; i<=?; i=i+1){ for(intj=?; j<=?; j=j+1){ numeros[i][j]=Double.parseDouble(JOptionPane.showInputDialog(“Digite numero”)); } } 0 1 2 3 0 1 2 3 Matriz de 4x4
  • 53. Slide 53 EISC Universidad del Valle For(int i=0; i<=3; i=i+1){ for(intj=0; j<=3; j=j+1){ numeros[i][j]=Double.parseDouble(JOptionPane.showInputDialog(“Digite numero”)); } } 0 1 2 3 0 1 2 3 Matriz de 4x4
  • 54. Slide 54 EISC Universidad del Valle • Presente el conjunto de instrucciones Java para crear una matriz de 50x4 números reales. • Adicione las instrucciones necesarias para solicitar al usuario cada uno de los números • Ahora, muestre en un mensaje de texto, todos los números MATRICES
  • 55. Slide 55 EISC Universidad del Valle double numeros = new double[50][4]; for (int i=0; i<=49; i=i+1){ for (int j=0; j<=3; j=j+1){ numeros[i][j]=Double.parseDouble(JOptionPane.showInputDialog(“Digite un numero”)); } } String mensaje=“”; for (int i=0; i<=49; i=i+1){ for (int j=0; j<=3; j=j+1){ mensaje=mensaje + numeros[i][j]+” “); } mensaje+=“n”; }
  • 56. Slide 56 EISC Universidad del Valle Las matrices y el ciclo for Una matriz se procesa generalmente usando dos ciclos for anidados:
  • 57. Slide 57 EISC Universidad del Valle Las matrices y el ciclo for Una matriz se procesa generalmente usando dos ciclos for anidados:
  • 58. Slide 58 EISC Universidad del Valle Las matrices y el ciclo for b.length indica la cantidad de filas de la matriz. b[i].length indica la cantidad de columnas de la matriz.
  • 59. Slide 59 EISC Universidad del Valle Ejemplo 1: Escriba un programa en Java que solicite el código y el nombre de los estudiantes de cualquier curso y los muestre todos al final. Use una matriz para guardar los datos solicitados.
  • 60. Slide 60 EISC Universidad del Valle Ejemplo 1: Análisis * Debemos capturar los nombres de m estudiantes. por lo tanto requerimos saber el valor de m para saber cuántas filas tendrá la matriz. * La matriz tendrá dos columnas: una para el código del estudiante (String) y otra para el nombre (String). * La matriz será del tipo String y de tamaño mx2. * La salida del programa será un String que contendrá la lista numerada de los nombres de los estudiantes.
  • 61. Slide 61 EISC Universidad del Valle Ejemplo 1: Programa en Java import javax.swing.*; public class NombresCurso { static String estudiantesCurso[][]; public static void main(String[] args) { int cantEstudiantes; String salida; cantEstudiantes = Integer.parseInt( JoptionPane.showInputDialog( "Cantidad de Estudiantes:")); estudiantesCurso = new String [cantEstudiantes][2];
  • 62. Slide 62 EISC Universidad del Valle Ejemplo 1: Programa en Java for (int m=0; m < estudiantesCurso.length; m++){ estudiantesCurso[m][0]=JoptionPane.showInputDialog ("Codigo del estudiante número" + (m+1) + ":"); estudiantesCurso[m][1]=JoptionPane.showInputDialog ("Nombre del estudiante número" + (m+1) + ":"); } salida = "Estudiantes delCurso:nn" + "NúmerotCódigotNombren"; for (int m=0; m < estudiantesCurso.length; m++){ salida += (m+1) + "t"; for (int n=0; n < estudiantesCurso[m].length; n++){ salida += estudiantesCurso[m][n] + "t"; } salida += "n"; }
  • 63. Slide 63 EISC Universidad del Valle Ejemplo 1: Programa en Java //mostrar los resultados en un Area de Texto JTextArea areaSalida = new JTextArea(); JScrollPane scroll = new JScrollPane(areaSalida); areaSalida.setText( salida ); JOptionPane.showMessageDialog( null, scroll, "Resultados", JOptionPane.INFORMATION_MESSAGE ); }//Fin método main }//Fin clase
  • 64. Slide 64 EISC Universidad del Valle Ejemplo 2: Escriba un programa que lea dos matrices de mxn, calcule la suma de ellas y muestre el resultado.
  • 65. Slide 65 EISC Universidad del Valle Ejemplo 2: Programa en Java import javax.swing.*; public class SumaMatrices { static String salida=""; public static void main(String[] args) { int m, n, int a [][]; int b [][]; int c [][]; m=Integer.parseInt(JOptionPane.showInputDialog( "Número de filas de las matrices:")); n=Integer.parseInt(JOptionPane.showInputDialog( "Número de Columnas de las matrices:")); a = new int [m][n]; b = new int [m][n]; c = new int [m][n]; //Continúa…
  • 66. Slide 66 EISC Universidad del Valle Ejemplo 2: Programa en Java //Continuación método main leerMatriz(a, "Matriz A"); leerMatriz(b, "Matriz B"); calcularSuma(a,b,c); generarSalida(a, "Matriz A"); generarSalida(b, "Matriz B"); generarSalida(c, "Matriz A+B"); JTextArea areaSalida = new JTextArea(); areaSalida.setText( salida ); JOptionPane.showMessageDialog( null, areaSalida, "Suma de Matrices", JOptionPane.INFORMATION_MESSAGE ); }//fin método main
  • 67. Slide 67 EISC Universidad del Valle Ejemplo 2: Programa en Java static void leerMatriz(int matriz[][], String s){ for(int m=0; m < matriz.length; m++){ for(int n=0; n < matriz[m].length; n++){ matriz[m][n]=Integer.parseInt( JoptionPane.showInputDialog( s + ": Valor posición [" + m + "][" + n + "]:")); } } }//fin método leerMatriz
  • 68. Slide 68 EISC Universidad del Valle Ejemplo 2: Programa en Java static void calcularSuma(int a[][],int b[][],int c[][]){ for(int m=0; m < c.length; m++){ for(int n=0; n < c[m].length; n++){ c[m][n]= a[m][n] + b[m][n]; } } }//fin método calcularSuma static void generarSalida (int a[][], String titulo){ salida += titulo + ":n"; for(int m=0; m < a.length; m++){ for(int n=0; n < a[m].length; n++){ salida += a[m][n] + "t"; } salida +="n"; } salida +="n"; }//fin método generarSalida }//fin clase
  • 69. Slide 69 EISC Universidad del Valle 2 5 2 4 3 5 12 5 6 12 43 4 21 32 31 5 0 1 2 3 0 1 2 3 •Cómo mostrar en el área de texto solo los elementos de la primera fila ARREGLOS BIDIMENSIONALES
  • 70. Slide 70 EISC Universidad del Valle String salida=“”; for (int i=0; i<=3; i++){ salida=salida+ numeros[0][i] +“n”; } miArea.append(salida);
  • 71. Slide 71 EISC Universidad del Valle 2 5 2 4 3 5 12 5 6 12 43 4 21 32 31 5 0 1 2 3 0 1 2 3 •Cómo mostrar en el área de texto solo los elementos de la primera columna ARREGLOS BIDIMENSIONALES
  • 72. Slide 72 EISC Universidad del Valle 2 5 2 4 3 5 12 5 6 12 43 4 21 32 31 5 0 1 2 3 0 1 2 3 •Cómo mostrar en el área de texto los elementos de la diagonal ARREGLOS BIDIMENSIONALES
  • 73. Slide 73 EISC Universidad del Valle for (int i=0; i<=3; i++){ for (int j=0; j<=3; j++){ if (i==j){ miArea.append(“n” + numeros[i][j]); } } } De todas las posiciones, solo muestra los número, cuando la fila es igual a la columna (diagonal )
  • 74. Slide 74 EISC Universidad del Valle • Muestre la suma de todos los números en la matriz ARREGLOS BIDIMENSIONALES
  • 75. Slide 75 EISC Universidad del Valle int suma=0; for (int i=0; i<=3; i++){ for (int j=0; j<=3; j++){ suma = suma + numeros[i][j]; } } miArea.append(“n La suma es : ” + suma )
  • 76. Slide 76 EISC Universidad del Valle • Muestre la suma de los elementos de la diagonal ARREGLOS BIDIMENSIONALES
  • 77. Slide 77 EISC Universidad del Valle int suma=0; for (int i=0; i<=3; i++){ for (int j=0; j<=3; j++){ if (i==j){ suma = suma + numeros[i][j]; } } } miArea.append(“nLa suma es : ” + suma )
  • 78. Slide 78 EISC Universidad del Valle • Muestre la suma de los elementos de cada columna ARREGLOS BIDIMENSIONALES
  • 79. Slide 79 EISC Universidad del Valle 2 5 2 3 5 12 6 12 43 21 32 31 ARREGLOS BIDIMENSIONALES La suma de la columna 1 es: 32 La suma de la columna 2 es: 54 La suma de la columna 3 es: 88
  • 80. Slide 80 EISC Universidad del Valle int sumaCol; for (int col=0; col<3; col++){ sumaCol=0; for (int fil=0; fil<4; fil++){ sumaCol = sumaCol + numeros[fil][col]; } miArea.append(“nLa suma de la columna”+(col+1)+” es: ” + sumaCol); }
  • 81. Slide 81 EISC Universidad del Valle Ejercicio: Se requiere una aplicación en java para almacenar los resultados de las ultimas elecciones de rector de la universidad del Valle. Los datos deben almacenarse en una matriz donde cada fila corresponde a una sede y cada columna corresponde a un candidato. El programa debe mostrar la tabla con los nombres de las sedes y los nombres de los candidatos y cada uno de los resultados. La aplicación también debe mostrar el candidato ganador. Se debe mostrar en un JTextArea todos los valores del arreglo. ARREGLOS BIDIMENSIONALES
  • 82. Slide 82 EISC Universidad del Valle MATRICES Sedes Arreglos a utilizar Candidatos Votos 500 400 300 250 150 250 200 250 100 120 200 210 “ Ivan Ramos” “Jorge Sanchez” “ José Rios” “ Cali” “Palmira” “Buga” “Tuluá”
  • 83. Slide 83 EISC Universidad del Valle MATRICES Sedes Arreglos a utilizar Candidatos 500 400 300 250 150 250 200 250 100 120 200 210 “ Ivan Ramos” “Jorge Sanchez” “ José Rios” “ Cali” “Palmira” “Buga” “Tuluá” Ramos Sanchez Rios Votos
  • 84. Slide 84 EISC Universidad del Valle MATRICES Sedes Arreglos a utilizar Candidatos 500 400 300 250 150 250 200 250 100 120 200 210 “ Ivan Ramos” “Jorge Sanchez” “ José Rios” “ Cali” “Palmira” “Buga” “Tuluá” Ramos Sanchez Rios Cali Palmira Buga Tuluá Votos
  • 85. Slide 85 EISC Universidad del Valle public class votaciones{ public static void main (String a[]){ String candidatos[], sedes[]; int votos[][], fil, col; JTextArea area= new JTextArea(15, 30);; JScrollPane scroll = new JScrollPane(area); fil = Integer.parseInt(JOptionPane.showInputDialog ("Ingrese el número de sedes:")); sedes = new String[fil]; for (int x = 0; x < fil; x++){ sedes[x] = JOptionPane.showInputDialog("Sede No :"+(x+1)); } ARREGLOS BIDIMENSIONALES
  • 86. Slide 86 EISC Universidad del Valle col = Integer.parseIntJOptionPane.showInputDialog( "Ingrese el número de candidatos:")); candidatos = new String[col]; for (int x = 0; x < col; x++){ candidatos[x] = JOptionPane.showInputDialog("Nombre del Candidato No :"+(x+1)); } votos = new int[fil][col]; for (int x = 0; x < fil; x++){ for (int y = 0; y < col; y++){ votos[x][y] = Integer.parseInt(JOptionPane. showInputDialog("Ingrese los votos de la sede " +sedes[x]+ "para el candidato" +candidatos[y])); } } ARREGLOS BIDIMENSIONALES
  • 87. Slide 87 EISC Universidad del Valle int[] totalVotos = new int[candidatos.length]; for (int y = 0; y < col; y++){ for (int x = 0; x < fil; x++){ totalVotos[y] += votos[x][y]; } } int max = 0; int pos = 0; for (int i = 0; i < totalVotos.length; i++){ if ( max < totalVotos[i] ){ max = totalVotos[i]; pos = i; } } area.append("Candidato con mayoría de votos: "+candidatos[pos]+“. Total de Votos: "+totalVotos[pos]); } ARREGLOS BIDIMENSIONALES
  • 88. Slide 88 EISC Universidad del Valle for (int i = 0; i < fil; i++){ area.append("n"+sedes[i]); for (int x = 0; x < col; x++){ area.append("n"+candidatos[x]); area.append("t"+votos[i][x]); } } JOptionPane.showMessageDialog(null, scroll); }//fin main }//fin clase ARREGLOS BIDIMENSIONALES