All pastes #13187 Raw Edit

Montante algor

public cpp v1 · immutable
#13187 ·published 2005-06-02 15:54 UTC
rendered paste body
//Montante algorithm, implemented by Tigrux#include <iostream>#include <iomanip>using namespace std;const int MAX= 3;const int ROWS= MAX;const int COLS= MAX;typedef long T;void Montante(T A[ROWS][COLS],T B[ROWS][COLS] );void imprimeMatriz(T A[ROWS][COLS]);int main() {	T A[ROWS][COLS]= {		{3, 9, 5},		{1, 5,10},		{2,-3,-1},				   };	T B[ROWS][COLS]= {		{1, 0, 0},		{0, 1, 0},		{0, 0, 1},	};	cout << "Matriz original"<< endl;	imprimeMatriz(A);	Montante(A,B);	cout << "Matriz reducida" << endl;	imprimeMatriz(A);		cout << "El valor del determinante es " << A[0][0] << endl;		cout << "Matriz adjunta" << endl;	imprimeMatriz(B);		return 0;}void Montante(T A[ROWS][COLS],T B[ROWS][COLS] ) {	int i,j;	T PivAnt=1,PivAct;	for(int k=0;k<ROWS;k++) { //Para toda la diagonal		PivAct= A[k][k];		for(i=0;i<ROWS;i++) //Para cada renglon			if(i != k) {				for(j=0;j<COLS;j++) //Para cada columna					if(j != k)						A[i][j]= ( A[i][j]*PivAct-A[i][k]*A[k][j] )/PivAnt;					for(j=0;j<COLS;j++) //Para cada columna 						B[i][j]=   ( B[i][j]*PivAct-A[i][k]*B[k][j] )/PivAnt;					A[i][k]= 0;			}			PivAnt= PivAct;	}}void imprimeMatriz(T A[ROWS][COLS] ) {	for(int i=0;i<ROWS;i++) {		for(int j=0;j<COLS;j++)			cout << setw(6) << A[i][j];			cout << endl;	}}