Red de conocimiento informático - Computadora portátil - Programación en lenguaje C (la suma, resta, multiplicación, transposición, lectura y guardado de dos matrices requiere un menú)

Programación en lenguaje C (la suma, resta, multiplicación, transposición, lectura y guardado de dos matrices requiere un menú)

El menú se cuida solo, solo por nombrar uno. Se pueden implementar la suma, resta, multiplicación y transposición de matrices

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

{

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

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()

{

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>

}

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()

{

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();

}