SlideShare ist ein Scribd-Unternehmen logo
1 von 88
Downloaden Sie, um offline zu lesen
MATRICES

ARREGLOS BIDIMENSIONALES
CONTENIDO
Arreglos Bidimensionales (matrices)



 Qué son
 Cómo se declaran
 Cómo se insertan y leen datos

 Ejemplos

EISC
Universidad del Valle

Slide 2
MATRICES
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

EISC
Universidad del Valle

Slide 3
MATRICES

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
3.5

4.0

5.0

5.0

5.0

5.0

3.0

2.5

4.5

4.5

4.0

5.0

Arreglo bidimensional con 3 filas y 4 columnas

EISC

Universidad del Valle

Slide 4
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.

EISC
Universidad del Valle

Slide 5
ARREGLOS

BIDIMENSIONALES
Índice para las
columnas

0

1

2

3

0

3.5

4.0

5.0

5.0

1

5.0

5.0

3.0

2.5

2

4.5

4.5

4.0

5.0

Índice para las filas
EISC
Universidad del Valle

Slide 6
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.

EISC
Universidad del Valle

Slide 7
MATRICES
Oscar

Sarah

Juan

Diana

Jhon

Andrea

Arreglo bidimensional 3 filas y 2 columnas

EISC
Universidad del Valle

Slide 8
MATRICES

0

0
Oscar

1
Sarah

1

Juan

Diana

2

Jhon

Andrea

Arreglo bidimensional 3 filas y 2 columnas

EISC
Universidad del Valle

Slide 9
MATRICES
¿Es posible definir la siguiente matriz?

Sarah

24.8

Oscar

50.6

Kate

13.3

EISC
Universidad del Valle

Slide 10
MATRICES
¿Es posible definir la siguiente matriz?

EISC
Universidad del Valle

Slide 11
MATRICES
•

Cómo definir un arreglo bidimensional (Matriz)

EISC
Universidad del Valle

Slide 12
MATRICES
•

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

EISC
Universidad del Valle

Slide 13
MATRICES
•

String nombres[ ][ ]=new String[3][2];

•

double notas[ ][ ]=new double[50][4];

EISC
Universidad del Valle

Slide 14
MATRICES
•

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

EISC
Universidad del Valle

Slide 15
nombres

0

1

0

null

null

1

null

null

2

null

null

0

2

0

0.0

0.0

0.0

0.0

1

0.0

0.0

0.0

0.0

2
0.0
.
.
.
.
.
49 0.0

notas

1

3

0.0

0.0

0.0

0.0

0.0

0.0

EISC
Universidad del Valle

Slide 16
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}};
EISC
Universidad del Valle

Slide 17
Declarando e Inicializando
Se puede declarar e inicializar una matriz al igual que
los vectores:

Ejemplos:
String nombres[ ][ ] = {{ “Oscar”, “Fonseca” },
{ “John” , “Santos”}, Matriz de cadenas
{ “Julio” , “Ruiz” }}; de texto de 3 filas
y 2 columnas.

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.

EISC
Universidad del Valle

Slide 18
MATRICES
Cómo definir una matriz de enteros, con 4 filas y
3 columnas, llamada numeros

EISC
Universidad del Valle

Slide 19
MATRICES
Cómo definir una matriz de enteros, con 4 filas y
3 columnas, llamada numeros

int numeros[ ][ ] = new int[4][3];

EISC
Universidad del Valle

Slide 20
MATRICES
3104567

24

109

-1

2134231

50

201

-30

1231141

13

130

-45

3123232

40

110

-63

5645343

23

150

-70

2233424

27

170

-5

¿Cómo definir este arreglo?
EISC
Universidad del Valle

Slide 21
MATRICES
3104567

24

109

-1

2134231

50

201

-30

1231141

13

130

-45

3423232

40

110

-63

5645343

23

150

-70

2233424

27

170

-5

int datos[ ][ ]=new int[6][4]
EISC
Universidad del Valle

Slide 22
MATRICES
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?
EISC
Universidad del Valle

Slide 23
MATRICES
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];
EISC
Universidad del Valle

Slide 24
¿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”}};
EISC
Universidad del Valle

Slide 25
MATRICES
¿Cómo insertar datos en los arreglos bidimensionales
(matrices)?

EISC
Universidad del Valle

Slide 26
MATRICES
¿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;

EISC
Universidad del Valle

Slide 27
MATRICES
¿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

nombres[0][0]=“Oscar”;

Oscar

Sarah

nombres[0][1]=“Sarah”;

null

null

null

null

EISC
Universidad del Valle

Slide 28
MATRICES
¿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

nombres[0][0]=“Oscar”;

Oscar

Sarah

nombres[0][1]=“Sarah”;

null

null

nombres[?][?]=“Jhon”;

Jhon

Andrea

nombres[?][?]=“Andrea”;
EISC
Universidad del Valle

Slide 29
MATRICES
¿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

nombres[0][0]=“Oscar”;

Oscar

Sarah

nombres[0][1]=“Sarah”;

null

null

nombres[2][0]=“Jhon”;

Jhon

Andrea

nombres[2][1]=“Andrea”;
EISC
Universidad del Valle

Slide 30
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];
...

EISC
Universidad del Valle

Slide 31
MATRICES
¿Cómo recuperar los datos de los arreglos bidimensionales?

EISC
Universidad del Valle

Slide 32
MATRICES
¿Cómo recuperar los datos de los arreglos
bidimensionales?

Debe indicar la posición de la fila y de la columna

nombreDelArreglo[posicionFila][posicionColumna]

EISC
Universidad del Valle

Slide 33
MATRICES
¿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”?

nombres

Oscar

Sarah

null

null

Jhon

Andrea

EISC
Universidad del Valle

Slide 34
MATRICES
•

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

EISC
Universidad del Valle

Slide 35
MATRICES
•

Presente el conjunto de instrucciones Java para
crear una matriz de 50x4 números reales.
double numeros[][]= new double[50][4];

EISC
Universidad del Valle

Slide 36
0

1

2

3

...

...

0
1
2

...

...

49

EISC
Universidad del Valle

Slide 37
MATRICES
•

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];

EISC
Universidad del Valle

Slide 38
0

1

2

3

...

...

0
1
2

...

...

49

EISC
Universidad del Valle

Slide 39
0

1

2

3

...

...

0
1
2

...

...

49

EISC
Universidad del Valle

Slide 40
MATRICES
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”));

EISC
Universidad del Valle

Slide 41
0

1

2

3

...

...

0
1
2

...

...

49

EISC
Universidad del Valle

Slide 42
MATRICES
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”));
EISC
Universidad del Valle

Slide 43
0

1

2

3

...

...

0
1
2

...

...

49

EISC
Universidad del Valle

Slide 44
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”));
EISC
Universidad del Valle

Slide 45
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));

}
}

EISC
Universidad del Valle

Slide 46
for (int i=0; i<=49; i=i+1){
for (int j=0; j<=3; j=j+1){

La variable i maneja las filas.
Comienzan en 0, hasta 49

numeros[i][j]=Double.parseDouble(JOptionPane.showInputDialog(“Digite un numero en
la posición ”+i+” “+j));
}
}

EISC
Universidad del Valle

Slide 47
for (int i=0; i<=49; i=i+1){
for (int j=0; j<=3; j=j+1){

La variable j maneja las columnas.
Comienzan en 0, hasta 3

numeros[i][j]=Double.parseDouble(JOptionPane.showInputDialog(“Digite un numero en
la posición ”+i+” ”+j));
}
}

EISC
Universidad del Valle

Slide 48
for (int i=0; i<=49; i=i+1){
for (int j=0; j<=3; j=j+1){

La variable j maneja las columnas.
Comienzan en 0, hasta 3

numeros[i][j]=Double.parseDouble(JOptionPane.showInputDialog(“Digite un numero de
la posición ”+i+” ”+j));
}
}

Se almacena cada número
decimal solicitado en la
posicion i,j de la matriz

EISC
Universidad del Valle

Slide 49
Matriz de 30x6
0

1

…

5

0
1
2

...

.

..

...

.

..

29

For(int i=?; i<=?; i=i+1){
for(intj=?; j<=?; j=j+1){
numeros[i][j]=Double.parseDouble(JOptionPane.showInputDialog(“Digite numero”));
}
}
EISC
Universidad del Valle

Slide 50
Matriz de 30x6
0

1

…

5

0
1
2

...

.

..

...

.

..

29

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”));
}
}
EISC
Universidad del Valle

Slide 51
Matriz de 4x4
0

1

2

3

0
1
2
3

For(int i=?; i<=?; i=i+1){
for(intj=?; j<=?; j=j+1){
numeros[i][j]=Double.parseDouble(JOptionPane.showInputDialog(“Digite numero”));
}
}
EISC
Universidad del Valle

Slide 52
Matriz de 4x4
0

1

2

3

0
1
2
3

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”));
}
}
EISC
Universidad del Valle

Slide 53
MATRICES
•

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

EISC
Universidad del Valle

Slide 54
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”;
}
EISC
Universidad del Valle

Slide 55
Las matrices y el ciclo for
Una matriz se procesa generalmente usando dos
ciclos for anidados:

EISC
Universidad del Valle

Slide 56
Las matrices y el ciclo for
Una matriz se procesa generalmente usando dos
ciclos for anidados:

EISC
Universidad del Valle

Slide 57
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.

EISC
Universidad del Valle

Slide 58
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.

EISC
Universidad del Valle

Slide 59
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.
EISC
Universidad del Valle

Slide 60
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];

EISC
Universidad del Valle

Slide 61
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";
}
EISC
Universidad del Valle

Slide 62
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

EISC
Universidad del Valle

Slide 63
Ejemplo 2:
Escriba un programa que lea dos matrices de mxn,
calcule la suma de ellas y muestre el resultado.

EISC
Universidad del Valle

Slide 64
Ejemplo 2: Programa en Java
import javax.swing.*;

public class SumaMatrices {
static String salida="";
public static void main(String[] args) {
int
int
int
int

m, n,
a [][];
b [][];
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…
EISC
Universidad del Valle

Slide 65
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

EISC
Universidad del Valle

Slide 66
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

EISC
Universidad del Valle

Slide 67
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
EISC
Universidad del Valle

Slide 68
ARREGLOS

BIDIMENSIONALES

0

1

2

3

0

2

5

2

4

1

3

5

12

5

2

6

12

43

4

3

21

32

31

5

•Cómo mostrar en el área de texto
solo los elementos de la primera fila
EISC
Universidad del Valle

Slide 69
String salida=“”;
for (int i=0; i<=3; i++){
salida=salida+ numeros[0][i] +“n”;
}
miArea.append(salida);

EISC
Universidad del Valle

Slide 70
ARREGLOS

BIDIMENSIONALES

0

1

2

3

0

2

5

2

4

1

3

5

12

5

2

6

12

43

4

3

21

32

31

5

•Cómo mostrar en el área de texto
solo los elementos de la primera
columna
EISC
Universidad del Valle

Slide 71
ARREGLOS

BIDIMENSIONALES

0

1

2

3

0

2

5

2

4

1

3

5

12

5

2

6

12

43

4

3

21

32

31

5

•Cómo mostrar en el área de texto
los elementos de la diagonal 
EISC
Universidad del Valle

Slide 72
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 )

EISC
Universidad del Valle

Slide 73
ARREGLOS

BIDIMENSIONALES

• Muestre la suma de todos los números en la matriz

EISC
Universidad del Valle

Slide 74
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 )

EISC
Universidad del Valle

Slide 75
ARREGLOS

BIDIMENSIONALES

• Muestre la suma de los elementos de la diagonal 

EISC
Universidad del Valle

Slide 76
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 )

EISC
Universidad del Valle

Slide 77
ARREGLOS

BIDIMENSIONALES

• Muestre la suma de los elementos de cada columna

EISC
Universidad del Valle

Slide 78
ARREGLOS
2
3
6
21

5
5
12
32

BIDIMENSIONALES

2
12
43
31

La suma de la columna 1 es: 32
La suma de la columna 2 es: 54
La suma de la columna 3 es: 88

EISC
Universidad del Valle

Slide 79
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);

}

EISC
Universidad del Valle

Slide 80
ARREGLOS

BIDIMENSIONALES

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.

EISC
Universidad del Valle

Slide 81
MATRICES
Arreglos a utilizar
Candidatos

Sedes

“ Ivan Ramos”

“ Cali”

“Jorge Sanchez”

“Palmira”

“Buga”

500

400

150

250

200

250

100

120

200

“Tuluá”

300

250

“ José Rios”

210
Votos

EISC
Universidad del Valle

Slide 82
MATRICES
Arreglos a utilizar
Candidatos

Sedes

“ Ivan Ramos”

“ Cali”

“Jorge Sanchez”

“Palmira”

Ramos

“ José Rios”

“Buga”

Sanchez

“Tuluá”

Rios

500

400

300

250

150

250

200

250

100

120

200

210
Votos

EISC
Universidad del Valle

Slide 83
MATRICES
Arreglos a utilizar
Candidatos

Sedes

“ Ivan Ramos”

“ Cali”

“Jorge Sanchez”

“Palmira”

Ramos

“ José Rios”

“Buga”

Sanchez

“Tuluá”

Rios

500

400

300

Palmira

250

150

250

Buga

200

250

100

Tuluá

120

200

210

Cali

Votos
EISC
Universidad del Valle

Slide 84
ARREGLOS BIDIMENSIONALES
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));
}
EISC
Universidad del Valle

Slide 85
ARREGLOS BIDIMENSIONALES
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]));
}
}
EISC
Universidad del Valle

Slide 86
ARREGLOS BIDIMENSIONALES
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]);
}
EISC
Universidad del Valle

Slide 87
ARREGLOS BIDIMENSIONALES
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

EISC
Universidad del Valle

Slide 88

Weitere ähnliche Inhalte

Was ist angesagt?

Metodos de-ordenamiento
Metodos de-ordenamientoMetodos de-ordenamiento
Metodos de-ordenamientodeff000001
 
Ejercicios resueltos de programacion
Ejercicios resueltos de programacionEjercicios resueltos de programacion
Ejercicios resueltos de programacionJaime amambal
 
Estructura de Datos - Unidad 5 metodos de ordenamiento
Estructura de Datos - Unidad 5 metodos de ordenamientoEstructura de Datos - Unidad 5 metodos de ordenamiento
Estructura de Datos - Unidad 5 metodos de ordenamientoJosé Antonio Sandoval Acosta
 
Comandos ddl y dml
Comandos ddl y dmlComandos ddl y dml
Comandos ddl y dmlGerardo
 
Introducción a los modelos de datos
Introducción a los modelos de datosIntroducción a los modelos de datos
Introducción a los modelos de datosGalo Anzules
 
Diccionario de datos
Diccionario de datosDiccionario de datos
Diccionario de datosJorge Garcia
 
Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Giancarlo Aguilar
 
Comandos básicos para bases de datos mysql y workbench
Comandos básicos para bases de datos mysql y workbenchComandos básicos para bases de datos mysql y workbench
Comandos básicos para bases de datos mysql y workbenchRobedgar MX
 
Arboles - estructura de datos
Arboles - estructura de datos Arboles - estructura de datos
Arboles - estructura de datos Kaneki04
 
Metodos de ordenacion radix sort
Metodos de ordenacion radix sortMetodos de ordenacion radix sort
Metodos de ordenacion radix sorttephyfree
 
Cuadro sinóptico estructuras de datos y su clasificación
Cuadro sinóptico   estructuras de datos y su clasificaciónCuadro sinóptico   estructuras de datos y su clasificación
Cuadro sinóptico estructuras de datos y su clasificaciónAlex Uhu Colli
 
Conceptos de POO (Programacion Orientada a Objetos)
Conceptos de POO (Programacion Orientada a Objetos)Conceptos de POO (Programacion Orientada a Objetos)
Conceptos de POO (Programacion Orientada a Objetos)Josue Lara Reyes
 
Principios electricos y aplicaciones digitalesl sesion 1
Principios electricos y aplicaciones digitalesl sesion 1Principios electricos y aplicaciones digitalesl sesion 1
Principios electricos y aplicaciones digitalesl sesion 1Rodolfo Alcantara Rosales
 
Método de ordenamiento por selección (selection sort
Método de ordenamiento por selección (selection sortMétodo de ordenamiento por selección (selection sort
Método de ordenamiento por selección (selection sortlinkinpark03
 

Was ist angesagt? (20)

Metodos de-ordenamiento
Metodos de-ordenamientoMetodos de-ordenamiento
Metodos de-ordenamiento
 
Ejercicios resueltos de programacion
Ejercicios resueltos de programacionEjercicios resueltos de programacion
Ejercicios resueltos de programacion
 
Arreglos de registros
Arreglos de registros Arreglos de registros
Arreglos de registros
 
Ejercicios del 1 al 9
Ejercicios del 1 al 9Ejercicios del 1 al 9
Ejercicios del 1 al 9
 
Estructura de Datos - Unidad 5 metodos de ordenamiento
Estructura de Datos - Unidad 5 metodos de ordenamientoEstructura de Datos - Unidad 5 metodos de ordenamiento
Estructura de Datos - Unidad 5 metodos de ordenamiento
 
TRIGGERS O DISPARADORES
TRIGGERS O DISPARADORESTRIGGERS O DISPARADORES
TRIGGERS O DISPARADORES
 
Comandos ddl y dml
Comandos ddl y dmlComandos ddl y dml
Comandos ddl y dml
 
Introducción a los modelos de datos
Introducción a los modelos de datosIntroducción a los modelos de datos
Introducción a los modelos de datos
 
Diccionario de datos
Diccionario de datosDiccionario de datos
Diccionario de datos
 
Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.
 
Comandos básicos para bases de datos mysql y workbench
Comandos básicos para bases de datos mysql y workbenchComandos básicos para bases de datos mysql y workbench
Comandos básicos para bases de datos mysql y workbench
 
Arboles - estructura de datos
Arboles - estructura de datos Arboles - estructura de datos
Arboles - estructura de datos
 
arreglos y matrices
arreglos  y matricesarreglos  y matrices
arreglos y matrices
 
Metodos de ordenacion radix sort
Metodos de ordenacion radix sortMetodos de ordenacion radix sort
Metodos de ordenacion radix sort
 
Cuadro sinóptico estructuras de datos y su clasificación
Cuadro sinóptico   estructuras de datos y su clasificaciónCuadro sinóptico   estructuras de datos y su clasificación
Cuadro sinóptico estructuras de datos y su clasificación
 
Matrices en java
Matrices en javaMatrices en java
Matrices en java
 
Conceptos de POO (Programacion Orientada a Objetos)
Conceptos de POO (Programacion Orientada a Objetos)Conceptos de POO (Programacion Orientada a Objetos)
Conceptos de POO (Programacion Orientada a Objetos)
 
Principios electricos y aplicaciones digitalesl sesion 1
Principios electricos y aplicaciones digitalesl sesion 1Principios electricos y aplicaciones digitalesl sesion 1
Principios electricos y aplicaciones digitalesl sesion 1
 
Procedimientos almacenados
Procedimientos almacenadosProcedimientos almacenados
Procedimientos almacenados
 
Método de ordenamiento por selección (selection sort
Método de ordenamiento por selección (selection sortMétodo de ordenamiento por selección (selection sort
Método de ordenamiento por selección (selection sort
 

Ähnlich wie Matrices Java (20)

17 arreglos bidimensionales java
17 arreglos bidimensionales java17 arreglos bidimensionales java
17 arreglos bidimensionales java
 
Array en java
Array en javaArray en java
Array en java
 
Organizacion de los datos jose felix rodriguez 26632429
Organizacion de los datos jose felix rodriguez 26632429Organizacion de los datos jose felix rodriguez 26632429
Organizacion de los datos jose felix rodriguez 26632429
 
Arrays Bidimensionales y Multidimensionales - Carlos Correa
Arrays Bidimensionales y Multidimensionales - Carlos CorreaArrays Bidimensionales y Multidimensionales - Carlos Correa
Arrays Bidimensionales y Multidimensionales - Carlos Correa
 
11°letra
11°letra11°letra
11°letra
 
ED
EDED
ED
 
Razonamie..
Razonamie..Razonamie..
Razonamie..
 
Array bidimensional
Array bidimensionalArray bidimensional
Array bidimensional
 
Fundamentos de Programación - Unidad IV: Arreglos (Vectores)
Fundamentos de Programación - Unidad IV: Arreglos (Vectores)Fundamentos de Programación - Unidad IV: Arreglos (Vectores)
Fundamentos de Programación - Unidad IV: Arreglos (Vectores)
 
Estadística con Lenguaje R: Sesión 3
Estadística con Lenguaje R: Sesión 3Estadística con Lenguaje R: Sesión 3
Estadística con Lenguaje R: Sesión 3
 
11_Matrices.pptx
11_Matrices.pptx11_Matrices.pptx
11_Matrices.pptx
 
S5-Arreglos
S5-ArreglosS5-Arreglos
S5-Arreglos
 
S5-POO-3.1 Arreglos y Listas
S5-POO-3.1 Arreglos y ListasS5-POO-3.1 Arreglos y Listas
S5-POO-3.1 Arreglos y Listas
 
Tutorial de matrices c#
Tutorial de matrices c#Tutorial de matrices c#
Tutorial de matrices c#
 
Tutorial de matrices c#
Tutorial de matrices c#Tutorial de matrices c#
Tutorial de matrices c#
 
Xxxxxxxxxxxxxx
XxxxxxxxxxxxxxXxxxxxxxxxxxxx
Xxxxxxxxxxxxxx
 
Trabajo de computacion .pptx
Trabajo de computacion .pptxTrabajo de computacion .pptx
Trabajo de computacion .pptx
 
Numeracion 12
Numeracion 12Numeracion 12
Numeracion 12
 
Numeracion 12
Numeracion 12Numeracion 12
Numeracion 12
 
Matrices
MatricesMatrices
Matrices
 

Mehr von Daniel Gómez

Distribuciones de Probabilidad (Variable Aleatoria Continua)
Distribuciones de Probabilidad (Variable Aleatoria Continua)Distribuciones de Probabilidad (Variable Aleatoria Continua)
Distribuciones de Probabilidad (Variable Aleatoria Continua)Daniel Gómez
 
Distribución Probabilidad (Variable Aleatoria Discreta)
Distribución Probabilidad (Variable Aleatoria Discreta)Distribución Probabilidad (Variable Aleatoria Discreta)
Distribución Probabilidad (Variable Aleatoria Discreta)Daniel Gómez
 
Librería String, Math de Java (NetBeans)
Librería String, Math de Java (NetBeans)Librería String, Math de Java (NetBeans)
Librería String, Math de Java (NetBeans)Daniel Gómez
 
Ciclos Java - NetsBeans - Algoritmia
Ciclos Java - NetsBeans - AlgoritmiaCiclos Java - NetsBeans - Algoritmia
Ciclos Java - NetsBeans - AlgoritmiaDaniel Gómez
 
Métodos y Funciones - Java - Algoritmia
Métodos y Funciones - Java - AlgoritmiaMétodos y Funciones - Java - Algoritmia
Métodos y Funciones - Java - AlgoritmiaDaniel Gómez
 
Estructuras de Control - Algoritmia
Estructuras de Control - AlgoritmiaEstructuras de Control - Algoritmia
Estructuras de Control - AlgoritmiaDaniel Gómez
 
Concepto Básicos Algoritmia
Concepto Básicos Algoritmia Concepto Básicos Algoritmia
Concepto Básicos Algoritmia Daniel Gómez
 
Intro. Lenguaje de Programación Java - Algoritmia
Intro. Lenguaje de Programación Java - AlgoritmiaIntro. Lenguaje de Programación Java - Algoritmia
Intro. Lenguaje de Programación Java - AlgoritmiaDaniel Gómez
 
Estudio Comparativo de dos Coagulantes para el Tratamiento de Lixiviados, en ...
Estudio Comparativo de dos Coagulantes para el Tratamiento de Lixiviados, en ...Estudio Comparativo de dos Coagulantes para el Tratamiento de Lixiviados, en ...
Estudio Comparativo de dos Coagulantes para el Tratamiento de Lixiviados, en ...Daniel Gómez
 
Coagulación - Floculación - Sedimentación Lixiviados
Coagulación - Floculación - Sedimentación LixiviadosCoagulación - Floculación - Sedimentación Lixiviados
Coagulación - Floculación - Sedimentación LixiviadosDaniel Gómez
 
Tratamiento Lixiviados por Coagulación-Floculación-Sedimentación
Tratamiento Lixiviados por Coagulación-Floculación-SedimentaciónTratamiento Lixiviados por Coagulación-Floculación-Sedimentación
Tratamiento Lixiviados por Coagulación-Floculación-SedimentaciónDaniel Gómez
 

Mehr von Daniel Gómez (14)

Distribuciones de Probabilidad (Variable Aleatoria Continua)
Distribuciones de Probabilidad (Variable Aleatoria Continua)Distribuciones de Probabilidad (Variable Aleatoria Continua)
Distribuciones de Probabilidad (Variable Aleatoria Continua)
 
Distribución Probabilidad (Variable Aleatoria Discreta)
Distribución Probabilidad (Variable Aleatoria Discreta)Distribución Probabilidad (Variable Aleatoria Discreta)
Distribución Probabilidad (Variable Aleatoria Discreta)
 
Probabilidad
Probabilidad Probabilidad
Probabilidad
 
Librería String, Math de Java (NetBeans)
Librería String, Math de Java (NetBeans)Librería String, Math de Java (NetBeans)
Librería String, Math de Java (NetBeans)
 
Ciclos Java - NetsBeans - Algoritmia
Ciclos Java - NetsBeans - AlgoritmiaCiclos Java - NetsBeans - Algoritmia
Ciclos Java - NetsBeans - Algoritmia
 
Métodos y Funciones - Java - Algoritmia
Métodos y Funciones - Java - AlgoritmiaMétodos y Funciones - Java - Algoritmia
Métodos y Funciones - Java - Algoritmia
 
Estructuras de Control - Algoritmia
Estructuras de Control - AlgoritmiaEstructuras de Control - Algoritmia
Estructuras de Control - Algoritmia
 
Concepto Básicos Algoritmia
Concepto Básicos Algoritmia Concepto Básicos Algoritmia
Concepto Básicos Algoritmia
 
Intro. Lenguaje de Programación Java - Algoritmia
Intro. Lenguaje de Programación Java - AlgoritmiaIntro. Lenguaje de Programación Java - Algoritmia
Intro. Lenguaje de Programación Java - Algoritmia
 
Estudio Comparativo de dos Coagulantes para el Tratamiento de Lixiviados, en ...
Estudio Comparativo de dos Coagulantes para el Tratamiento de Lixiviados, en ...Estudio Comparativo de dos Coagulantes para el Tratamiento de Lixiviados, en ...
Estudio Comparativo de dos Coagulantes para el Tratamiento de Lixiviados, en ...
 
Coagulación - Floculación - Sedimentación Lixiviados
Coagulación - Floculación - Sedimentación LixiviadosCoagulación - Floculación - Sedimentación Lixiviados
Coagulación - Floculación - Sedimentación Lixiviados
 
Carbohidratos
CarbohidratosCarbohidratos
Carbohidratos
 
Carbo3
Carbo3Carbo3
Carbo3
 
Tratamiento Lixiviados por Coagulación-Floculación-Sedimentación
Tratamiento Lixiviados por Coagulación-Floculación-SedimentaciónTratamiento Lixiviados por Coagulación-Floculación-Sedimentación
Tratamiento Lixiviados por Coagulación-Floculación-Sedimentación
 

Matrices Java

  • 2. CONTENIDO Arreglos Bidimensionales (matrices)   Qué son  Cómo se declaran  Cómo se insertan y leen datos  Ejemplos EISC Universidad del Valle Slide 2
  • 3. MATRICES 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 EISC Universidad del Valle Slide 3
  • 4. MATRICES 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 3.5 4.0 5.0 5.0 5.0 5.0 3.0 2.5 4.5 4.5 4.0 5.0 Arreglo bidimensional con 3 filas y 4 columnas EISC Universidad del Valle Slide 4
  • 5. 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. EISC Universidad del Valle Slide 5
  • 7. 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. EISC Universidad del Valle Slide 7
  • 8. MATRICES Oscar Sarah Juan Diana Jhon Andrea Arreglo bidimensional 3 filas y 2 columnas EISC Universidad del Valle Slide 8
  • 9. MATRICES 0 0 Oscar 1 Sarah 1 Juan Diana 2 Jhon Andrea Arreglo bidimensional 3 filas y 2 columnas EISC Universidad del Valle Slide 9
  • 10. MATRICES ¿Es posible definir la siguiente matriz? Sarah 24.8 Oscar 50.6 Kate 13.3 EISC Universidad del Valle Slide 10
  • 11. MATRICES ¿Es posible definir la siguiente matriz? EISC Universidad del Valle Slide 11
  • 12. MATRICES • Cómo definir un arreglo bidimensional (Matriz) EISC Universidad del Valle Slide 12
  • 13. MATRICES • 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 EISC Universidad del Valle Slide 13
  • 14. MATRICES • String nombres[ ][ ]=new String[3][2]; • double notas[ ][ ]=new double[50][4]; EISC Universidad del Valle Slide 14
  • 15. MATRICES • 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 EISC Universidad del Valle Slide 15
  • 17. 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}}; EISC Universidad del Valle Slide 17
  • 18. Declarando e Inicializando Se puede declarar e inicializar una matriz al igual que los vectores: Ejemplos: String nombres[ ][ ] = {{ “Oscar”, “Fonseca” }, { “John” , “Santos”}, Matriz de cadenas { “Julio” , “Ruiz” }}; de texto de 3 filas y 2 columnas. 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. EISC Universidad del Valle Slide 18
  • 19. MATRICES Cómo definir una matriz de enteros, con 4 filas y 3 columnas, llamada numeros EISC Universidad del Valle Slide 19
  • 20. MATRICES Cómo definir una matriz de enteros, con 4 filas y 3 columnas, llamada numeros int numeros[ ][ ] = new int[4][3]; EISC Universidad del Valle Slide 20
  • 25. ¿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”}}; EISC Universidad del Valle Slide 25
  • 26. MATRICES ¿Cómo insertar datos en los arreglos bidimensionales (matrices)? EISC Universidad del Valle Slide 26
  • 27. MATRICES ¿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; EISC Universidad del Valle Slide 27
  • 28. MATRICES ¿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 nombres[0][0]=“Oscar”; Oscar Sarah nombres[0][1]=“Sarah”; null null null null EISC Universidad del Valle Slide 28
  • 29. MATRICES ¿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 nombres[0][0]=“Oscar”; Oscar Sarah nombres[0][1]=“Sarah”; null null nombres[?][?]=“Jhon”; Jhon Andrea nombres[?][?]=“Andrea”; EISC Universidad del Valle Slide 29
  • 30. MATRICES ¿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 nombres[0][0]=“Oscar”; Oscar Sarah nombres[0][1]=“Sarah”; null null nombres[2][0]=“Jhon”; Jhon Andrea nombres[2][1]=“Andrea”; EISC Universidad del Valle Slide 30
  • 31. 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]; ... EISC Universidad del Valle Slide 31
  • 32. MATRICES ¿Cómo recuperar los datos de los arreglos bidimensionales? EISC Universidad del Valle Slide 32
  • 33. MATRICES ¿Cómo recuperar los datos de los arreglos bidimensionales? Debe indicar la posición de la fila y de la columna nombreDelArreglo[posicionFila][posicionColumna] EISC Universidad del Valle Slide 33
  • 34. MATRICES ¿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”? nombres Oscar Sarah null null Jhon Andrea EISC Universidad del Valle Slide 34
  • 35. MATRICES • 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 EISC Universidad del Valle Slide 35
  • 36. MATRICES • Presente el conjunto de instrucciones Java para crear una matriz de 50x4 números reales. double numeros[][]= new double[50][4]; EISC Universidad del Valle Slide 36
  • 38. MATRICES • 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]; EISC Universidad del Valle Slide 38
  • 41. MATRICES 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”)); EISC Universidad del Valle Slide 41
  • 43. MATRICES 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”)); EISC Universidad del Valle Slide 43
  • 45. 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”)); EISC Universidad del Valle Slide 45
  • 46. 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)); } } EISC Universidad del Valle Slide 46
  • 47. for (int i=0; i<=49; i=i+1){ for (int j=0; j<=3; j=j+1){ La variable i maneja las filas. Comienzan en 0, hasta 49 numeros[i][j]=Double.parseDouble(JOptionPane.showInputDialog(“Digite un numero en la posición ”+i+” “+j)); } } EISC Universidad del Valle Slide 47
  • 48. for (int i=0; i<=49; i=i+1){ for (int j=0; j<=3; j=j+1){ La variable j maneja las columnas. Comienzan en 0, hasta 3 numeros[i][j]=Double.parseDouble(JOptionPane.showInputDialog(“Digite un numero en la posición ”+i+” ”+j)); } } EISC Universidad del Valle Slide 48
  • 49. for (int i=0; i<=49; i=i+1){ for (int j=0; j<=3; j=j+1){ La variable j maneja las columnas. Comienzan en 0, hasta 3 numeros[i][j]=Double.parseDouble(JOptionPane.showInputDialog(“Digite un numero de la posición ”+i+” ”+j)); } } Se almacena cada número decimal solicitado en la posicion i,j de la matriz EISC Universidad del Valle Slide 49
  • 50. Matriz de 30x6 0 1 … 5 0 1 2 ... . .. ... . .. 29 For(int i=?; i<=?; i=i+1){ for(intj=?; j<=?; j=j+1){ numeros[i][j]=Double.parseDouble(JOptionPane.showInputDialog(“Digite numero”)); } } EISC Universidad del Valle Slide 50
  • 51. Matriz de 30x6 0 1 … 5 0 1 2 ... . .. ... . .. 29 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”)); } } EISC Universidad del Valle Slide 51
  • 52. Matriz de 4x4 0 1 2 3 0 1 2 3 For(int i=?; i<=?; i=i+1){ for(intj=?; j<=?; j=j+1){ numeros[i][j]=Double.parseDouble(JOptionPane.showInputDialog(“Digite numero”)); } } EISC Universidad del Valle Slide 52
  • 53. Matriz de 4x4 0 1 2 3 0 1 2 3 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”)); } } EISC Universidad del Valle Slide 53
  • 54. MATRICES • 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 EISC Universidad del Valle Slide 54
  • 55. 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”; } EISC Universidad del Valle Slide 55
  • 56. Las matrices y el ciclo for Una matriz se procesa generalmente usando dos ciclos for anidados: EISC Universidad del Valle Slide 56
  • 57. Las matrices y el ciclo for Una matriz se procesa generalmente usando dos ciclos for anidados: EISC Universidad del Valle Slide 57
  • 58. 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. EISC Universidad del Valle Slide 58
  • 59. 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. EISC Universidad del Valle Slide 59
  • 60. 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. EISC Universidad del Valle Slide 60
  • 61. 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]; EISC Universidad del Valle Slide 61
  • 62. 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"; } EISC Universidad del Valle Slide 62
  • 63. 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 EISC Universidad del Valle Slide 63
  • 64. Ejemplo 2: Escriba un programa que lea dos matrices de mxn, calcule la suma de ellas y muestre el resultado. EISC Universidad del Valle Slide 64
  • 65. Ejemplo 2: Programa en Java import javax.swing.*; public class SumaMatrices { static String salida=""; public static void main(String[] args) { int int int int m, n, a [][]; b [][]; 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… EISC Universidad del Valle Slide 65
  • 66. 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 EISC Universidad del Valle Slide 66
  • 67. 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 EISC Universidad del Valle Slide 67
  • 68. 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 EISC Universidad del Valle Slide 68
  • 69. ARREGLOS BIDIMENSIONALES 0 1 2 3 0 2 5 2 4 1 3 5 12 5 2 6 12 43 4 3 21 32 31 5 •Cómo mostrar en el área de texto solo los elementos de la primera fila EISC Universidad del Valle Slide 69
  • 70. String salida=“”; for (int i=0; i<=3; i++){ salida=salida+ numeros[0][i] +“n”; } miArea.append(salida); EISC Universidad del Valle Slide 70
  • 71. ARREGLOS BIDIMENSIONALES 0 1 2 3 0 2 5 2 4 1 3 5 12 5 2 6 12 43 4 3 21 32 31 5 •Cómo mostrar en el área de texto solo los elementos de la primera columna EISC Universidad del Valle Slide 71
  • 72. ARREGLOS BIDIMENSIONALES 0 1 2 3 0 2 5 2 4 1 3 5 12 5 2 6 12 43 4 3 21 32 31 5 •Cómo mostrar en el área de texto los elementos de la diagonal EISC Universidad del Valle Slide 72
  • 73. 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 ) EISC Universidad del Valle Slide 73
  • 74. ARREGLOS BIDIMENSIONALES • Muestre la suma de todos los números en la matriz EISC Universidad del Valle Slide 74
  • 75. 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 ) EISC Universidad del Valle Slide 75
  • 76. ARREGLOS BIDIMENSIONALES • Muestre la suma de los elementos de la diagonal EISC Universidad del Valle Slide 76
  • 77. 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 ) EISC Universidad del Valle Slide 77
  • 78. ARREGLOS BIDIMENSIONALES • Muestre la suma de los elementos de cada columna EISC Universidad del Valle Slide 78
  • 79. ARREGLOS 2 3 6 21 5 5 12 32 BIDIMENSIONALES 2 12 43 31 La suma de la columna 1 es: 32 La suma de la columna 2 es: 54 La suma de la columna 3 es: 88 EISC Universidad del Valle Slide 79
  • 80. 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); } EISC Universidad del Valle Slide 80
  • 81. ARREGLOS BIDIMENSIONALES 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. EISC Universidad del Valle Slide 81
  • 82. MATRICES Arreglos a utilizar Candidatos Sedes “ Ivan Ramos” “ Cali” “Jorge Sanchez” “Palmira” “Buga” 500 400 150 250 200 250 100 120 200 “Tuluá” 300 250 “ José Rios” 210 Votos EISC Universidad del Valle Slide 82
  • 83. MATRICES Arreglos a utilizar Candidatos Sedes “ Ivan Ramos” “ Cali” “Jorge Sanchez” “Palmira” Ramos “ José Rios” “Buga” Sanchez “Tuluá” Rios 500 400 300 250 150 250 200 250 100 120 200 210 Votos EISC Universidad del Valle Slide 83
  • 84. MATRICES Arreglos a utilizar Candidatos Sedes “ Ivan Ramos” “ Cali” “Jorge Sanchez” “Palmira” Ramos “ José Rios” “Buga” Sanchez “Tuluá” Rios 500 400 300 Palmira 250 150 250 Buga 200 250 100 Tuluá 120 200 210 Cali Votos EISC Universidad del Valle Slide 84
  • 85. ARREGLOS BIDIMENSIONALES 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)); } EISC Universidad del Valle Slide 85
  • 86. ARREGLOS BIDIMENSIONALES 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])); } } EISC Universidad del Valle Slide 86
  • 87. ARREGLOS BIDIMENSIONALES 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]); } EISC Universidad del Valle Slide 87
  • 88. ARREGLOS BIDIMENSIONALES 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 EISC Universidad del Valle Slide 88