Код | float det(float [20][20], int); //___________________________________________________________________ void iskl(float a[20][20], int k, int n) //cyda peredaetsya matrica temp { int i, j; float r, b[40];
r=a[k][k]; for (j=k; j<n+1; j++) a[k][j]/=r; for (i=k+1; i<n; i++) { r=a[i][k]; for(j=k; j<n+1; j++) a[i][j]-=a[k][j]*r; } } //____________________________________________________________________ int _tmain(int argc, _TCHAR* argv[]) { int i, j, n, k; float a[20][20], d[20][20], b[40], temp[20][20], t, intDet; char anyKey; //____sozdanie____ ofstream outfile("matr1.txt"); cout<<"VVedite razmernost yravneniya: "; cin >> n; cout<<endl; cout<<"Vvedite postro4no matricy:"<<endl; for (i=0; i<(n*n+n); i++) { cin >> t; outfile << t <<" "; } outfile.close(); cout<<"Poly4ennaya matrica:"<<endl; //_____4tinie i pe4at_____ fstream infile("matr1.txt"); for (i=0; i<n; i++) //bilo n+1 { cout<<endl; for (j=0; j<n+1; j++) { infile >> t; temp[i][j]=t; cout<<t<<" "; } } //_____razbivaem matricy na matrice i vecto //matrica for (i=0; i<n; i++) for (j=0; j<n; j++) a[i][j]=temp[i][j]; //vector // for (i=0; i<n; i++) // b[i]=temp[i][n+1]; //___proveryaem est li reweniya intDet=det(a, n); if (intDet==0) { cout<<"Reweniya net. "; goto net; } else { cout<<"Sistema rewaema )) YRA ))"<<endl; cout<<"det= "<<intDet; } //____pryamoi xod_______ cout<<"Treygolnii vid:"<<endl; for (i=0; i<n; i++) iskl(temp, i, n); for (i=0; i<n; i++) { cout<<endl; for (j=0; j<n+1; j++) cout<<temp[i][j]<<' '; }
//________obratnii xod, t.e. rewenie sistemi cout<<"\n"; for (i=0; i<n+1; i++){b[i]=temp[i][n]; cout<<b[i]<<" ";} cout<<"\n"<<"Rewenie SLAY:"<<endl; for (i=n; i>-1; i--) { b[i]/=temp[i][i]; for (j=i+1; j<n; j++) b[i]-=b[j]*temp[i][j]; } for (i=0; i<n; i++) cout<<b[i]<<" "; net: cout<<"\nPress anykey to exit."; cin>>anyKey; return 0; } //___________________________________________ float det(float b[20][20], int n) { float x,s; int i,j,k; for (i=0; i<n-1; i++) for (k=i+1; k<n; k++) { x=b[k][i]/b[i][i]; for (j=i; j<n; j++) b[k][j]=b[k][j]-b[i][j]*x; //tyt perepolnenie ((( } s=1; for (i=0; i<n; i++) s=s*b[i][i]; return s;
}
|
|