DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
Cap7 2 matrices
1. MatricesCAPITULO 7-2
Ing. Mary Dunnia López N.
UNIVERSIDAD AUTONOMA GABRIEL RENE MORENO
Facultad Ciencias Exactas y Tecnología
Semestre II/2018
2. Intente Resolver el Siguiente Problema
• Un instituto desea controlar los resultados de los
alumnos en las distintas materias de la facultad de
Ingeniería.
• El programa debe ingresar las calificaciones de los
alumnos y visualizar en pantalla la media de notas
por alumno y por materia.
• Las asignaturas están codificadas de 1 a 6 y hay 30
alumnos.
3. • Sera posible resolver este problema con lo visto hasta
ahora?
• Para realizar el anterior programa , debemos trabajar
con una tabla
Una Matriz o Arreglo Bidimensional
4. Matrices
9 35 4 826
9 35 4 826
9 35 4 826
Mi_Matriz
Nombre de
la variable
Posición : 2,0
Contenido : Mi_Matriz[2,0] = 9
5. MATRICES - DECLARACIÓN
• Como se dijo anteriormente, los arreglos son estructuras
de datos, por lo tanto las mismas deben ser declaradas.
• Dim
nombre_matriz (columna,fila) as tipo_dato
• Dim
nombre_matriz (,) as tipo_dato
Redim nombre_matriz(10,10)
6. Manejo de Índices en Matrices
• Asignación de valores
Alumnos(1,1) = 5
Alumnos(0,3) = 2
• Los valores de la matriz son todos del mismo tipo
9 35 4 826
9 35 4 826
9 35 4 826
Alumnos
7. Cargar una Matriz
‘ x Tipo string
‘ Notas Vector tipo Double
for i:= 0 to 2 do
for j=0 to 1 do
x=Grid1.Item(j,i)
Notas(i,j)=cdbl(x)
next j
next i
DF ?
8. Mostrar una Matriz
‘ x Tipo string
‘ Notas Vector tipo Double
for i:= 0 to N-1 do
for j=0 to M-1 do
x = cstr(Notas(i,j))
Grid1.textmatrix(i,j)=x
next j
next i
DF ?
10. Matriz cuadrada
10 20 102
50 35 36
52 74 32
El numero de
Filas es
IGUAL al
numero de
Columnas
11. Matriz Traspuesta
10 20 102
50 35 36
52 74 32
Resulta de
Intercambiar
el elementos
en las filas
por las
columnas y
viceversa
La
matriz
debe ser
cuadrada
10 50 52
20 35 74
102 36 32
X=Mat(j,i)
Mat(j,i)=Mat(i,j)
Mat(i,j)=x
13. Diagonal Principal
10 20 102
50 35 36
52 74 32
Matriz cuadrada
donde sus elementos
Fila = columna
‘Este pedazo de código
‘muestra los elementos de la
‘diagonal principal de la
‘matriz Mat.
For i = 0 To n - 1
For j = 0 To n - 1
If (i = j) Then
msgbox(Mat(i,j))
End If
Next j
Next i
14. Diagonal Secundaria
10 20 102
50 35 36
52 74 32
Matriz cuadrada. Observe
las posiciones donde :
Fila+columna= Dimension-
1 ‘Este pedaso de código
‘muestra los elementos de la
‘diagonal secundaria de la
‘matriz Mat.
Col=n-1
For i = 0 To n - 1
MsgBox(Mat(i,col))
Col=col-1
Next i
15. Matriz Triangular
Superior
1 5 80
0 10 50
0 0 1
Matriz Cuadrada
cuyos elementos
debajo la diagonal
principal son todos
CERO
Dim i,j,n as integer
i=o
n=cint(text1.text) – 1
Error=false
While(i<=n AND error=false)
j=0
while(j<=n and error=false)
if (i > j)then
if (mat (i,j) <> 0)then
error = true
end if
end if
j=j+1
wend
i=i+1
Wend
If(error = true)then
msgbox(“No es triangular superior”)
Else
msgbox(“Es triangular superior)
End if
17. Suma de Matrices
10 20
50 35
52 4
Las
matric
es
deben
ser de
igual
dimens
ión
10 50
20 35
10 36 El resultado
de la SUMA
ira en una
tercer
matriz
+
=
20 70
70 70
62 40
18. SumMat
For fil=0 to n-1
For col=0 to n-1
a=matriz1(fil,col)
b=matriz2(fil,col)
matriz3(fil,col) = (a+b)
col
fil
Fin
20. Producto de Matrices
10 20
50 35
52 4
10 5 2 1
20 2 1 0* =
500 90 40 10
1200 320 135 50
600 268 108 52
El Numero de COLUMNAS de la primer matriz debe ser
igual que el Numero de filas de la segunda matriz
(Matriz1
(Matriz2
(Matriz3
(2,0)
(0,2) (2,2)
(2,1)
(1,2)
Dim nombres(5,2) as string
Dim nombres(2,8) as string
……………………
……………………
Redim nombres(2,5)
El recorrido de las matrices puede realizarse tanto por filas como por columnas, de acuerdo al problema a resolver
No olvide aumentar el codigo suficente para que se armen las 3 matrices.
No olvide que al hacer click en cada celda de Grid1 o Grid2 para pedir datos
Grid3 debe quedar bloqueada para no permita modificar sus valores o datos
Private Sub Command1_Click()
Call Suma
End Sub
Private Sub Suma()
Dim fil, col,a,b As Integer
Dim nfil, ncol As Integer
nfil = CInt(Combo1.Text)
ncol = CInt(Combo2.Text)
ReDim mat3(nfil - 1, ncol - 1)
For fil = 0 To nfil - 1
For col = 0 To ncol – 1
a=cint(grid1.textmatrix(fil,col))
b=cint(grid2.textmatrix(fil,col))
grid3.textmatrix(fil, col) = cstr(a+b)
Next col
Next fil
End Sub
Al avanzar en la matriz resultante necesito:
Una variable NUEVA ( K) que avance en la primer matriz por
columnas y la misa variable avanza en la segunda matriz en filas
No olvide aumentar el codigo suficente para que se armen las 3 matrices.
No olvide que al hacer click en cada celda de las matrices Grid 1 y Grid2
Grid3 debe quedar bloqueada para que el usuario no pueda modificar sus valores
Private Sub Command1_Click()
Call Producto
End Sub