
Лаба 1-6 ОАИП, 2сем, 1 курс [Вариант 1] / Отчет2_2
.docx/*
Трацевский Никита Андреевич, группа 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;
Скриншот работоспособности программы: