gagiD

Jednacine

Apr 19th, 2014
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.75 KB | None | 0 0
  1. #include <iostream>
  2. #include <cmath>
  3.  
  4. using namespace std;
  5.  
  6. float detM(float A[15][15] , int n) {
  7.     float sum(0), t[15][15];
  8.     if ( n == 1 ) return A[0][0];
  9.     if( n == 2 ) return A[0][0]*A[1][1] - A[0][1]*A[1][0];
  10.  
  11.     for(int p=0; p<n; p++) {
  12.         int h = 0,k = 0;
  13.         for(int i=1 ; i<n ; i++ ) {
  14.             for(int j=0 ; j<n ; j++) {
  15.                 if( j == p ) continue;
  16.                 t[h][k] = A[i][j];
  17.                 k++;
  18.                 if( k == n-1 ) {
  19.                     h++;
  20.                     k = 0;
  21.                 }
  22.  
  23.             }
  24.         }
  25.  
  26.         sum += A[0][p]*pow(-1,p)*detM(t,n-1);
  27.     }
  28.  return sum;
  29. }
  30.  
  31. void upisM(float (&A)[15][15] , int n) {
  32.     for ( int i=0 ; i<n ; i++ ) {
  33.         for ( int j=0 ; j<n ; j++ ) {
  34.             cout<<"A["<<i+1<<"]["<<j+1<<"]=";
  35.             cin>>A[i][j];
  36.         }
  37.     }
  38. }
  39.  
  40. void upisV(float (&b)[15] , int n) {
  41.     for ( int i=0 ; i<n ; i++ ) {
  42.             cout<<"b["<<i+1<<"]=";
  43.             cin>>b[i];
  44.     }
  45. }
  46.  
  47. void menjaj(int n , int q , float (&A)[15][15] , float (&b)[15] ) {
  48.     float tmp;
  49.     for ( int i=0 ; i<n ; i++ ) {
  50.         tmp = A[i][q];
  51.         A[i][q] = b[i];
  52.         b[i] = tmp;
  53.     }
  54. }
  55.  
  56.  
  57. int main()
  58. {
  59.     int n;
  60.     float A[15][15] , b[15] , x[15] , detS , detX;
  61.  
  62.     cout<<"Unesite red matrice:"<<endl;
  63.     cin>>n;
  64.  
  65.     upisM(A , n);
  66.  
  67.     upisV(b , n);
  68.  
  69.     detS = detM(A , n);
  70.  
  71.     if ( detS == 0 ) cout<<"Sistem nema konacna resenja"<<endl;
  72.     else {
  73.         for ( int i=0 ; i<n ; i++ ) {
  74.             menjaj(n , i , A , b);
  75.             detX = detM(A , n);
  76.             x[i] = detX / detS ;
  77.             menjaj(n , i , A , b);
  78.             cout<<"x["<<i+1<<"]="<<x[i]<<endl;
  79.         }
  80.     }
  81.     return 0;
  82. }
Advertisement
Add Comment
Please, Sign In to add comment