Operaciones con matrices

Sergio Bautista

/* Este programa hace una serie de operaciones con matrices, entre ellas el cálculo de trazas, de suma de matrices y de multiplicación de los productos de dos matrices: */


#include <iostream>
using namespace std;
#define DIM 100
void leer_matriz(int v[DIM][DIM],int n);
void escribir_matriz(int v[DIM][DIM], int n);
void escribir_traza (int v[DIM][DIM], int n, int traza);
void suma_matriz (int v[DIM][DIM], int w[DIM][DIM], int z[DIM][DIM], int n);
void mult_matriz (int v[DIM][DIM],int w[DIM][DIM],int mul[DIM][DIM], int n);
void sumacuad_matriz (int v[DIM][DIM],int w[DIM][DIM],int cuad[DIM][DIM], int n);
void suma_todas (int v[DIM][DIM], int w[DIM][DIM], int z[DIM][DIM],int mul[DIM][DIM], 
                 int suma [DIM][DIM], int n);
main()
{

 int n,traza,v[DIM][DIM],w[DIM][DIM],z[DIM][DIM],mul[DIM][DIM], 
             cuad[DIM][DIM], suma [DIM][DIM];
 cout << "Introduce la dimension de tus matrices: ";
 cin >> n;
 cout << "Dame las "<< n<< "x"<<n <<" coordenadas de la matriz 1: \n";
 leer_matriz(v,n);
 cout << endl<<"Las coordenadas de la matriz 1 son: \n";
 escribir_matriz(v,n);
 cout<<endl;
 cout<< "Veamos la traza de esta matriz"<<endl;
 escribir_traza (v,n,traza);
 cout << "Dame las "<< n<<"x"<<n <<" coordenadas de la matriz 2: \n";
 leer_matriz (w,n);
 cout<<"Las coordenadas de la matriz 2 son: \n";
 escribir_matriz(w,n);
 cout << endl;
 cout<< "Veamos la traza de esta matriz"<<endl;
 escribir_traza (w,n,traza);
 cout<< "Las coordenadas de la suma son: \n";
 suma_matriz (v,w,z,n);
 cout<<endl;
 cout<<"Veamos que la traza de la suma es la suma de las trazas"<<endl;
 escribir_traza(z,n,traza);
 cout<<"Vemos que se cumple"<<endl;
 cout << endl;
 cout<< "La matriz del producto de los elementos es el siguiente: "<<endl;
 mult_matriz (v,w,mul,n);
 cout<<endl;
 cout<<"La matriz formada por la suma de los cuadrados de los elementos de ambas es: "<<endl;
 sumacuad_matriz(v,w,cuad,n);
 cout<< "La suma de todas las matrices que han aparecido por pantalla anteriormente es: "<<endl;
 suma_todas(v,w,z,mul,cuad,suma,n);
 cout<<endl;
 cout<< "Veamos la traza de esta ultima matriz: "<<endl;
 escribir_traza(suma,n,traza);
 return 0;
}

//FUNCIONES
void leer_matriz(int v[DIM][DIM], int n)
{
 for(int i=0;i<n;i++)
 for(int j=0;j<n;j++)
   cin >> v[i][j];
}

void escribir_matriz(int v[DIM][DIM], int n)
{
 for(int i=0;i<n;i++)
 {
 for(int j=0;j<n;j++)
   cout << v[i][j] << " ";
 cout<<endl;
 }
}

void escribir_traza (int v [DIM][DIM], int n ,int traza)
{
 cout<<"Los elementos de la diagonal son los siguientes: "<<endl;
for(int i=0;i<n;i++)
    cout << v[i][i] << " ";
 cout<<endl;
 cout<< "Por lo tanto, el valor de la traza sera: ";
 traza=0;
 for(int i=0;i<n;i++)
   traza+= v[i][i];
 cout<<traza<<endl;
}

void suma_matriz (int v[DIM][DIM], int w[DIM][DIM], int z[DIM][DIM], int n)
{
 for (int i=0; i<n; i++)
 for(int j=0;j<n;j++)
    z[i][j]= v[i][j]+w[i][j];

 for (int i=0; i<n; i++)
 {
 for(int j=0;j<n;j++)
     cout<< z[i][j]<<" ";
 cout<<endl;
 }
}

void mult_matriz (int v[DIM][DIM],int w[DIM][DIM],int mul[DIM][DIM], int n)
{
 for (int i=0; i<n; i++)
 for(int j=0;j<n;j++)
    mul[i][j]=v[i][j]*w[i][j];

 for (int i=0; i<n; i++)
 {
 for(int j=0;j<n;j++)
     cout<<mul[i][j]<<" ";
 cout<<endl;
 }
}

void sumacuad_matriz (int v[DIM][DIM],int w[DIM][DIM],int cuad[DIM][DIM], int n)
{
 for (int i=0; i<n; i++)
 for(int j=0;j<n;j++)
    cuad[i][j]= v[i][j]*v[i][j]+ w[i][j]*w[i][j];

 for (int i=0; i<n; i++)
 {
 for(int j=0;j<n;j++)
   cout<< cuad[i][j]<<" ";
 cout<<endl;
 }
}

void suma_todas (int v[DIM][DIM], int w[DIM][DIM], int z[DIM][DIM],int mul[DIM][DIM],
                 int cuad[DIM][DIM], int suma[DIM][DIM], int n)
{
 for (int i=0; i<n; i++)
 for(int j=0;j<n;j++)
    suma[i][j]= v[i][j]+w[i][j]+z[i][j]+mul[i][j]+cuad[i][j];

 for (int i=0; i<n; i++)
 {
 for(int j=0;j<n;j++)
   cout<<suma[i][j]<< " ";
 cout<<endl;
 }
}

Anuncios
Esta entrada fue publicada en Informática e Internet. Guarda el enlace permanente.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s