Từ 1 tới 7 trên tổng số 7 kết quả

Đề tài: Cho Ngọc Anh xin code của phép tính det trong Ma trận có bộ nhớ cấp phát động mới na

  1. #1
    Ngày gia nhập
    09 2008
    Bài viết
    4

    Exclamation Cho Ngọc Anh xin code của phép tính det trong Ma trận có bộ nhớ cấp phát động mới na

    Cho Ngọc Anh xin code của phép tính det trong Ma trận có bộ nhớ cấp phát động trong C++ mới na ..

    Ngọc Anh đang làm 1 bài tập về ma trận mà ngốc quá à đến phần này hok biết nên sao nữa .
    Thầy hướng dẫn qua là đầu tiên ý , khai báo struct như này nà :

    struct Matran
    {
    int h,c ; // số hàng , cột cho ma trận.
    float *a; // cái này vì ma trận cấp phát động mà.
    };


    Như thế là khi khai báo , Ngọc Anh sẽ dùng NewDelete để tạo ma trận .
    Ví dụ này nà :

    Matran mt;
    mt.a=new float[mt.h*mt.c];


    lúc sử dụng vòng lặp có dạng :

    for(int i; i<mt.h; i++)
    for (int j; i<mt.c ; j++)
    *(mt.a+i*mt.h+j) ..... // xây mảng 2 chiều kiểu động này Ngọc Anh nhớ mà hok hiểu , giải thích giùm Ngọc Anh mới nha.


    Đó , kiểu viết dạng dạng ý đó , vì nà Ngọc Anh học khoa văn hóa cơ , nhưng mà bạn thân Ngọc Anh nhờ đi hộ nó tháng này ý vì nhà nó có việc ở quê , Ngọc Anh chỉ biết sơ qua về C và C ++ cho nên đừng cười na .

    Cả nhà mình giúp Ngọc Anh viết cái hàm tính det cho ma trận với kiểu trên nha. Cám ơn nhiều nhắm ý ( mà nhớ giải thích giùm Ngọc anh tính thế nào na , hii )..
    Đã được chỉnh sửa lần cuối bởi Ngọc Anh hp : 21-09-2008 lúc 08:22 AM.

  2. #2
    Ngày gia nhập
    02 2008
    Bài viết
    1,009

    Đó , kiểu viết dạng dạng ý đó , vì nà Ngọc Anh học khoa văn hóa cơ , nhưng mà bạn thân Ngọc Anh nhờ đi hộ nó tháng này ý vì nhà nó có việc ở quê , Ngọc Anh chỉ biết sơ qua về C và C ++ cho nên đừng cười na .
    Cả nhà mình giúp Ngọc Anh viết cái hàm tính det cho ma trận với kiểu trên nha. Cám ơn nhiều nhắm ý ( mà nhớ giải thích giùm Ngọc anh tính thế nào na , hii )..
    cậu nào sao điệu thế,đặt tiêu đề như thế kia + cách hỏi như thế này thì đã phản cảm lắm rồi
    cậu nên nhớ phải làm thế nào đặt tên và cách nói như thế nào để người khác xem bài,xem lại dễ hiểu dễ nắm bắt

  3. #3
    Ngày gia nhập
    09 2008
    Bài viết
    4

    thì tính cách người ta thí mà , xin lỗi nếu mà cảm thấy khó chịu nha.. , vì Ngọc Anh hông có giỏi môn này đâu mà

  4. #4
    Ngày gia nhập
    02 2008
    Bài viết
    1,009

    Code:
    //tinh dinh thuc 
    #include <conio.h>
    #include <stdio.h>
    #include <ctype.h> 
    #include <stdlib.h> 
    
    void main() 
       { 
              int i,j,k,n,ok1,ok2,t; 
              float d,c,e,f,g,h; 
              float a[50][50]; 
              char tl; 
    
              clrscr(); 
              printf("** TINH DINH THUC CAP n **"); 
              printf("\n"); 
              printf("\n"); 
              printf("Cho cap cua dinh thuc n = "); 
              scanf("%d",&n); 
              printf("Nhap ma tran a\n"); 
              for (i=1;i<=n;i++) 
              { 
              printf("Dong %d:\n",i); 
                     for (j=1;j<=n;j++) printf("Dong %d:\n",i); 
                     for (j=1;j<=n;j++) 
                       { 
                              printf("a[%d][%d] = ",i,j); 
                              scanf("%f",&a[i][j]); 
                       } 
                     printf("\n"); 
              } 
              printf("\n"); 
              printf("Ma tran a ma ban da nhap\n"); 
              printf("\n"); 
              for (i=1;i<=n;i++) 
              { 
                     for (j=1;j<=n;j++) 
    printf("%.5f\t",a[i][j]); 
                  printf("\n"); 
           } 
          printf("\n"); 
          t=1; 
    flushall(); 
          while (t) 
           { 
                  printf("Co sua ma tran a khong(c/k)?"); 
                  scanf("%c",&tl); 
                  if (toupper(tl)=='C') 
                   { 
                          printf("Cho chi so hang can sua : "); 
                          scanf("%d",&i); 
                          printf("Cho chi so cot can sua : "); 
                          scanf("%d",&j); 
                          printf("a[%d][%d] = ",i,j); 
                          scanf("%f",&a[i,j]); 
                   } 
                  if (toupper(tl)=='K') 
                   t=0; 
           } 
          printf("Ma tran a ban dau\n"); 
          printf("\n"); 
          for (i=1;i<=n;i++) 
           { 
                  for (j=1;j<=n;j++) 
                   printf("%.5f\t",a[i][j]); 
                  printf("\n"); 
           } 
          printf("\n"); 
          d=1; 
          i=1; 
          ok2=1; while ((ok2)&&(i<=n)) 
           { 
                  if (a[i][i]==0) 
                   { 
                          ok1=1; 
                          k=k+1; 
                          while ((ok1)&&(k<=n)) 
                           if (a[k,i]!=0) 
                                  { 
                                    for (j=i;j<=n;j++) 
                                          { 
                                            c=a[i][j]; 
                                            a[i][j]=a[k][j]; 
                                            a[k][j]=c; 
                                          } 
                                    d=-d;      ok1=0; 
                                   } 
                             else 
                                   k=k+1; 
                                   if (k>n) 
                                     { 
                                           printf("\n"); 
                                           printf("** MA TRAN SUY BIEN **"); 
                                           ok2=0; 
                                           d=0; 
                                     } 
                     } 
                    if (a[i][i]!=0) 
                     { 
                           c=a[i][i]; 
                           for (j=i+1;j<=n;j++) 
                             a[i][j]=a[i][j]/c; 
                             for (k=i+1;k<=n;k++) 
                                   { 
                                     c=a[k][i]; 
                                     for (j=i+1;j<=n;j++) 
                                           a[k][j]=a[k][j]-a[i][j]*c; 
                                   } 
                     } 
                    i=i+1; 
             } 
             if (ok2) 
             { 
                    for (i=1;i<=n;i++) 
                      d=d*a[i][i]; 
                    printf("\n"); 
                    printf("** GIA TRI DINH THUC D **"); 
                    printf("\n"); 
                    printf("%.3f",d);          
             } 
             getch(); 
     }

  5. #5
    Ngày gia nhập
    09 2008
    Bài viết
    4

    cám ơn ấy nha , nhưng mà hii , hình như ý nà ma trận tĩnh rồi mà , mới cả nà Ngọc Anh phải dùng ma trận có khai báo struct như kiểu bài đầu Ngọc Anh viết mà . Dù sao cũng cảm ơn ấy nha.

    Ngọc anh thì có ý tưởng nà đưa về ma trận chéo rồi tính ý , nhưng mà không biết nên viết hàm ra sao , còn nếu không thì tính kiểu bình thường ấy , nhưng thế cũng..hok biết viết hàm nốt , hii..

  6. #6
    Ngày gia nhập
    12 2006
    Nơi ở
    US
    Bài viết
    1,917

    Mặc định Cho Ngọc Anh xin code của phép tính det trong Ma trận có bộ nhớ cấp phát động mới na

    Dynamic matrix :
    C++ Code:
    1. #include <iostream>
    2. #include <stdexcept>
    3. #include <new>
    4.  
    5. using namespace std;
    6.  
    7. class MatrixException : public out_of_range
    8. {
    9. public :
    10.     MatrixException( const string& mess = "" )
    11.         :out_of_range( mess.c_str() )
    12.     {   }
    13. };
    14.  
    15. template< typename T >
    16. struct Matrix
    17. {
    18.     int row, col;
    19.     T*  ptr;
    20.  
    21.     Matrix( int row = 0, int col = 0 )
    22.         :row( row ), col( col )
    23.     {
    24.         ptr = new T[ row * col ];
    25.         for( int i = 0; i < row * col; ++i )
    26.         {
    27.             ptr[ i ] = 0;
    28.         }
    29.     }
    30.  
    31.     ~Matrix()
    32.     {
    33.         delete[] ptr;
    34.         ptr = NULL;
    35.     }
    36.  
    37.     const T& at( int r, int c )
    38.     {
    39.         if( r < 0 || r > row || c < 0 || c > col )
    40.         {
    41.             throw( MatrixException( "...index out of range \n" ) );
    42.         }
    43.         return ptr[ row * r + c ];
    44.     }
    45. };
    46.  
    47. int main()
    48. {
    49.     Matrix< int > m( 5, 5 );
    50.  
    51.     try {
    52.         for( int x = 0; x < m.row; ++x )
    53.         {
    54.             for( int y = 0; y < m.col; ++y )
    55.             {
    56.                 cout << m.at( x, y );
    57.             }
    58.             cout << "\n";
    59.         }
    60.     }
    61.     catch( MatrixException ex )
    62.     {
    63.         cerr << ex.what() << " at line #63 \n";
    64.     }
    65.  
    66.     return 0;
    67. }

  7. #7
    Ngày gia nhập
    09 2008
    Bài viết
    4

    bài mới của ấy đúng nà ma trận động ý , tuy là sử dụng lập trình đối tượng mà Ngọc Anh chưa hiểu đâu nhưng mà cũng xem được . có mỗi vấn đề nhỏ xíu ý nà...hok có cái det , hihi.. Dù sao cũng cám ơn nha

Các đề tài tương tự

  1. Code hàm nhân hai ma trận trong lập trình C++. Giúp mình sửa?
    Gửi bởi vietanh_90 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 5
    Bài viết cuối: 28-12-2010, 06:38 PM
  2. Bài tập C++ code tính cực đại, cực tiểu trong ma trận. sai chỗ nào mà không chạy được
    Gửi bởi bobobo trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 7
    Bài viết cuối: 31-10-2010, 02:26 PM
  3. Nhờ mọi người tìm lỗi trong đoạn code tính định thức ma trận vuông
    Gửi bởi zodjac1990 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 2
    Bài viết cuối: 10-12-2008, 07:59 PM
  4. Nhờ mọi người tìm lỗi trong đoạn code tính tích 2 ma trận
    Gửi bởi zodjac1990 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 4
    Bài viết cuối: 08-12-2008, 10:02 PM
  5. Mọi người xem giúp đoạn code tìm pt min của hàng trong ma trận
    Gửi bởi zodjac1990 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 5
    Bài viết cuối: 07-12-2008, 09:25 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn