Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cmath>
- using namespace std;
- float detM(float A[15][15] , int n) {
- float sum(0), t[15][15];
- if ( n == 1 ) return A[0][0];
- if( n == 2 ) return A[0][0]*A[1][1] - A[0][1]*A[1][0];
- for(int p=0; p<n; p++) {
- int h = 0,k = 0;
- for(int i=1 ; i<n ; i++ ) {
- for(int j=0 ; j<n ; j++) {
- if( j == p ) continue;
- t[h][k] = A[i][j];
- k++;
- if( k == n-1 ) {
- h++;
- k = 0;
- }
- }
- }
- sum += A[0][p]*pow(-1,p)*detM(t,n-1);
- }
- return sum;
- }
- void upisM(float (&A)[15][15] , int n) {
- for ( int i=0 ; i<n ; i++ ) {
- for ( int j=0 ; j<n ; j++ ) {
- cout<<"A["<<i+1<<"]["<<j+1<<"]=";
- cin>>A[i][j];
- }
- }
- }
- void upisV(float (&b)[15] , int n) {
- for ( int i=0 ; i<n ; i++ ) {
- cout<<"b["<<i+1<<"]=";
- cin>>b[i];
- }
- }
- void menjaj(int n , int q , float (&A)[15][15] , float (&b)[15] ) {
- float tmp;
- for ( int i=0 ; i<n ; i++ ) {
- tmp = A[i][q];
- A[i][q] = b[i];
- b[i] = tmp;
- }
- }
- int main()
- {
- int n;
- float A[15][15] , b[15] , x[15] , detS , detX;
- cout<<"Unesite red matrice:"<<endl;
- cin>>n;
- upisM(A , n);
- upisV(b , n);
- detS = detM(A , n);
- if ( detS == 0 ) cout<<"Sistem nema konacna resenja"<<endl;
- else {
- for ( int i=0 ; i<n ; i++ ) {
- menjaj(n , i , A , b);
- detX = detM(A , n);
- x[i] = detX / detS ;
- menjaj(n , i , A , b);
- cout<<"x["<<i+1<<"]="<<x[i]<<endl;
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment