ayuda con multiplicación de matrices
Publicado por Jorge4 (2 intervenciones) el 03/11/2006 23:49:18
Que tal, si alguien le pudiera hechar un ojo a esto a ver si está bien hecho se lo agradecería:
Proyecto:
En este proyeto usted deberá implementar la operación de multiplicación de matrices. Para ello considere los siguientes conceptos.
En el caso de la multiplicación de matrices, para que dicha operación pueda realizase, se requiere que el número de columnas de la primera matriz sea igual al de filas de la segunda matriz. Si dicha condición se cumple, entonces se puede concebir que cada elemento de la multiplicación sea resultado de aplicar de la siguiente fórmula:
http://www.ingenieria.uady.mx/weblioteca/programacion/Prog07/Image70.gif
donde A y B son las matrices a multiplicar, C es la matriz donde se guarda el resultado y C[i,j] es un elemento de la matriz C. Nótese el uso del elemento k. El elemento k es un entero que sirve como contador de las columnas en la matriz A y como contador de filas en la matriz C. Para ilustrar un poco es el proceso, se tienen las siguientes matrices:
A B C
1 2 3 4 1 5 10 30 70 120
5 6 7 8 X 2 6 11 = 70 174 304
9 10 11 12 3 7 12 110 278 488
4 8 13
Si se desea obtener el elemento C[2,2] de la matriz C, se tienen que efectuar las siguientes operaciones:
C[2,2] = A[2,1] * B[1,2] = 5 * 5
A[2,2] * B[2,2] = 6 * 6
A[2,3] * B[3,2] = 7 * 7
A[2,4] * B[4,2] = 8 * 8
Suma: 174
y esta es la matriz:
#include<stdio.h>
#include<graph.h>
void main(){
int A[10][10],B[10][10],C[10][10];
int fila,colum,f,c;
_clearscreen(2);
printf("Digite el # de filas\n");
scanf("%d",&fila);
printf("Digite el # de columnas\n");
scanf("%d",&colum);
for(f=0;f<=fila-1;f++){
for(c=0;c<=colum-1;c++){
printf("A[%d][%d]",f+1,c+1);
scanf("%d",&A[f][c]);
}
}
for(f=0;f<=fila-1;f++){
for(c=0;c<=colum-1;c++){
printf("B[%d][%d]",f,c);
scanf("%d",&B[f][c]);
C[f][c]=A[f][c]+B[f][c];
}
}
for(f=0;f<=fila-1;f++){
for(c=0;c<=colum-1;c++){
printf("%d\t",C[f][c]);
}
printf("\n");
}
}
Proyecto:
En este proyeto usted deberá implementar la operación de multiplicación de matrices. Para ello considere los siguientes conceptos.
En el caso de la multiplicación de matrices, para que dicha operación pueda realizase, se requiere que el número de columnas de la primera matriz sea igual al de filas de la segunda matriz. Si dicha condición se cumple, entonces se puede concebir que cada elemento de la multiplicación sea resultado de aplicar de la siguiente fórmula:
http://www.ingenieria.uady.mx/weblioteca/programacion/Prog07/Image70.gif
donde A y B son las matrices a multiplicar, C es la matriz donde se guarda el resultado y C[i,j] es un elemento de la matriz C. Nótese el uso del elemento k. El elemento k es un entero que sirve como contador de las columnas en la matriz A y como contador de filas en la matriz C. Para ilustrar un poco es el proceso, se tienen las siguientes matrices:
A B C
1 2 3 4 1 5 10 30 70 120
5 6 7 8 X 2 6 11 = 70 174 304
9 10 11 12 3 7 12 110 278 488
4 8 13
Si se desea obtener el elemento C[2,2] de la matriz C, se tienen que efectuar las siguientes operaciones:
C[2,2] = A[2,1] * B[1,2] = 5 * 5
A[2,2] * B[2,2] = 6 * 6
A[2,3] * B[3,2] = 7 * 7
A[2,4] * B[4,2] = 8 * 8
Suma: 174
y esta es la matriz:
#include<stdio.h>
#include<graph.h>
void main(){
int A[10][10],B[10][10],C[10][10];
int fila,colum,f,c;
_clearscreen(2);
printf("Digite el # de filas\n");
scanf("%d",&fila);
printf("Digite el # de columnas\n");
scanf("%d",&colum);
for(f=0;f<=fila-1;f++){
for(c=0;c<=colum-1;c++){
printf("A[%d][%d]",f+1,c+1);
scanf("%d",&A[f][c]);
}
}
for(f=0;f<=fila-1;f++){
for(c=0;c<=colum-1;c++){
printf("B[%d][%d]",f,c);
scanf("%d",&B[f][c]);
C[f][c]=A[f][c]+B[f][c];
}
}
for(f=0;f<=fila-1;f++){
for(c=0;c<=colum-1;c++){
printf("%d\t",C[f][c]);
}
printf("\n");
}
}
Valora esta pregunta


0