// Err=DetMat(n,A,det); // без демонстрации
// Err=DetMat(n,A,det,2); // вывод на дисплей
// Err=DetMat(n,A,det,-2); // выводвфайл detmat.dat
Err=DetMat(n,A,det,-2,"murka.dat"); // выводвфайл murka.dat
// выводрезультата
cout<<endl;
cout<<"Err = "<<Err<<endl;
cout<<"det = "<<det<<endl;
getch();
}
Листинг 2
#define DEMO
/*
Модуль Matrix
╔═════════════════════════════════════════════════════════════╗
║ Некоторые функции для работы с матрицами ║
╚═════════════════════════════════════════════════════════════╝
╔════════════════════════════════════════════════════════════════════╗
║ Модуль содержит подпрограммы-функции: ║
╟────────────────────────────────────────────────────────────────────╢
║ 14).DetMat - вычисление определителя квадратной матрицы; ║
╚════════════════════════════════════════════════════════════════════╝
*/
#include <math.h>
#include <conio.h>
#include <string.h>
#include "define.h"
#include "dmatrix.h"
// глобальная переменная
string FileName;
//════════════════════════════════════════════════════════════════════
// Начало функции DetMat
//════════════════════════════════════════════════════════════════════
int DetMat(int n, Matrix A, double& det, int keyDemo, string FileName_)
/*
╔════════════════════════════════════════════════════════════════════╗
║ Функция для вычисления определителя квадратной матрицы ║
╚════════════════════════════════════════════════════════════════════╝
╔════════════════════════════════════════════════════════════════════╗
║ Входные переменные: ║
╟────────────────────────────────────────────────────────────────────╢
║ n - число строк и столбцов квадратной матрицы; ║
║ A - сама матрица (двумерный массив); ║
╠════════════════════════════════════════════════════════════════════╣
║ Выходные переменные: ║
╟────────────────────────────────────────────────────────────────────╢
║ det - определитель матрицы; ║
╠════════════════════════════════════════════════════════════════════╣
║ Возвращаемое значение - DetMat=Err - код ошибки: ║
║ Err = 0 - все нормально; ║
║ Err > 0 - при выполнении алгоритма происходит попытка деления ║
║ на нулевой элемент. Значение Err равно номеру шага, ║
║ на котором это происходит. ║
╚════════════════════════════════════════════════════════════════════╝
╔════════════════════════════════════════════════════════════════════╗
║(C) N.V.Usoltsev Create 27.04.99 Var 03 - 01.09.06 Test 01.09.06 ║
╚════════════════════════════════════════════════════════════════════╝
*/
{
// описание данных
int i,j,k;
double c,P;
Matrix AW;
// изменение глобальной переменной
strcpy(FileName,FileName_);
// переписывание исходной матрицы в рабочий массив AW
for (i=1; i<=n; i++)
for (j=1; j<=n; j++)
AW[i][j]=A[i][j];
#ifdef DEMO
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.