![Page 1: Clase 11: Matrices · Creamos una matriz (arreglo multidimensional) de números enteros de la siguiente forma: int x [3][2] = {{31, 22},{73, 51},{26, 14}}; 0 1 0 31 22 1 73 51 2 26](https://reader034.vdocuments.co/reader034/viewer/2022050212/5f5e97d4d0b0d8541a2cfd65/html5/thumbnails/1.jpg)
Clase 11: Matrices
Profesoras de Cátedra:Pía CortésAntonia Larrañaga
![Page 2: Clase 11: Matrices · Creamos una matriz (arreglo multidimensional) de números enteros de la siguiente forma: int x [3][2] = {{31, 22},{73, 51},{26, 14}}; 0 1 0 31 22 1 73 51 2 26](https://reader034.vdocuments.co/reader034/viewer/2022050212/5f5e97d4d0b0d8541a2cfd65/html5/thumbnails/2.jpg)
¿Quiénes somos?
![Page 3: Clase 11: Matrices · Creamos una matriz (arreglo multidimensional) de números enteros de la siguiente forma: int x [3][2] = {{31, 22},{73, 51},{26, 14}}; 0 1 0 31 22 1 73 51 2 26](https://reader034.vdocuments.co/reader034/viewer/2022050212/5f5e97d4d0b0d8541a2cfd65/html5/thumbnails/3.jpg)
Pía Cortés
Soy casi Astrónoma, estoy terminando el Magíster en Astronomía en la Universidad de Chile. Estudio planetas extrasolares y programo todo el día. Me gusta leer, las hamburguesas y los gatos.
![Page 4: Clase 11: Matrices · Creamos una matriz (arreglo multidimensional) de números enteros de la siguiente forma: int x [3][2] = {{31, 22},{73, 51},{26, 14}}; 0 1 0 31 22 1 73 51 2 26](https://reader034.vdocuments.co/reader034/viewer/2022050212/5f5e97d4d0b0d8541a2cfd65/html5/thumbnails/4.jpg)
Antonia Larrañaga
Estudié Ingeniería Eléctrica en la U. de Chile. Actualmente trabajo en The Not Company, donde hacemos comida vegana a partir de inteligencia artificial. Me gusta cocinar, tejer, hacer yoga y los gatos.
![Page 5: Clase 11: Matrices · Creamos una matriz (arreglo multidimensional) de números enteros de la siguiente forma: int x [3][2] = {{31, 22},{73, 51},{26, 14}}; 0 1 0 31 22 1 73 51 2 26](https://reader034.vdocuments.co/reader034/viewer/2022050212/5f5e97d4d0b0d8541a2cfd65/html5/thumbnails/5.jpg)
Temario de la clase
1. Definición de matrices
2. Ejemplos con matrices
3. Transpuesta de una matriz
![Page 6: Clase 11: Matrices · Creamos una matriz (arreglo multidimensional) de números enteros de la siguiente forma: int x [3][2] = {{31, 22},{73, 51},{26, 14}}; 0 1 0 31 22 1 73 51 2 26](https://reader034.vdocuments.co/reader034/viewer/2022050212/5f5e97d4d0b0d8541a2cfd65/html5/thumbnails/6.jpg)
Definición de matrices
![Page 7: Clase 11: Matrices · Creamos una matriz (arreglo multidimensional) de números enteros de la siguiente forma: int x [3][2] = {{31, 22},{73, 51},{26, 14}}; 0 1 0 31 22 1 73 51 2 26](https://reader034.vdocuments.co/reader034/viewer/2022050212/5f5e97d4d0b0d8541a2cfd65/html5/thumbnails/7.jpg)
¿Qué es una matriz?
Las matrices pueden ser descritas como arreglos de arreglos.
Permite almacenar un conjunto de datos de un mismo tipo.
0 1 2 3 4
0 31 22 13 5 45
1 73 51 8 99 2
2 26 14 91 66 82
filas
columnasParece una tabla.
![Page 8: Clase 11: Matrices · Creamos una matriz (arreglo multidimensional) de números enteros de la siguiente forma: int x [3][2] = {{31, 22},{73, 51},{26, 14}}; 0 1 0 31 22 1 73 51 2 26](https://reader034.vdocuments.co/reader034/viewer/2022050212/5f5e97d4d0b0d8541a2cfd65/html5/thumbnails/8.jpg)
¿Qué es una matriz?
1ra dim.
0 1 2 3 4
0 18 6 32 88 59
1 73 51 8 99 20
2 26 14 91 66 93
2da dim.
3ra dim.
0 1 2 3 4
0 56 47 19 4 45
1 73 51 8 99 12
2 26 14 91 66 76
0 1 2 3 4
0 31 22 13 5 45
1 73 51 8 99 2
2 26 14 91 66 82
Pueden tener más de 2 dimensiones!
0
1
2
![Page 9: Clase 11: Matrices · Creamos una matriz (arreglo multidimensional) de números enteros de la siguiente forma: int x [3][2] = {{31, 22},{73, 51},{26, 14}}; 0 1 0 31 22 1 73 51 2 26](https://reader034.vdocuments.co/reader034/viewer/2022050212/5f5e97d4d0b0d8541a2cfd65/html5/thumbnails/9.jpg)
Matrices en C++
int poblacion [4][3];
float precios [3][3];
bool disponibles[5][7];
string ciudades [20][5];
Tipo Tamaño
La matriz ciudades puede contener el nombre de
hasta 100 (20*5) ciudades!
filas cols
![Page 10: Clase 11: Matrices · Creamos una matriz (arreglo multidimensional) de números enteros de la siguiente forma: int x [3][2] = {{31, 22},{73, 51},{26, 14}}; 0 1 0 31 22 1 73 51 2 26](https://reader034.vdocuments.co/reader034/viewer/2022050212/5f5e97d4d0b0d8541a2cfd65/html5/thumbnails/10.jpg)
Matrices en C++
int calendario [5][7][12];
float precios [3][3][7];
Tipo TamañoEn calendario
podemos registrar hasta 420 (5*7*12) valores enteros.
1d 2d 3d
![Page 11: Clase 11: Matrices · Creamos una matriz (arreglo multidimensional) de números enteros de la siguiente forma: int x [3][2] = {{31, 22},{73, 51},{26, 14}}; 0 1 0 31 22 1 73 51 2 26](https://reader034.vdocuments.co/reader034/viewer/2022050212/5f5e97d4d0b0d8541a2cfd65/html5/thumbnails/11.jpg)
Matrices en C++
float precios[3][3] = {{1.5, 1.7, 1.2},{0.7, 2.3, 3.6}, {1.0, 0.5, 2.1}};
int notas[3][2][4] = {{{4,3,6,5}, {1,7,4,5}}, {{5,6,4,2}, {4,5,4,7}}, {{7,6,4,5}, {6,3,5,4}}};
string nombres [3][4] = {{“Ana”, “Maria”, “Galvez”, “Ruiz”}, {“Karen”, “Sofia”, “Bustos”, “Diaz”}, {“Lucia”, “”, “Gomez”, “Vela”}};
Tipo
Si conoces tus datos, puedes
ponerlos directamente
![Page 12: Clase 11: Matrices · Creamos una matriz (arreglo multidimensional) de números enteros de la siguiente forma: int x [3][2] = {{31, 22},{73, 51},{26, 14}}; 0 1 0 31 22 1 73 51 2 26](https://reader034.vdocuments.co/reader034/viewer/2022050212/5f5e97d4d0b0d8541a2cfd65/html5/thumbnails/12.jpg)
Operaciones con matrices
Creamos una matriz (arreglo multidimensional) de números enteros de la siguiente forma:
int x [3][2] = {{31, 22},{73, 51},{26, 14}};
0 1
0 31 22
1 73 51
2 26 14
x =
![Page 13: Clase 11: Matrices · Creamos una matriz (arreglo multidimensional) de números enteros de la siguiente forma: int x [3][2] = {{31, 22},{73, 51},{26, 14}}; 0 1 0 31 22 1 73 51 2 26](https://reader034.vdocuments.co/reader034/viewer/2022050212/5f5e97d4d0b0d8541a2cfd65/html5/thumbnails/13.jpg)
Operaciones con matrices
Podemos acceder al elemento resaltado de la siguiente forma:
cout << x[1][0]; // nombre_matriz[indice_fila][indice_columna]
0 1
0 31 22
1 73 51
2 26 14
x =
Y ¿cómo accedo a un valor
específico?
![Page 14: Clase 11: Matrices · Creamos una matriz (arreglo multidimensional) de números enteros de la siguiente forma: int x [3][2] = {{31, 22},{73, 51},{26, 14}}; 0 1 0 31 22 1 73 51 2 26](https://reader034.vdocuments.co/reader034/viewer/2022050212/5f5e97d4d0b0d8541a2cfd65/html5/thumbnails/14.jpg)
Ejemplos con matrices
![Page 15: Clase 11: Matrices · Creamos una matriz (arreglo multidimensional) de números enteros de la siguiente forma: int x [3][2] = {{31, 22},{73, 51},{26, 14}}; 0 1 0 31 22 1 73 51 2 26](https://reader034.vdocuments.co/reader034/viewer/2022050212/5f5e97d4d0b0d8541a2cfd65/html5/thumbnails/15.jpg)
Ingresar elementos en una matriz
int main(){ int numeros[2][3][2]; // capacidad: 2*3*2 = 12 cout << "Ingrese 12 valores: \n"; for (int i = 0; i < 2; ++i){ // limita 1ra dim for (int j = 0; j < 3; ++j){ // limita 2da dim for (int k = 0; k < 2; ++k ){ // limita 3ra dim
cin >> numeros[i][j][k]; } }
} return 0;}
¿Cómo se guardarán los valores 2, 31, 6, 25, 11, 65, 47, 16, 79, 33, 82, 95?
![Page 16: Clase 11: Matrices · Creamos una matriz (arreglo multidimensional) de números enteros de la siguiente forma: int x [3][2] = {{31, 22},{73, 51},{26, 14}}; 0 1 0 31 22 1 73 51 2 26](https://reader034.vdocuments.co/reader034/viewer/2022050212/5f5e97d4d0b0d8541a2cfd65/html5/thumbnails/16.jpg)
Imprimir una matriz numeros
contiene lo siguiente!0 1 2
0 31 25 65
1 16 33 950 1 2
0 2 6 11
1 47 79 82
0
1
![Page 17: Clase 11: Matrices · Creamos una matriz (arreglo multidimensional) de números enteros de la siguiente forma: int x [3][2] = {{31, 22},{73, 51},{26, 14}}; 0 1 0 31 22 1 73 51 2 26](https://reader034.vdocuments.co/reader034/viewer/2022050212/5f5e97d4d0b0d8541a2cfd65/html5/thumbnails/17.jpg)
Imprimir una matriz
int main(){ int x[3][2] = {{0,1}, {2,3}, {4,5}}; for (int fil = 0; fil < 3; fil++){ for (int col = 0; col < 2; col++){ cout << "x[" << fil << "][" << col << "]="
<< x[fil][col] << " "; }
cout << endl; } return 0;}
¿Qué se imprime?
![Page 18: Clase 11: Matrices · Creamos una matriz (arreglo multidimensional) de números enteros de la siguiente forma: int x [3][2] = {{31, 22},{73, 51},{26, 14}}; 0 1 0 31 22 1 73 51 2 26](https://reader034.vdocuments.co/reader034/viewer/2022050212/5f5e97d4d0b0d8541a2cfd65/html5/thumbnails/18.jpg)
Imprimir una matriz
x[0][0]=6 x[0][1]=1x[1][0]=2 x[1][1]=3x[2][0]=4 x[2][1]=0
Imprime el siguiente mensaje!
![Page 19: Clase 11: Matrices · Creamos una matriz (arreglo multidimensional) de números enteros de la siguiente forma: int x [3][2] = {{31, 22},{73, 51},{26, 14}}; 0 1 0 31 22 1 73 51 2 26](https://reader034.vdocuments.co/reader034/viewer/2022050212/5f5e97d4d0b0d8541a2cfd65/html5/thumbnails/19.jpg)
Multiplicación de matrices
![Page 20: Clase 11: Matrices · Creamos una matriz (arreglo multidimensional) de números enteros de la siguiente forma: int x [3][2] = {{31, 22},{73, 51},{26, 14}}; 0 1 0 31 22 1 73 51 2 26](https://reader034.vdocuments.co/reader034/viewer/2022050212/5f5e97d4d0b0d8541a2cfd65/html5/thumbnails/20.jpg)
Ejemplo: Multiplicar dos matricesEl programa toma dos matrices y las multipla devolviendo una tercera matrix resultante. La multiplicación de matrices se realiza como se muestra a continuación:
0 1 2
0 4 2 4
1 8 3 1
0 1
0 44 72
1 37 73
0 1
0 3 5
1 2 8
2 7 9
2 filas
3 columnas
3 filas
2 columnas
2 filas
2 columnas
![Page 21: Clase 11: Matrices · Creamos una matriz (arreglo multidimensional) de números enteros de la siguiente forma: int x [3][2] = {{31, 22},{73, 51},{26, 14}}; 0 1 0 31 22 1 73 51 2 26](https://reader034.vdocuments.co/reader034/viewer/2022050212/5f5e97d4d0b0d8541a2cfd65/html5/thumbnails/21.jpg)
Ejemplo: Multiplicar dos matrices0 1 2
0 4 2 4
1 8 3 1
0 1
0 44 72
1 37 73
0 1
0 3 5
1 2 8
2 7 9
4*3 + 2*2 + 4*7 = 44
4*5 + 2*8 + 4*9 = 72
8*3 + 3*2 + 1*7 = 37
8*5 + 3*8 + 1*9 = 73
![Page 22: Clase 11: Matrices · Creamos una matriz (arreglo multidimensional) de números enteros de la siguiente forma: int x [3][2] = {{31, 22},{73, 51},{26, 14}}; 0 1 0 31 22 1 73 51 2 26](https://reader034.vdocuments.co/reader034/viewer/2022050212/5f5e97d4d0b0d8541a2cfd65/html5/thumbnails/22.jpg)
#include <iostream>using namespace std;int main(){ // Declaramos las dos matrices matriz a multiplicar y la resultante int a[10][10]; int b[10][10]; int multi[10][10]; // Guardamos los datos cout << "Ingresa los elementos de la matriz a: ";
for (int i = 0; i < 10; i++)
for (int j = 0; j < 10; j++)
cin >> a[i][j];
cout << "Ingresa los elementos de la matriz b: "; for (int i = 0; i < 10; i++)
for (int j = 0; j < 10; j++)
cin >> b[i][j];
// Inicializamos la matriz resultante con ceros
for (int i = 0; i < 10; i++)
for (int j = 0; j < 10; j++)
multi[i][j] = 0;
![Page 23: Clase 11: Matrices · Creamos una matriz (arreglo multidimensional) de números enteros de la siguiente forma: int x [3][2] = {{31, 22},{73, 51},{26, 14}}; 0 1 0 31 22 1 73 51 2 26](https://reader034.vdocuments.co/reader034/viewer/2022050212/5f5e97d4d0b0d8541a2cfd65/html5/thumbnails/23.jpg)
// Realizamos la multiplicación
for(i = 0; i < 10; ++i)
for(j = 0; j < 10; ++j)
for(k = 0; k < 10; ++k) {
mult[i][j] += a[i][k] * b[k][j];}
cout << "La multiplicación entre ambas es : \n ";
for (int i = 0; i < 10; i++)
for (int j = 0; j< 10; j++)
cout << multi[i][j] << " ";
cout << "\n ";}
return 0;
}
![Page 24: Clase 11: Matrices · Creamos una matriz (arreglo multidimensional) de números enteros de la siguiente forma: int x [3][2] = {{31, 22},{73, 51},{26, 14}}; 0 1 0 31 22 1 73 51 2 26](https://reader034.vdocuments.co/reader034/viewer/2022050212/5f5e97d4d0b0d8541a2cfd65/html5/thumbnails/24.jpg)
Transpuesta de una matriz
![Page 25: Clase 11: Matrices · Creamos una matriz (arreglo multidimensional) de números enteros de la siguiente forma: int x [3][2] = {{31, 22},{73, 51},{26, 14}}; 0 1 0 31 22 1 73 51 2 26](https://reader034.vdocuments.co/reader034/viewer/2022050212/5f5e97d4d0b0d8541a2cfd65/html5/thumbnails/25.jpg)
Ejemplo: Encontrar la transpuesta de una matriz El programa toma una matriz e imprime su transpuesta
La transpuesta de una matriz se obtiene cambiando ordenadamente las filas por las columnas.
.
0 1 2 3
0 1 3 9 5
1 4 2 7 10
0 1
0 1 4
1 3 2
2 9 7
3 5 10
![Page 26: Clase 11: Matrices · Creamos una matriz (arreglo multidimensional) de números enteros de la siguiente forma: int x [3][2] = {{31, 22},{73, 51},{26, 14}}; 0 1 0 31 22 1 73 51 2 26](https://reader034.vdocuments.co/reader034/viewer/2022050212/5f5e97d4d0b0d8541a2cfd65/html5/thumbnails/26.jpg)
#include<iostream>using namespace std;int main (){ int a[10][10], f, c, i, j; cout << "Ingresar número de filas y columnas : "; cin >> f >> c; cout << "Ingresa los elementos de la matriz : "; for (i = 0; i < f; i++) for (j = 0; j < c; j++) cin >> a[i][j]; cout << "La matriz transpuesta es : \n "; for (i = 0; i < c; i++) { for (j = 0; j < f; j++) cout << a[j][i] << " "; cout << "\n "; } return 0;}
![Page 27: Clase 11: Matrices · Creamos una matriz (arreglo multidimensional) de números enteros de la siguiente forma: int x [3][2] = {{31, 22},{73, 51},{26, 14}}; 0 1 0 31 22 1 73 51 2 26](https://reader034.vdocuments.co/reader034/viewer/2022050212/5f5e97d4d0b0d8541a2cfd65/html5/thumbnails/27.jpg)
Créditos diseños
● Macarena Ibsen, diseñadora gráfica, Branding NiñasPRO.
● Íconos de Freepik usados en estas diapositivas,
licenciados bajo Creative Commons BY 3.0.
https://www.flaticon.com/authors/freepik
![Page 28: Clase 11: Matrices · Creamos una matriz (arreglo multidimensional) de números enteros de la siguiente forma: int x [3][2] = {{31, 22},{73, 51},{26, 14}}; 0 1 0 31 22 1 73 51 2 26](https://reader034.vdocuments.co/reader034/viewer/2022050212/5f5e97d4d0b0d8541a2cfd65/html5/thumbnails/28.jpg)
¿Preguntas?