Está en la página 1de 19

8 - Matrices

Introducción a la programación
Dimensiones de las variables
{ Variable:
 Permite almacenar un solo valor a la vez

Arreglo:
 Permite almacenar más de un valor en una misma
variable.
 Cada valor tiene un índice.
 También se le llama vector

Matrices:
 Son arreglos bidimensionales para almacenar
muchos valores.
 Cada valor tiene 2 índices.
}
Dimensiones de las variables
{  Las matrices generalmente tienen 2 
dimensiones, pero en realidad pueden
tener n dimensiones.

 “¡Ojo! No es correcto decir que tienen


infinitas dimensiones. Es mejor decir que
tiene n, ya que n es un valor finito”

}
Dimensiones de las variables
{  Otra manera de referirse a las matrices es 
“arreglo de arreglos” o “vector de
vectores”
 En algunas documentaciones esto se
llama matriz escalonada.

}
Aplicaciones comunes en
programación
{  Mapas de coordenadas
 Imágenes
 Juegos

}
Declaración
{
Tipo de dato Corchetes cuadrados
(un par por cada dimensión)

int[ ][ ] matriz;
Nombre de variable

}
Inicialización
{
Tipo de dato

matriz = new int[3][5];


Nombre de variable
Palabra
Tamaño de cada arreglo
clave
Entre corchetes cuadrados
(Uno por cada arreglo) }
Inicialización directa
{ Los valores específicos deben
ser del tipo del arreglo

Cada (sub)arreglo debe estar


agrupado por corchetes

matriz = { {2, 5} , {8, 0} , {1, 5} };


Nombre de variable Los valores específicos
se separan por comas

}
Inicialización directa (otra manera)
{ Los valores específicos
deben ser del tipo del
arreglo

int[ ] a= {2, 5};


Tipo de dato Cada arreglo es declarado
independientemente
int[ ] b = {8, 0};
int[ ] c = {1, 5}; variables específicas
Separadas por comas
int[ ][ ] x = {a, b, c}; Entre corchetes

}
Índices
{  Al igual que en los arreglos 
unidimensionales, los índices son
diferentes de los valores
 Se utiliza un par de índices para hacer
referencia a cada valor.
 Ambos valores inician en 0

}
Asignación de valores
{  Al iniciar una matriz, todos sus valores 
empiezan en el valor por defecto
correspondiente a su tipo.

 El primer índice será la fila y el segundo la


columna.
 arreglo[0][1] = 77;
 arreglo[2][1] = 88;
 arreglo[3][4] = 23;

}
Lectura de valores
{  Al iniciar una matriz, todos sus valores 
empiezan en el valor por defecto
correspondiente a su tipo.

 El primer índice será la fila y el segundo la


columna.
 int a = arreglo[0][1];
 int b = arreglo[2][1];
 int c = arreglo[3][4];

}
Tamaño de la matriz
{  Conceptualmente la matriz tiene un 
tamaño de n x m espacios.

 Sin embargo, al ser un arreglo de


arreglos, cada sub-arreglo puede tener
un tamaño diferente.

}
Tamaño de la matriz
{  arreglo.length es el tamaño del arreglo
“superior”.
 arreglo[0].length será el tamaño del
arreglo en el índice 0.
 arreglo[1].length será el tamaño del
arreglo que está en el índice 1.
 Y así.

}
Recorrer la matriz
{  Para recorrer el arreglo se necesita una
estructura for anidada.
i
 El primer for (el de afuera) se utiliza para
recorrer el arreglo “superior”. Deberá ir
desde 0 hasta arreglo.length. (Variable de
control i)

}
Recorrer la matriz
{  El segundo for (el de adentro) se usa para 
recorrer cada uno de los sub-arreglos.
Debe ir desde 0 hasta arreglo[i].Length.
(Variable de control j)

 Cada valor se puede manipular a partir de


las dos variables de control de los ciclos,
donde la primera (i) representa la fila,
mientras que la segunda representa la
columna. Así:
 Arreglo[ i ] [ j ]

}
Importante
{  Cuando tengan que hacer matrices con
dimensiones definidas por el usuario o de
forma aleatoria, asegúrense de probar
matices que tengan una cantidad
diferente de filas y de columnas, pues
muchos errores se esconden al probar
con matrices cuadradas.

}
Ejercicios guiados
{ Elabore un programa con un menú que permita
las siguientes acciones:
1. (Re)Crear una matriz de números del
tamaño que diga el usuario.
2. Ver el contenido de la matriz en un
JOption.
3. Llenar la misma matriz de números
aleatorios (sin repetir?)
4. Ver el dato de una posición de la matriz.
5. Reemplazar el valor de una posición por la
que diga el usuario.
6. Salir.
}
Si queda tiempo, pasémoslo a processing para ver como se pinta una matriz
Muchas gracias
/* Referencias:

9.15: 2D arrays in javascript - p5.Js tutorial


two-dimensional arrays – daniel shiffman

*/

También podría gustarte