suma de matrices
Publicado por km (1 intervención) el 12/10/2004 20:05:21
Necesito saber como sumar dos matrices en C++ y guardar el resultado en una tercera.
Valora esta pregunta


0
#include<iostream>
using namespace std;
int main(){
int m,n;
cin>>m>>n;
int A[m][n],B[m][n],C[m][n];
for( int i=0;i<m;i++){
for(int j=0;j<n;j++){
cout<<"A["<<i<<"]["<<j<<"]:";
cin>>A[i][j];
}
}
for( int i=0;i<m;i++){
for(int j=0;j<n;j++){
cout<<"B["<<i<<"]["<<j<<"]:";
cin>>B[i][j];
}
}
for( int i=0;i<m;i++){
for(int j=0;j<n;j++){
C[i][j]=A[i][j]+B[i][j];
}
}
for( int i=0;i<m;i++){
for(int j=0;j<n;j++){
cout<<C[i][j]<<endl;
}
}
}
#include <iostream.h>
using namespace std;
void leer(int, int, int[][COL],int [][COL]);
void calc(int, int, int[][COL],int [][COL], int[][COL]);
void main (void)
{
int a1[FIL][COL], a2[FIL][COL], a3[FIL][COL],f,c;
cout<<"Ingrese el numero de filas:";cin>>f;
cout<<"Ingrese el numero de columnas:";cin>>c;
leer(f,c,a1,a2);
calc(f,c,a1,a2,a3);
}
void leer (int c, int f, int a1[FIL][COL], int a2[FIL][COL])
{
int i,j;
cout<<endl<<"Elementos de la Matriz A:"<<endl;
for(i=0; i<f; i++)
{
for(j=0; j<c; j++)
{
cout<<"Leer Elemento ["<<i<<";"<<j<<"]:";cin>>a1[i][j];
}
}
for (i=0 ; i<f; i++)
{
for(j=0; j<c; j++)
cout<<a1[i][j]<<" ";
cout<<endl;
}
cout<<endl<<"Elementos de la Matriz B:"<<endl;
for(i=0; i<f; i++)
{ for(j=0; j<c; j++)
{
cout<<"Leer Elemento ["<<i<<","<<j<<"]:";cin>>a2[i][j];
}
}
for(i=0; i<f; i++)
{for(j=0; j<c; j++)
cout<<a2[i][j]<<" ";
cout<<endl;
}
}
void calc(int f, int c, int a1[FIL][COL], int a2 [FIL][COL],int a3[FIL][COL])
{
int i,j;
cout<<endl<<"Elementos de la Matriz C:"<<endl;
for(i=0; i<f; i++)
{for(j=0; j<c; j++)
{
a3[i][j]=a1[i][j]+a2[i][j];
cout<<"El elemento ["<<i<<";"<<j<<"];";
cout<<a3[i][j]<<endl;
}
}
cout<<endl<<"La Matriz Resultante es:"<<endl;
for(i=0; i<f; i++)
{for(j=0; j<c; j++)
cout<<a3[i][j]<<" ";
cout<<endl;
}
}
/***Programa que suma una matriz 3x3 matri1 y matri2 nos da el resultado en una matriz matri3
****El programa esta hecho con clases en c++ en Dev-C++***/
using namespace std;
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
#include <stdio.h>
class matriz //Nombre de la clase
{// Inicio de la clase
//declaracion de los atributos de la clase
public: int matri1 [2][2], matri2[2][2];
public: int asignar_valor(int n1 , int i,int j,int n2) // Metodo de asignacion
{
matri1[i][j] = n1;
matri2[i][j]= n2;
}
int calcular_suma() //Metodo que reliza la operacion
{
int i,j;
int suma ;
for (i=0;i<2;i++)
for (j=0;j<2;j++)
suma = matri1[i][j]+ matri2[i][j];
return suma;
}
}; //Fin de la clase
main ()
//Inicio de Main
{
system("color f5"); //Para darle color de fondo y de letra
//declaracion de variable
matriz objmat;
int mat[2][2], mat2[2][2],val1, val2, a, n,mat3[2][2];cout<<"
";
cout<<" **** CARGANDO UNA MATRIZ DE 3X3 ******";cout<<"
";
for(int n=0;n<2;n++){
for(int a=0;a<2;a++) {
cout << " INGRESE EL NUMERO ENTERO CORRESPONDIENTES A LA MATRIZ A ["<<n+1<<"]["<<a+1<<"]: ";
cin>>mat[n][a];
}
cout<<"
";
}
cout<<" SU MATRIZ CARGADA DE A ES:"<<endl;
for (n=0;n<2;n++){
for (a=0;a<2;a++){
cout << mat[n][a]<< " ";
}
cout<<"
";
}
cout<<"
";
for(int n=0;n<2;n++){
for(int a=0;a<2;a++){
cout<< "INGRESE EL NUMERO ENTERO CORRESPONDIENTES A LA MATRIZ B ["<<n+1<<"]["<<a+1<<"]: ";
cin>>mat2[n][a];
}
cout<<"
";
}
cout<<" SU MATRIZ CARGADA DE B ES:"<<endl;
for (n=0;n<2;n++){
for (a=0;a<2;a++){
cout << mat2[n][a]<< " ";
}
cout<<"
";
}
objmat.asignar_valor (mat[n][a], n,a,mat2[n][a]); // Llama al metodo de asignacion
mat3[2][2] = objmat.calcular_suma(); //Llama al metodo para relizar la operacion
cout<<" EL RESULTADO DE LA SUMA ES:
";
for (n=0;n<2;n++){
for (a=0;a<2;a++){
cout<<mat3[n][a]<<" "; //Se muestra el resultado de la operacion suma
}
cout<<"
";
}
getch ();
return 0;
} // Finaliza el Main
//matriz A genera los primeros impares la B los primeros pares
#include <iostream>
using namespace std;
int ac, af, bc, bf;
void sdm(void)
{
int A[20][20], B[20][20], R[20][20];
int k = 1, k2 = 2, m = 0, m2 = 0;
cout << endl;
cout << "la matriz A es :"<<endl;
for (int i = 0; i<af; i++)
{
for (int j = 0; j<ac; j++)
{
k = 1 + 2 * m;
m++;
A[i][j] = k;
cout <<A[i][j]<<"\t";
}
cout << endl;
}
cout << endl;
cout << "la matriz B es :" << endl;
for (int i = 0; i<bf; i++)
{
for (int j = 0; j<bc; j++)
{
k2 = 2 + 2 * m2;
m2++;
B[i][j] = k2;
cout << B[i][j] << "\t";
}
cout << endl;
}
for (int i = 0; i<af; i++)
{
for (int j = 0; j<ac; j++)
{
R[i][j] = A[i][j] + B[i][j];
}
}
cout << endl;
cout << "la suma es: " << endl;
for (int i = 0; i<af; i++)
{
for (int j = 0; j<ac; j++)
{
cout << R[i][j] << "\t";
}
cout << endl;
}
for (int i = 0; i<af; i++)
{
for (int j = 0; j<ac; j++)
{
R[i][j] = A[i][j] - B[i][j];
}
}
cout << endl;
cout << "la resta es:" << endl;
for (int i = 0; i<af; i++)
{
for (int j = 0; j<ac; j++)
{
cout << R[i][j] << "\t";
}
cout << endl;
}
}
void mdm(void)
{
int A[20][20], B[20][20], P[20][20];
int k = 1, k2 = 2, m = 0, m2 = 0;
int temp;
for (int i = 0; i<af; i++)
{
for (int j = 0; j<ac; j++)
{
k = 1 + 2 * m;
m++;
A[i][j] = k;
}
}
for (int i = 0; i<bf; i++)
{
for (int j = 0; j<bc; j++)
{
k2 = 2 + 2 * m2;
m2++;
B[i][j] = k2;
}
}
for (int i = 0; i < af; i++)
{
for (int h = 0; h < bc; h++)
{
temp = 0;
for (int j = 0; j < ac; j++)
{
temp = temp + A[i][j] * B[j][h];
P[i][h] = temp;
}
}
}
cout << "el producto es:" << endl;
for (int i = 0; i<af; i++)
{
for (int j = 0; j<bc; j++)
{
cout << P[i][j] << "\t";
}
cout << endl;
}
}
void main()
{
cout << "recuerde que para la multiplicacion la columna de la matriz A no puede ser diferente a la fila de la matriz B y para la suma deben ser estrictamente matrices del mismo orden" << endl;
cout << "la matriz A sera completada por los primeros numeros impares" << endl;
cout << "la matriz B sera completada por los primeros numeros pares" << endl;
cout << "Fila de A:" << endl;
cin >> af;
cout << "Columna A:" << endl;
cin >> ac;
cout << "Fila de B" << endl;
cin >> bf;
cout << "Columna de B" << endl;
cin >> bc;
if (ac == bc&&af == bf)
{
sdm();
cout << "\n";
}
else
{
cout << "no puede obtenerse la suma ni la resta" << endl;
}
if (ac == bf)
{
mdm();
cout << "\n";
}
else
{
cout << "no puede obtenerse el producto" << endl;
}
system("pause");
}
#include<stdio.h>
int main()
{
int matriz[3][2];
int matriz2[3][2];
int matrizResultante[3][2];
int indiceRenglon, indiceColumna=0;
for(indiceRenglon=0; indiceRenglon<3; indiceRenglon++)
{
for(indiceColumna=0; indiceColumna<2; indiceColumna++)
{
printf("Dame un numero para la matriz\n");
scanf("%i", &matriz[indiceRenglon][indiceColumna]);
}
}
for(indiceRenglon=0; indiceRenglon<3; indiceRenglon++)
{
for(indiceColumna=0; indiceColumna<2; indiceColumna++)
{
printf("Dame un numero para la matriz2\n");
scanf("%i", &matriz2[indiceRenglon][indiceColumna]);
}
}
for(indiceRenglon=0; indiceRenglon<3; indiceRenglon++)
{
for(indiceColumna=0; indiceColumna<2; indiceColumna++)
{
matrizResultante[indiceRenglon][indiceColumna]=matriz[indiceRenglon][indiceColumna] + matriz2[indiceRenglon][indiceColumna];
}
}
for(indiceRenglon=0; indiceRenglon<3; indiceRenglon++)
{
for(indiceColumna=0; indiceColumna<2; indiceColumna++)
{
printf("El resultado de la matriz es %i\n",matrizResultante[indiceRenglon][indiceColumna]);
}
}
}