Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- #include < math.h >
- double round (double x)
- {
- return ((x - floor(x)) >= 0.5) ? ceil(x) : floor(x);
- }
- int main()
- {
- setlocale(LC_ALL, "Russian");
- int i,j,m;//,n,h;
- cout << "введите количество элементов после запятой m=";
- cin >> m;
- //cout << "введите количество строк матрицы B n+1=";
- //cin >> n;
- //cout << "введите количество столбцов матрицы B h+1=";
- //cin >> h;
- double long B[100][100];
- double long C[100][100];
- long double A[3][4];
- A[1][1]=1.2345; A[2][1]=2.3456; A[3][1]=3.4567; A[1][2]=3.1415; A[1][3]=1; A[1][4]=7.7975; A[2][2]=5.9690; A[3][2]=2.1828; A[2][3]=0; A[2][4]=14.2836; A[3][3]=2.8; A[3][4]=8.6063;
- for(i=1; i<4; i++)
- {
- B[i][1]=(round((A[i][1])*pow(10,m)))/pow(10,m);
- }
- for(j=1; j<5; ++j)
- {
- C[1][j]=(round((A[1][j]/B[1][1])*pow(10,m))/pow(10,m));
- }
- for(i=1; i<4; ++i)
- {
- B[i][2]=(round((A[i][2]-(round((B[i][1]*C[1][2])*pow(10,m)))/pow(10,m))*pow(10,m)))/pow(10,m);
- }
- for(j=3; j<5; j++)
- {
- C[2][j]=(round((((round((A[2][j]-((round((B[2][1]*C[1][j])*pow(10,m)))/pow(10,m)))*pow(10,m)))/pow(10,m))/B[2][2])*pow(10,m)))/pow(10,m);
- }
- B[3][3]=(round((B[3][1]*C[1][3])*pow(10,m)))/pow(10,m); B[3][3]=(round((B[3][3])*pow(10,m)))/pow(10,m)+(round((B[3][2]*C[2][3])*pow(10,m)))/pow(10,m); B[3][3]=A[3][3]-(round((B[3][3])*pow(10,m)))/pow(10,m); B[3][3]=(round((B[3][3])*pow(10,m)))/pow(10,m);
- C[3][4]=(round((B[3][1]*C[1][4])*pow(10,m)))/pow(10,m); C[3][4]=C[3][4]+(round((B[3][2]*C[2][4])*pow(10,m)))/pow(10,m); C[3][4]=A[3][4]-(round((C[3][4])*pow(10,m))/pow(10,m)); C[3][4]=(round((C[3][4])*pow(10,m))/pow(10,m))/B[3][3];
- C[3][4]=(round((C[3][4])*pow(10,m))/pow(10,m));
- double x1,x2,x3,z1,z2,z3;
- //Решаем систему Bz = b
- z1 = A[1][4]/B[1][1];
- z1 = round(z1*pow(10,m)) / pow(10,m);
- z2 = (A[2][4]-(B[2][1]*z1))/B[2][2];
- z2 = round(z2*pow(10,m)) / pow(10,m);
- z3 = ((A[3][4] - (B[3][1]*z1) - (B[3][2]*z2))) / B[3][3];
- z3 = round(z3*pow(10,m)) / pow(10,m);
- // Решаем систему Cx = z
- x3 = C[3][4];
- x3 = round(x3*pow(10,m)) / pow(10,m);
- x2 = C[2][4] - (round((C[2][3]*x3)*pow(10,m))/pow(10,m));
- x2 = round(x2*pow(10,m)) / pow(10,m);
- x1=C[1][4]-C[1][3]*x3-C[1][2]*x2;
- x1 = round(x1*pow(10,m)) / pow(10,m);
- cout << "Матрица А \n";
- for(i=1; i<4;i++)
- {
- for (j=1;j<5;j++)
- cout << (round((A[i][j])*pow(10,m)))/pow(10,m) << "\t" ;
- cout << endl;
- }
- cout << "Матрица D" << endl;
- cout << "1 строка: " << B[1][1] << " " << C[1][2] << " " << C[1][3] << " " << C[1][4] << endl;
- cout << "2 строка: " << B[2][1] << " " << B[2][2] << " " << C[2][3] << " " << C[2][4] << endl;
- cout << "3 строка: " << B[3][1] << " " << B[3][2] << " " << B[3][3] << " " << C[3][4] << endl << endl << endl;
- cout << "Решение СЛАУ" << endl;
- cout << "x1=" << x1 << " " << "x2=" << x2 << " " << "x3=" << x3 << endl;
- cout << "Решение СЛАУ" << endl;
- cout << "z1=" << z1 << " " << "z2=" << z2 << " " << "z3=" << z3 << endl;
- cout
- << "B[1][1]=" << B[1][1] << endl
- << "B[2][1]=" << B[2][1] << endl
- << "B[3][1]=" << B[3][1] << endl
- << "B[2][2]=" << B[2][2] << endl
- << "B[3][2]=" << B[3][2] << endl
- << "B[3][3]=" << B[3][3] << endl
- << "C[1][2]=" << C[1][2] << endl
- << "C[1][3]=" << C[1][3] << endl
- << "C[1][4]=" << C[1][4] << endl
- << "C[2][3]=" << C[2][3] << endl
- << "C[2][4]=" << C[2][4] << endl
- << "C[3][4]=" << C[3][4] << endl;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement