Matrices(Arreglos
Bidimensionales)
Arreglos Bidimensionales� Los arreglos bidimensionales son aquellos que tienen dos
dimensiones y, en consecuencia se manejan con dos índices, se
puede ver también como un arreglo de arreglos.
� Un arreglo bidimensional equivale a una tabla con múltiples filas
y múltiples columnas.
123 25 56 3 45
32 44 56 45 67
23 100 56 48 67
Arreglo bidimensional de 3 filas y 5 columnas
0 1 2 3 4
0
1
2
filas
columnas
3X5= 15 valores almacenados
Declaración y Acceso de MatricesDeclaración:
<tipo_de_dato> <identificador_del_arreglo> [Dimensión_fila] [Dimensión_columna]
Por ejemplo: Datos [3] [5] de tipo entero
Id_arreglo = ARREGLO [limInfR..limSupR,limInfC..limSupC] DE tipo
Por ejemplo: matriz = ARREGLO [1..15, 1..5] DE reales
Acceso:
Inserción
< identificador_del_arreglo > [<índice_fila>] [<índice_columna>] � valor del elemento
Por ejemplo: M [3] [2]����9 M [3,2]����9
Extracción
<variable> � < identificador_del_arreglo > [<índice_fila>] [<índice_columna>]
Por ejemplo: x����M [3] [2] x����M [3,2]
Operaciones con matrices
� Suma de Matrices
� Resta
� Multiplicación de Matrices
� Multiplicación por un escalar
=
333231
232221
131211
aaa
aaa
aaa
A
=
333231
232221
131211
bbb
bbb
bbb
B
Suma de Matrices� Consiste en sumar A+B, es decir aij +bij resultando
una nueva matriz C, donde cada posición cij���� aij
+bij
� Ejemplo 1 + 5 = 6
75
31=A
84
75=B
6
84
75
75
31=+ Suma a1 1 + b1 1
3 + 7 = 10
Suma a1 2 + b1 2
106
84
75
75
31=+
9
106
84
75
75
31=+
Suma a2 1 + b2 1
5 + 4 = 9
159
106
84
75
75
31=+ Suma a2 2 + b2 2
7 + 8 = 15
Multiplicación por un escalar� Consiste en multiplicar cada aij por una constante k
� Ejemplo
43
51=A
86
102
43
5122 ==A
Multiplicación de Matrices� Primero debe verificarse el número de filas y columnas de las
dos matrices A y B, el resultado se almacena en la matriz C, de
la siguiente forma: cij���� aik +bkj
� Ejemplo
Debe ser igual entonces
si se puede multiplicar
El tamaño de la
respuesta es 3 x 2
3 x 5 5 x 2
A B
=×33
141312
11109
876
543
210
1)Reviso el tamaño de la matriz
A = 2 x 3 B = 3 x 3
Como son iguales se puede multiplicar.
El tamaño de la matriz de la respuesta es 2 x 3
( ) ( ) ( )332490
1229160
=++
=×+×+× 2) Siempre se toma la primera
matriz con la fila 1 (horizontal)
con la 1 columna (vertical)
marcada en la matriz.
Se opera asi:
=×
3633
141312
11109
876
543
210
( ) ( ) ( )3626100
13210170
=++
=×+×+×
=×
393633
141312
11109
876
543
210
( ) ( ) ( )3928110
14211180
=++
=×+×+×
Obtención de la primera fila de la matriz C
Multiplicación de Matrices …
=×114
393633
141312
11109
876
543
210
Obtención de la segunda fila de la matriz C
( ) ( ) ( )114603618
1259463
=++
=×+×+×
=×
126114
393633
141312
11109
876
543
210
( ) ( ) ( )126654021
13510473
=++
=×+×+×
=×
138126114
393633
141312
11109
876
543
210
( ) ( ) ( )138704424
14511483
=++
=×+×+×
138126114
393633C=
Ejemplo
� Dado un arreglo bidimensional determinar la
posición [ i , j ] del valor mayor.
� Leer una matriz de 10X10 elementos y
generar un vector con los elementos que
estén por encima de la diagonal principal.
Informar el vector generado.
� Entrada:
� Salida:
ponm
lkji
hgfe
dcba
g hd lcb
� Un algoritmo que almacene números en una matriz de 5 x 6. Imprimir la suma de los números almacenados en la matriz.
� Un algoritmo que llene una matriz de 7 x 7. Calcular la suma de cada renglón y almacenarla en un vector, la suma de cada columna y almacenarla en otro vector.
� Un algoritmo que llene una matriz de 5 x 5 y que almacene la diagonal principal en un vector. Imprimir el vector resultante.
� Un algoritmo que llene una matriz de 10 x10 y que almacene en la diagonal principal el menor de ese renglón.
� Un algoritmo que llene una matriz de 6 x 8 y que almacene toda la matriz en un vector. Imprimir el vector resultante.
� Un algoritmo que llene una matriz de 5 x 6 y que imprima cuantos de los números almacenados son ceros, cuantos son positivos y cuantos son negativos.