Đăng Nhập

Vui lòng khai báo chính xác tên truy cập và mật khẩu!

Quên mật khẩu?

    định thức ma trận

      Trung Binh
      KhangITSGU

      Giới tính : Nam

      Tuổi : 30

      Đến từ : vn

      Ngày Tham gia : 31/10/2011

      Tổng số bài gửi : 57

      #1

       Wed Apr 04, 2012 8:39 pm

      a N giúp e code tính định thức ma trận cấp 4 5 6 nhé Yeu the
      Admin
      Admin

      Giới tính : Nam

      Đến từ : TPHCM

      Ngày Tham gia : 03/04/2011

      Tổng số bài gửi : 2292

      #2

       Wed Apr 04, 2012 9:30 pm

      KhangITSGU đã viết:a N giúp e code tính định thức ma trận cấp 4 5 6 nhé Yeu the
      có thể nói rõ hơn ko. nhập xuất ma trận
      Code:
      #include<stdio.h>
      #include<conio.h>
      void nhapmat(float a[][100],int n);
      void xuatmat(float a[][100],int n);
      float det(float a[][100],int n);
      void main()
      {
        float a[100][100];int n;
        printf("\nCHUONG TRINH TINH DINH THUC");
        printf("\nNhap cap cua ma tran ");
        scanf("%d",&n);
        nhapmat(a,n);
        printf("\n");
        xuatmat(a,n);
        printf("\n");
        printf("Dinh thuc cua ma tran La:%4.2f ",det(a,n));
        printf("\nGood bye!");
        getch();
      }
      // ham nhap ma tran
      void nhapmat(float a[][100],int n)
      {
          for(int i=0;i<n;i++)
          for(int j=0;j<n;j++)
            {
            printf("a[%d][%d]= ",i+1,j+1);
            scanf("%f",&a[i][j]);
            }
      }
      //Ham xuat ma tran
      void xuatmat(float a[][100],int n)
      {
          for(int i=0;i<n;i++)
          {
          for(int j=0;j<n;j++) printf("%4.2f ",a[i][j]);
          printf("\n");
          }
      }
      // ham tinh dinh thuc
      float det(float a[][100],int n)
      {
          int i,j,k,dem=0,kt;
          float b[100],h,det=1,c[100];
          for(i=0;i<n-1;i++)
          {
            if(a[i][i]==0)
            {
            kt=0;
            for(j=0;j<n;j++)
                if(a[i][j]!=0)
                {
                  for(k=0;k<n;k++)
                  {// Doi cot j voi cot i
                    c[k]=a[k][i];
                      a[k][i]=a[k][j];
                      a[k][j]=c[k];
                    }
                  dem++;// dem so lan doi cot
                  kt++;// Kiem tra xem co so 0 o dong i cot j
                  break;
                }
            }
          if(kt==0) return 0;
          b[i]=a[i][i];
          for(j=0;j<n;j++) a[i][j]=a[i][j]/b[i];//tao so 1 o dong i,cot i
          for(j=i+1;j<n;j++)
          {
            h=a[j][i];
            for(k=0;k<n;k++) a[j][k]=a[j][k]-h*a[i][k];//lay dong thu j-h*dong i
          }
          }
      b[n-1]=a[n-1][n-1];
      for(i=0;i<n;i++) det=det*b[i];// Nhan cac so da lay ra ngoai dinh thuc
      if(dem%2==0) return det;
      else return -det;
      }
      Trung Binh
      KhangITSGU

      Giới tính : Nam

      Tuổi : 30

      Đến từ : vn

      Ngày Tham gia : 31/10/2011

      Tổng số bài gửi : 57

      #3

       Thu Apr 05, 2012 3:35 pm

      hay wa, nhưng ko cần phải float đâu, trông nó xấu cái ma trận ^^ e xài long lả đủ
      nếu dc a viết cho e 1 ứng dụng trên máy = C# dùng để tính định thức nhé Wink
      Admin
      Admin

      Giới tính : Nam

      Đến từ : TPHCM

      Ngày Tham gia : 03/04/2011

      Tổng số bài gửi : 2292

      #4

       Thu Apr 05, 2012 10:46 pm

      KhangITSGU đã viết:hay wa, nhưng ko cần phải float đâu, trông nó xấu cái ma trận ^^ e xài long lả đủ
      nếu dc a viết cho e 1 ứng dụng trên máy = C# dùng để tính định thức nhé Wink

      viet c# cho đẹp ak.nếu rãnh a sẽ viết.tại đang bận wa..... Bùn
      Trung Binh
      KhangITSGU

      Giới tính : Nam

      Tuổi : 30

      Đến từ : vn

      Ngày Tham gia : 31/10/2011

      Tổng số bài gửi : 57

      #5

       Wed Jun 20, 2012 8:07 pm

      a giải thích giúp em cái thuật toán tính det của anh đi :-?
      #6