Programación en lenguaje C (la suma, resta, multiplicación, transposición, lectura y guardado de dos matrices requiere un menú)
Dos archivos, uno llamado Matrix.h y otro llamado Matrix.cpp
//Matrix.h.
h
#ifndef _MATRIX_H_
#define _MATRIX_H_
# include lt; math.hgt
#include lt; ;
#include lt;float.hgt;
#include lt;iostream.hgt;
clase Matrixobj
{ p>
matriz flotante[3][3];
cofactor flotante(int i, int j
público:
void displayMatrix();
void readMatrix();
operador de Matrixobj amigo (matrixobj amp; x, Matrixobj amp; y);
operador de Matrixobj amigo-(matrixobj amp; ; x, matrizobj & y);
operador de matrizobj-(matrixobj & x, matrizobj & y); x, float d);
float MatrixDeterminent();
MatrixObj MatrixInverse()
MatrixObj MatrixTranspose();
} ;
void Matrixobj::displayMatrix()
{
int i,j;
for (i = 0; i lt ; 3; i )
{
para (j = 0; j lt; 3 ; j )
coutlt;lt; ];
coutlt;lt;"\n"lt;lt;endl;
}
}
}
void Matrixobj::readMatrix()
{
int i, j ;
float x=0;
for (i = 0; i lt; 3; i )
for (j = 0; j lt; 3 ; j )
{
cingt; gt; x;
matriz[i][j] = x;
}
}
matriz flotanteobj::cofactor( int i, int j)
{
float cofactorValue;
int a1, b1, c1, d1, a2, b2, c2, d2 ; p>
a1 = (i 1) 3;
b1 = (j 1) 3
c1 = (i 2) 3;
d1 = (j 2) 3
a2 = (i 2) 3
b2 = (j 1)
c2 = (i 1) 3;
d2 = (j 2) 3;
cofactorValue = matriz[a1][b1] * matriz[c1][d1] - matriz[a2][b2] * matriz[c2][d2];
return cofactorValue;
}
matriz flotanteobj::matrixDeterminent() p>
{
float det;
det = matriz[0][0] * cofactor(0,0);
det = matriz [0][1] * cofactor(0, 1);
det = matriz[0][2] * cofactor(0, 2);
devolver det; p> p>
}
matrixobj Matrixobj::matrixInverse()
{
float det;
int i, j;
matrixobj z, y
det = MatrixDeterminent();
for (i = 0; i lt; 3; i)
for (j = 0; j lt; 3; j)
z.matrix[i][j] = cofactor(i, j);
z = z.matrixTranspose();
if (det == (flotante) 0)
{
salida(0);
}
y = z/det;
return y
}
matrixobj Matrixobj::matrixTranspose()
{
int i, j;
matrizobj z;
para (i = 0; i lt; 3; i)
for (j = 0; j lt; 3; j)
z.matrix[j][i] = matriz[i][j];
devuelve z ;
}
operador Matrixobj (matrixobj amp; x, Matrixobj amp; y)
{
matrixobj z
int i, j;
for (i = 0; i lt; 3; i)
for (j = 0; j lt; 3; j)
z.matrix[i][j] = x.matrix[i][j] y .matrix[i][j];
devuelve z;
}
operador Matrixobj-(matrixobj amp; x, Matrixobj amp; y)
{
matrixobj z;
int i, j
para (i = 0; i lt; 3; i )
para (j = 0; j lt; 3; j )
z.matrix[i][j] = x.matrix[i][j] - y.matrix[i][j]
return z
}
operador objetomatrix*(objmatrix amp; x, objmatrix amp; y)
{
objmatrix z;
int i, j , k;
para (i = 0; i lt; 3; i)
para (j = 0; j lt; 3; j)
z.matrix[i][j] = 0;
para (i = 0; i lt; 3; i )
para (j = 0; j lt; 3; j )
para (k = 0; k lt; 3; k )
z.matrix[i][j] = x.matrix[i][k] * y .matrix[k][j];
return z;
}
operadormatrixobj/(matrixobj amp; x, float d)
{
int i, j;
matrizobj z;
for (i = 0; i lt; 3; i)
para (j = 0; j lt; 3; j)
z.matrix[i][j] = x.matrix[i][j] / d;
coutlt;lt;"\n"lt;lt;endl;
return z;
}
#endif
// Matrix.cpp
#include lt;stdio.hgt;
#include lt;conio.hgt;
#include "matrix.h"
#include lt; float.hgt;
#include lt;
void main()
{ p>
matrixobj a, b, c;
float x;
coutlt; "Ingrese una matriz de 3 por 3:\n"; p> p>
a.readMatrix();
coutlt;lt; "Ingrese una matriz de 3 por 3 (B):\n";
b.readMatrix(
coutlt;lt; "Las matrices (A) (B) son:\n"
c = a b; ;
getch();
coutlt;lt; "Las matrices (A) - (B) son:\n"; ;
c.displayMatrix();
getch();
coutl
t;lt; "Las matrices (A) * (B) son:\n";
c = a * b;
c.displayMatrix();
getch();
x = a.matrixDeterminent();
getch();
c = a.matrixInverse();
c.displayMatrix();
getch();
}