La Web del Programador: Comunidad de Programadores
 
    Pregunta:  747 - MANEJO DE MATRICES EN VISUAL C++ 6.0
Autor:  Lucía
No manejo bien el Visual C++ 6.0, y tengo que hacer un programa que ingrese datos a una matriz de 20 por 20, calcule la inversa de esa matriz y muestre la matriz resultante por pantalla, en lo posible con una muy buena presentación.
Si alguien me puede orientar sobre como hacerlo, le estaría eternamente agradecida.

  Respuesta:  Willser F. González C.
Esto te puede ayudar, es el algoritmo que calcula la inversa de una matriz.

/*-----
Función que calcula la inversa de una matriz cuadrada.

Parámetros :

vfMtriz : Recibe la dirección de la matriz Inicial a la que se le calculará la Inversa.
bError : Recibe la dirección de una variable donde se indicará sí fue posible o no calcular la matriz Inversa, asignándole un valor de TRUE o FALSE respectivamente.
-----*/

void MtrizInvrsa(float vfMtriz[][], BOOL &bError)
{
int i, j, k;

float fPbte1 = 0.0f, fPbte2 = 0.0f;

float vfInvrsa[20][20];

// Asignar unos (1) a su Diagonal - Matriz Identidad.

for (i = 0; i < 20; i++) // Asignar unos.
vfInvrsa[i][i] = 1.0f;

// Calcular la Inversa de la matriz.

for (j = 0; j < 20; j++) // Para cada Columna.
for (i = 0; i < 20; i++) // Para cada Fila.
{
if (i == j || vfMtriz[i][j] == 0)
continue;

fPbte1 = vfMtriz[j][j];
fPbte2 = vfMtriz[i][j];

for (k = 0; k < 20; k++)
{
vfInvrsa[i][k] = vfInvrsa[i][k] * fPbte1 - vfInvrsa[j][k] * fPbte2;
vfMtriz[i][k] = vfMtriz[i][k] * fPbte1 - vfMtriz[j][k] * fPbte2;
}
}

// Convertir la diagonal de la

  Respuesta:  Jose Luis De la Cruz
Hola, te recomiendo que para que implementes una matriz en VC, crees un objeto CMatriz que que pinte en la vista los m*m elementos de la matriz como rectangulos solidos dispuestos en m filas y m columnas, y que responda al evento WM_CHAR cada vez que escribas un numero, luego este se asignara al elemento, ademas cada rectangulo debe responder al evento click para asi tener el foco cada elemento.......al final recien implementas tu rutina para hacer los calculos. si quieres averiguar mas sobre los objetos en la vista echale un vistazo al ejemplo DRAWCLI en el CD de VC.
Yo tambien estoy trabajando en un programa que maneja matrices en Visual C++, y tengo rutinas que calculan la inversa de una matriz, por reduccion gausiana o tambien por cofactores, pero estan implementadas en C++ para DOS( que no es problema para pasarlo a VC). Si quieres algunas de las rutinas solo escribeme, SUERTE..