 
          47
        
        
          double
        
        
          e=0.001;
        
        
          bool
        
        
          shod(
        
        
          double
        
        
          a[4][4]){
        
        
          bool
        
        
          s0=fabs(a[0][0])>fabs(a[0][1])+fabs(a[0][2])+fabs(a[0][3]);
        
        
          bool
        
        
          s1=fabs(a[1][1])>fabs(a[1][0])+fabs(a[1][2])+fabs(a[1][3]);
        
        
          bool
        
        
          s2=fabs(a[2][2])>fabs(a[2][0])+fabs(a[2][1])+fabs(a[2][3]);
        
        
          bool
        
        
          s3=fabs(a[3][3])>fabs(a[3][0])+fabs(a[3][1])+fabs(a[3][2]);
        
        
          if
        
        
          (s0 && s1 && s2 && s3)
        
        
          returntrue
        
        
          ;
        
        
          elsereturnfalse
        
        
          ;
        
        
          }
        
        
          bool
        
        
          toch(
        
        
          double
        
        
          b[4],
        
        
          double
        
        
          c[4]){
        
        
          int
        
        
          i=0;
        
        
          for
        
        
          (i=0; i<4; i++){
        
        
          if
        
        
          (fabs(b[i]-c[i])>e){
        
        
          returnfalse
        
        
          ;
        
        
          }
        
        
          }
        
        
          returntrue
        
        
          ;
        
        
          }
        
        
          void
        
        
          pr_iter(){
        
        
          double
        
        
          x0[4]={-1,-1,-1,-1};
        
        
          int
        
        
          k_iter=0, i;
        
        
          if
        
        
          (shod(a)==
        
        
          true
        
        
          ){
        
        
          while
        
        
          (toch(x0,x)==
        
        
          false
        
        
          ){
        
        
          k_iter++;
        
        
          for
        
        
          (i=0; i<4; i++){
        
        
          x0[i]=x[i];
        
        
          }
        
        
          x[0]=(b[0]-a[0][1]*x0[1]-a[0][2]*x0[2]-a[0][3]*x0[3])/a[0][0];
        
        
          x[1]=(b[1]-a[1][0]*x0[0]-a[1][2]*x0[2]-a[1][3]*x0[3])/a[1][1];
        
        
          x[2]=(b[2]-a[2][0]*x0[0]-a[2][1]*x0[1]-a[2][3]*x0[3])/a[2][2];
        
        
          x[3]=(b[3]-a[3][0]*x0[0]-a[3][1]*x0[1]-a[3][2]*x0[2])/a[3][3];
        
        
          }
        
        
          }
        
        
          cout<<
        
        
          "Metod prostoi iteracii: k = "
        
        
          <<k_iter<<endl;
        
        
          for
        
        
          (i=0; i<4; i++){
        
        
          cout<<
        
        
          "\tx["
        
        
          <<i+1<<
        
        
          "] = "
        
        
          <<x[i]<<endl;
        
        
          }
        
        
          }
        
        
          void
        
        
          zeid(){
        
        
          double
        
        
          x0[4]={-1,-1,-1,-1};
        
        
          int
        
        
          k_iter=0, i;
        
        
          for
        
        
          (i=0; i<4; i++) x[i]=0;
        
        
          if
        
        
          (shod(a)==
        
        
          true
        
        
          ){
        
        
          while
        
        
          (toch(x0,x)==
        
        
          false
        
        
          ){
        
        
          k_iter++;
        
        
          for
        
        
          (i=0; i<4; i++){
        
        
          x0[i]=x[i];
        
        
          }
        
        
          x[0]=(b[0]-a[0][1]*x0[1]-a[0][2]*x0[2]-a[0][3]*x0[3])/a[0][0];
        
        
          x[1]=(b[1]-a[1][0]*x[0]-a[1][2]*x0[2]-a[1][3]*x0[3])/a[1][1];
        
        
          x[2]=(b[2]-a[2][0]*x[0]-a[2][1]*x[1]-a[2][3]*x0[3])/a[2][2];
        
        
          x[3]=(b[3]-a[3][0]*x[0]-a[3][1]*x[1]-a[3][2]*x[2])/a[3][3];
        
        
          }
        
        
          }
        
        
          cout<<
        
        
          "Metod Zeidelya: k = "
        
        
          <<k_iter<<endl;
        
        
          for
        
        
          (i=0; i<4; i++){
        
        
          cout<<
        
        
          "\tx["
        
        
          <<i+1<<
        
        
          "] = "
        
        
          <<x[i]<<endl;
        
        
          }
        
        
          }
        
        
          int
        
        
          main(){
        
        
          pr_iter();
        
        
          zeid();
        
        
          return
        
        
          0;}