Скачиваний:
74
Добавлен:
15.06.2014
Размер:
40.86 Кб
Скачать

/*

Трацевский Никита Андреевич, группа 243302

Лабораторная работа №1

Тема: РЕШЕНИЕ СИСТЕМ ЛИНЕЙНЫХ АЛГЕБРАИЧЕСКИХ УРАВНЕНИЙ (СЛАУ)

Вариант 1

*/

Консольный режим.

Код программы:

#include <vcl.h>

#pragma hdrstop

#include <iostream.h>

#include <math.h>

#include <conio.h>

#pragma argsused

int main(int argc, char* argv[])

{

double** a;

double* x;

double* b;

int n;

a = new double*[n];

x = new double[n];

b = new double[n];

cout << "Vvedite razmernost’(n)\n: ";

cin >> n;

for(int i=0; i<n; i++)

a[i] = new double[n];

cout << "Vvedite matricu(a):\n";

for(int i=0; i<n; i++)

for(int j=0; j<n; j++)

cin >> a[i][j];

cout << "Vvedite stolbec(b): \n";

for(int i=0; i<n; i++)

cin >> b[i];

for(int k=0; k<n-1; k++)

{

int p = k;

for(int m=k+1; m<n; m++)

{

if(fabs(a[p][k]) < fabs(a[m][k]))

p = m;

}

double r;

for(int j=k; j<n; j++)

{

r = a[k][j];

a[k][j] = a[p][j];

a[p][j] = r;

}

r = b[k];

b[k] = b[p];

b[p] = r;

for(int m=k+1; m<n; m++)

{

double c = a[m][k] / a[k][k];

b[m] = b[m] - c*b[k];

for(int i=k; i<n; i++)

a[m][i] = a[m][i] - c*a[k][i];

}

x[n-1]=b[n-1]/a[n-1][n-1];

for(int g=n-1; g>=0; g--)

{

double s = 0;

for(int d=g+1; d<n; d++)

s += a[g][d]*x[d];

x[g] = (b[g]-s)/a[g][g];

}

}

cout << "\nMatrica(x): ";

for(int i = 0; i < n; i++)

cout << x[i] << " ";

double H = 0;

for(int i = 0; i < n; i++)

{

double q = 0;

for(int j = 0; j < n; j++)

{

q += a[i][j] * x[j];

}

H = fabs(b[i] - q);

cout << "Nevyazka = " << H <<endl;

}

for(int i=0; i<0; i++) delete[] a[i];

delete [] a;

delete [] b;

delete [] x;

getch();

return 0;

Скриншот работоспособности программы:

Соседние файлы в папке Лаба 1-6 ОАИП, 2сем, 1 курс [Вариант 1]