Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Duda sobre matrices

Estas en el tema de Duda sobre matrices en el foro de C/C++ en Foros del Web. Duda sobre matrices en c++? bueno me dejaron hacer una multiplicacion de matrices(alegbra lineal) pero en la clase de programaciion,. la 1era matriz es de ...
  #1 (permalink)  
Antiguo 17/10/2008, 19:57
Avatar de judi89  
Fecha de Ingreso: octubre-2008
Mensajes: 2
Antigüedad: 16 años, 1 mes
Puntos: 0
Pregunta Duda sobre matrices

Duda sobre matrices en c++?
bueno me dejaron hacer una multiplicacion de matrices(alegbra lineal) pero en la clase de programaciion,.
la 1era matriz es de 3 * 4 y la 2da es de 4 * 3, al final la tabla C debe ser 4 *4..
y debe utilizarse solo arreglos y obviamente solo for.
bueno mi duda esta enq como hago la multiplicacion, ya q una matriz es la suma de las multiplicacion de cada fila de la matriz A x cada columna de la matriz B... Si alguien me pudiera dar una idea le agradeceria.

#include<conio.h>
#include<stdio.h>

int main()
{
int a[4][3], b[3][4], c[4][4];
clrscr();
printf("\t Ingrese los valores del arreglo A:\n");
for(int fila=0; fila<4; fila++){
for(int col=0; col<3; col++){
printf(" Arreglo A[%d][%d]: ",fila,col);
scanf("%d",&a[fila][col]);
}//Fin for columna
}//Fin for fila
printf("\t Ingrese los valores del arreglo B:\n");
for(int fila1=0; fila1<3; fila1++){
for(int col1=0; col1<4; col1++){
printf(" Arreglo B[%d][%d]: ",fila1,col1);
scanf("%d",&b[fila1][col1]);
}//Fin for columna
}//Fin for fila

//Multiplicacion
printf("\t\n Valores del Arreglo C");
for(int f=0; f<4; f++){
for(int co=0; co<4; co++){
for(int q=1; q<co; q++){
c[f][co]=c[f][co] + a[f][co] * b[co][f];
printf("\n Arreglo C[%d][%d]: %d ",f,co,c[f][co]);
}
}
}

getch();
return 0;

}
se supone q el debe hacer 4 *4 la columna C pero se saca dela suma de las multiplicacion y ai donde tngo el problema..
solo puedo usar arreglos y for.!
  #2 (permalink)  
Antiguo 18/10/2008, 21:00
Avatar de princesa_him  
Fecha de Ingreso: octubre-2008
Mensajes: 7
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Duda sobre matrices

Holas, bueno a ver mita esta multiplicacion de matrices, es algo diferente, checkala ps...

void multiplicar_matrices(int**m1, int** m2){
int b;
int f1,f2,c1,c2;
int** m3;


cout<<Para la multiplicacion de matrices las filas
de la matriz 1 deben"<<endl;
cout<<"tener la misma dimension que las columnas de la matriz
2"<<endl;
cout<<"Dimensiones de la matriz 1"<<endl<<endl;
cout<<"Columnas :";
cin>>c1;
cout<<"Filas :";
cin>>f1;
cout<<"Ingresa los valores de la matriz 1"<<endl;
crear_matriz(m1,c1,f1);
llenar_matriz(m1,c1,f1);
cout<<endl;
cout<<"Matriz 1"<<endl;
cout<<endl;
imprimir_matriz(m1,c1,f1);
cout<<"Dimensiones de la matriz 2"<<endl;
cout<<"Columnas :";
cin>>c2;
cout<<"Filas :";
cin>>f2;
cout<<"Ingresa los valores de la matriz 2"<<endl;
crear_matriz(m2,c2,f2);
llenar_matriz(m2,c2,f2);
cout<<endl;
cout<<"Matriz 2"<<endl;
cout<<endl;
imprimir_matriz(m2,c2,f2);


if(f2 > f1)
b = f2;
else
b = f1;


crear_matriz(m3,f1,b);
for(int i = 0; i < f1; i++){
for(int j = 0; j < b; j++){
*(*(m3+i)+j) = 0;
for(int k = 0; k < f1; k++){
*(*(m3+i)+j) = *(*(m3+i)+j) + ((*(*(m1+i)
+k))*(*(*(m2+k)+j)));
}
}
}


cout<<"Matriz multiplicada"<<endl<<endl;
imprimir_matriz(m3,f1,b);
}

ahi ta... bye
RUBY
  #3 (permalink)  
Antiguo 23/10/2008, 06:33
Avatar de v4mp1r0  
Fecha de Ingreso: febrero-2008
Mensajes: 36
Antigüedad: 16 años, 9 meses
Puntos: 0
Respuesta: Duda sobre matrices

Te dejo la idea.

Código:
int main(){
  int matriz1[4][3], matriz2[3][4], matrisr[4][4];
  int i, j, suma=0;

  /* Asumo que las matrices estan llenas, el procedimiento de llenado esta bueno*/
 
  for(k=0;k<4;k++){
    for(i=0; i<4; i++){
      for(j=0; j<3; j++){
        suma=matriz1[k][j]*matriz2[j][i]+suma;
      }
     matrizr[k][i]= suma;
     suma = 0;
    }
  }

  return 0;
}
Creo q no tiene errores, de todas maneras cualquier cosa me avisas.

Salu2!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:48.