You are on page 1of 18

UNIVERSIDAD NACIONAL DE CAJAMARCA

FACULTAD DE INGENIERÍA

Algoritmos y Estructura
de Datos II
ARREGLOS

Arreglos Bidimensionales: Matrices


Suma de Matrices
Revisando conceptos

• ¿Qué tipos de estructuras


conocemos?
• ¿Cuál es la diferencia
entre un vector y una
matriz?
• ¿Qué elementos puede
contener una matriz?
• ¿Cuál es el código que
utilizamos para leer y
mostrar un vector?
• ¿De qué manera
simplificamos el código
para evitar repetirlo?
¿Cómo lo resuelvo?

• Si me piden crear un
subprograma que
encuentre la
transpuesta de una
matriz. (se obtiene
intercambiando
simplemente las filas
por columnas y
viceversa).
Logro Esperado

Al término de la sesión, el
estudiante implementa la
clase Matriz y muestra
ejemplos (clases de prueba
main, las que sean
necesarias) haciendo uso de
la nueva clase, verificando el
buen funcionamiento de
cada uno de los métodos
implementados y con un
código legible y fácil de
mantener.
Grupos de dos estudiantes.
MATRICES

Arreglos Bidimensionales
Arreglos Bidimensionales: Matrices

• Un arreglo
bidimensional, el cual a
veces se denomina tabla,
consiste de filas y
columnas de elementos.
Por ejemplo, el arreglo de 8 16 9 52
números. 3 15 27 6
• Declaración del arreglo 14 25 2 10
– int[][] m = new int[3][4];
• Del mismo modo, las
declaraciones
– double[][] voltios;
– Char[][] codigo;
Uso de los elementos del arreglo
• int temp = m[2][3];
• m[0][0] = 62;
• nuevoNum = 4 * (m[1][0] – 5);
• sumaFila0 = m[0][0] + m[0][1] + m[0][2] + m[0][3];
Inicialización de un arreglo

Int m[][] = • Un arreglo


{ {8,16,9,52}, multidimensional, en el
{3,15,27,6}, que cada fila tiene un
número distinto de
{14,25,2,10}}; columnas, puede crearse
de la siguiente manera:
• // crea 2 filas
– int[][] b = new int[ 2 ][ ];
• // crea 5 columnas para
la fila 0
– b[ 0 ] = new int[ 5 ];
• // crea 3 columnas para
la fila 1
– b[ 1 ] = new int[ 3 ];
Código java para trabajar con matrices
for (int i = 0; i < m.length; i++) {
for (int j = 0; j < m[0].length; j++) {
m[i][j] = (int) (Math.random()*10);
}
}
for (int i = 0; i < m.length; i++) {
for (int j = 0; j < m[0].length; j++) {
System.out.print(m[i][j]+"\t");
}
System.out.println();
}
Código java con subprogramas
public void generarM() {
for (int i = 0; i < m.length; i++) {
for (int j = 0; j < m[0].length; j++) {
m[i][j] = (int) (Math.random()*10);
}
}
}
public void mostrarM() {
System.out.println();
for (int i = 0; i < m.length; i++) {
for (int j = 0; j < m[0].length; j++) {
System.out.print(m[i][j]+"\t");
}
System.out.println();
}
System.out.println();
}
Llamando al procedimiento desde main
¿Cómo lo resuelvo?
public void transpuestaM(){
int[][] temp = new int[m[0].length][m.length];
for (int i=0;i<m.length;i++) {
for (int j=0;j<m[0].length;j++) {
temp[j][i]=m[i][j];
}
}
System.out.println(Arrays.deepToString(temp));
}

• Si me piden crear un subprograma


que encuentre la transpuesta de una
matriz. (se obtiene intercambiando
simplemente las filas por columnas
y viceversa).
¿QUÉ HEMOS APRENDIDO?

Evaluando lo aprendido
Preguntas de Repaso

• ¿Por qué utilizamos dos


índices para recorrer una
matriz?
• Describa la manera general
en que java permite
declarar una matriz
• ¿Puede cualquier elemento
individual de una matriz ser
usado como una variable
cualquiera?
• ¿cuál es el código java que
me permite generar y
mostrar una matriz?
 EJERCICIOS DE APLICACIÓN

Aplicando lo aprendido
Ejercicios Propuestos

• Crear una clase Matriz


que implemente
métodos que permitan
sumar y multiplicar dos
matrices

You might also like