Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #define SizeArray 3
- using namespace std;
- double fDet(double flArray[SizeArray][SizeArray])
- {
- double lfDet;
- lfDet = flArray[0][0] * flArray[1][1] * flArray[2][2] + flArray[1][0] * flArray[2][1] * flArray[0][2] + flArray[0][1] * flArray[1][2] * flArray[2][0] - flArray[0][2] * flArray[1][1] * flArray[2][0] - flArray[0][0] * flArray[1][2] * flArray[2][1] - flArray[0][1] * flArray[1][0] * flArray[2][2];
- return(lfDet);
- }
- void fMatr(double flArray[SizeArray][SizeArray],double flBArr[SizeArray], double *flXArr, char chFlag)
- {
- double lfTrArr[SizeArray][SizeArray];
- lfTrArr[0][0] = flArray[1][1] * flArray[2][2] - flArray[1][2] * flArray[2][1];
- lfTrArr[1][0] = (flArray[1][0] * flArray[2][2] - flArray[2][0] * flArray[1][2])*(-1);
- lfTrArr[2][0] = flArray[1][0] * flArray[2][1] - flArray[2][0] * flArray[1][1];
- lfTrArr[0][1] = (flArray[0][1] * flArray[2][2] - flArray[2][1] * flArray[0][2])*(-1);
- lfTrArr[1][1] = flArray[0][0] * flArray[2][2] - flArray[2][0] * flArray[0][2];
- lfTrArr[2][1] = (flArray[0][0] * flArray[2][1] - flArray[2][0] * flArray[0][1])*(-1);
- lfTrArr[0][2] = flArray[0][1] * flArray[1][2] - flArray[1][1] * flArray[0][2];
- lfTrArr[1][2] = (flArray[0][0] * flArray[1][2] - flArray[1][0] * flArray[0][2])*(-1);
- lfTrArr[2][2] = flArray[1][1] * flArray[0][0] - flArray[1][0] * flArray[0][1];
- cout.width(-7);
- if (chFlag == 'y')
- {
- cout << "\ndet=" << fDet(flArray) << endl;
- for (int i = 0; i < SizeArray; ++i)
- {
- cout << endl;
- for (int j = 0; j < SizeArray; ++j)
- {
- cout << lfTrArr[i][j]/fDet(flArray) << "\t";
- }
- }
- }
- flXArr[0] = (lfTrArr[0][0] * flBArr[0] + lfTrArr[0][1] * flBArr[1] + lfTrArr[0][2] * flBArr[2]) / fDet(flArray);
- flXArr[1] = (lfTrArr[1][0] * flBArr[0] + lfTrArr[1][1] * flBArr[1] + lfTrArr[1][2] * flBArr[2]) / fDet(flArray);
- flXArr[2] = (lfTrArr[2][0] * flBArr[0] + lfTrArr[2][1] * flBArr[1] + lfTrArr[2][2] * flBArr[2]) / fDet(flArray);
- }
- void fKram(double flArray[SizeArray][SizeArray], double flBArr[SizeArray], double *flXArr, char chFlag)
- {
- double lfTempArr[SizeArray][SizeArray];
- for (int i = 0; i < SizeArray; ++i)
- {
- for (int j = 0; j < SizeArray; ++j)
- {
- lfTempArr[i][j] = flArray[i][j];
- }
- }
- for (int j = 0; j < SizeArray; ++j)
- {
- lfTempArr[j][0] = flBArr[j];
- }
- flXArr[0] = fDet(lfTempArr) / fDet(flArray);
- if (chFlag == 'y')
- {
- cout << "det1=" << fDet(lfTempArr) << endl;
- }
- for (int i = 0; i < SizeArray; ++i)
- {
- for (int j = 0; j < SizeArray; ++j)
- {
- lfTempArr[i][j] = flArray[i][j];
- }
- }
- for (int j = 0; j < SizeArray; ++j)
- {
- lfTempArr[j][1] = flBArr[j];
- }
- flXArr[1] = fDet(lfTempArr) / fDet(flArray);
- if (chFlag == 'y')
- {
- cout << "det2= " << fDet(lfTempArr) << endl;
- }
- for (int i = 0; i < SizeArray; ++i)
- {
- for (int j = 0; j < SizeArray; ++j)
- {
- lfTempArr[i][j] = flArray[i][j];
- }
- }
- for (int j = 0; j < SizeArray; ++j)
- {
- lfTempArr[j][2] = flBArr[j];
- }
- flXArr[2] = fDet(lfTempArr) / fDet(flArray);
- if (chFlag == 'y')
- {
- cout << "det3= " << fDet(lfTempArr) << endl;
- }
- }
- int main()
- {
- double flArray[SizeArray][SizeArray] = { {0.46,1.72,2.53},{1.53,-2.32,-1.83},{0.75,0.86,3.72} }, flBArr[SizeArray] = { 2.44,2.83,1.06 }, flXArr[SizeArray];
- char chFlag;
- cout << "Enter y to output all actions:" << endl;
- chFlag=cin.get();
- fMatr(flArray, flBArr, flXArr, chFlag);
- cout << "\n\nMATRIX method:\n\tx1=" << flXArr[0] << "\n" << "\tx2= " << flXArr[1] << "\n" << "\tx3= " << flXArr[2] << endl;
- cout << "\n\t\t******\n" << endl;
- fKram(flArray, flBArr, flXArr, chFlag);
- cout << "\nKRAMER method:\n\tx1=" << flXArr[0] << "\n" << "\tx2= " << flXArr[1] << "\n" << "\tx3= " << flXArr[2] << endl;
- cin.get();
- cin.get();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement