Вы находитесь на странице: 1из 5

#include <cstdlib>

#include <iostream>
#include <windows.h>
#include <cmath>
#define MAX 70
using namespace std;
void llenar(float fil, float col, float D[MAX][MAX])
{
for (int i=0; i<fil; m++)
{
for(int j=0; j<col; n++)
{
cout << "Introduzca el elemento "<< "(" << i <<","<< j << ")"<< end
l;
cin >> D[i][j];
}
}
}
void imp (float fil, float col, float D[15][15])
{
for (int m=0; m<fil; m++)
{
for(int n=0; n<col; n++)
{
printf("\t%d\t",D[m][n]);
}
printf("\n");
printf("\n");
}
}
void sum (int fil, int col, int D[15][15], int E[15][15])
{
for (int m=0; m<fil; m++)
{
for(int n=0; n<col; n++)
{
printf("\t%d\t",D[m][n]+ E[m][n]);
}
printf("\n");
printf("\n");
}
}
void res (int fil, int col, int D[15][15], int E[15][15])
{
for (int m=0; m<fil; m++)
{
for(int n=0; n<col; n++)
{
printf("\t%d\t",D[m][n]- E[m][n]);
}
printf("\n");
printf("\n");
}
}

int D[MAX][MAX],E[MAX][MAX];
int main(int argc, char *argv[])
{
int op;
int fil,col;
printf("Indique la operacion de matrices que desea realizar\n\tMENU\n");
printf("1]Suma\n");
printf("2]Resta\n");
printf("3]Multiplicacion\n");
printf("4]Calcular el determinante\n");
printf("Opcion ----->\t");
scanf("%d",&op);
switch(op)
{
case 1:
{
printf("Cual es el orden de la matrices (filas,columnas)\n");
scanf ("%d,%d",&fil,&col);
printf("Datos de la primer matriz\n");
llenar(fil,col,D);
printf("Datos de la segunda matriz\n");
llenar(fil,col,E);
system("cls");
imp(fil,col,D);
printf("\n + \n");
imp(fil,col,E);
printf("\n = \n");
sum(fil,col,D,E);
}
break;
case 2:
{
printf("Cual es el orden de la matrices (filas,columnas)\n");
scanf ("%d,%d",&fil,&col);
printf("Datos de la primer matriz\n");
llenar(fil,col,D);
printf("Datos de la segunda matriz\n");
llenar(fil,col,E);
system("cls");
imp(fil,col,D);
printf("\n - \n");
imp(fil,col,E);
printf("\n = \n");
res(fil,col,D,E);
}
break;
case 3:
{
int x[50][50],y[50][50],z[50][50],fil,col,fil_2,col_2,mul,i,j,k;
printf("Cual es la dimension de la primer matriz (filas,columnas)\n");
scanf ("%d,%d",&fil,&col);
printf("Cual es la dimension de la segunda matriz (filas,columnas)\n")
;

scanf ("%d,%d",&fil_2,&col_2);
if (col==fil_2)
{
printf("Introduzca los datos de la primer matriz\n");
for(int i=0;i<fil;i++)
{
for(int j=0;j<col;j++)
{
printf ("Introduzca el dato (%d,%d)\t",i+1,j+1);
scanf ("%d",&x[i][j]);
}
}
printf ("\n \n");
printf("Introduzca los datos de la segunda matriz\n");
for(int i=0;i<fil_2;i++)
{
for(int j=0;j<col_2;j++)
{
printf ("Introduzca el dato (%d,%d)\t",i+1,j+1);
scanf ("%d",&y[i][j]);
}
}
//Imprimir las matrices
cout<<"Primer matriz"<<endl;
for(int i=0;i<fil;i++)
{
for(int j=0;j<col;j++)
{
cout<< x[i][j];
printf("\t");
}
printf ("\n");
}
printf ("\n");
cout<<"Segunda matriz"<<endl;
for(int i=0;i<fil_2;i++)
{
for(int j=0;j<col_2;j++)
{
cout<< y[i][j];
printf("\t");
}
printf ("\n");
}
//Realizando la multiplicacion
for (i=0;i<fil;i++)
{
for (j=0;j<col_2;j++)
{ z[i][j]=0;
for (k=0;k<col;k++)
{
z[i][j]=z[i][j]+x[i][k]*y[k][j];
}
}
}
printf("\n");
cout<<"La multiplicacion de las matrices es:\t"<<endl;

//Para imprimir la multiplicacion


for (i=0;i<fil;i++)
{
for (j=0;j<col_2;j++)
{
cout<<z[i][j];
printf("\t");
}
printf ("\n");
}
}
else
{
printf("No se pueden multiplicar las matrices, el numero de filas
de la segunda matriz\n");
printf("debe ser igual al numero de filas de la primer matriz\n");
}
//system ("cls");
}
break;
case 4:
{
int i,j, k,l,m,n ;
float a[100][100];
float det;
printf ("Cual es el orden de la matriz? \t");
scanf ("%d",&n);
m=n-1;
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
cout << "Introduzca el elemento "<< "(" << i <<","<< j << ")"<< end
l;
cin >> a[i][j];
}
}
system ("cls");
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
cout<< a[i][j];
printf("\t");
}
printf ("\n");
}
printf ("\n");
/*****Calculo del DETERMINANTE*****/
det= a[1][1];

for(k=1;k<=m;k++)
{ l=k+1;
for(i=l;i<=n;i++)
{
for(j=l;j<=n;j++)
a[i][j] = ( a[k][k]*a[i][j]-a[k][j]*a[i][k] )/a[k][k];
}
det=det*a[k+1][k+1];
}
cout<<"El determinante es = " << det <<endl;
printf("\n");
if(det==0)
{
printf("La matriz es invertible\n");
}
else
{
printf("La matriz no invertible\n");
}
}
break;
}
system("PAUSE");
return EXIT_SUCCESS;
}

Вам также может понравиться