Đánh giá, nhận xét, review các công ty tuyển dụng
Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 17 kết quả

Đề tài: Nhân hai ma trận trong C++ như thế nào?

  1. #1
    Ngày gia nhập
    03 2010
    Bài viết
    70

    Mặc định Nhân hai ma trận trong C++ như thế nào?

    Viết chương trình nhập vào hai ma trận nhân hai ma trận,chia hai ma trận viết từng hàm cụ thể"bạn nào biết xin sữa dùm mình bài này nhé cảm ơn nhiều và chúc sức khoẻ
    PHP Code:
    #include<stdio.h>
    #include<conio.h>
    #define MAX 100
    /*Ham nhap vao ma tran*/
    void nhap(int a[MAX][MAX],int d,int c)
       {
       
    int i,j;
       for(
    i=1;i<=d;i++)
         for(
    j=1;j<=c;j++)
          {
          
    printf("nhap vao phan tu thu:%d%d",i,j);
          
    scanf("%d",&a[i][j]);
          }
       }
    /*Ham in ra ma tran*/
    void xuat(int a[MAX][MAX],int d,int c)
        {
        
    int i,j;
        for(
    i=1;i<=d;i++)
          {
          for(
    j=1;j<=c;j++)
           {
           
    printf("%d\t",a[i][j]);
           }
          
    printf("\n");
          
    printf("\n");
         }
         }
    /*Nhan hai ma tran ne*/
    void tich(int a[MAX][MAX],int b[MAX][MAX],int t[MAX][MAX],int da,int ca,int cb)
          {
          
    int i,j,k;
          for(
    i=1;i<=da;i++)
          for(
    j=1;j<=cb;j++)
           {
           
    t[i][j]=0;
           for(
    k=1;k<=ca;k++)
        {
        
    t[i][j]+=a[i][k]*b[k][j];
        }
           }
          }

     
    /*Chuong trinh chinh ne*/
     
    void main()
      {
      
    clrscr();
      
    int a[MAX][MAX],b[MAX][MAX],t[MAX][MAX];
      
    int da,db,ca,cb,dc,cc;
      
    printf("Nhap vao so dong ma tran a:");
      
    scanf("%d",&da);
      
    printf("nhap vao so cot ma tran a:");
      
    scanf("%d",&ca);
      
    nhap(a,da,ca);
      
    printf("A:\n");
      
    xuat(a,da,ca);
      
    printf("Nhap vao so dong ma tran b:");
      
    scanf("%d",&db);
      
    printf("Nhap vao so cot cua ma tran b:");
      
    scanf("%d",&cb);
      
    nhap(b,db,cb);
      
    printf("B:\n");
      
    xuat(b,db,cb);
      
    /*
      tich(a,b,t,da,ca,cb);
      printf("Tich cua 2 ma tran la:\n");
      xuat(t,dc,cc);
      */
      
    getch();
      } 
    Hàm nhân ma trận đó có vấn đề không làm đựoc bạn nào sữa lại dùm test kỹ trong c dùm mới với nhé"Phương châm là học ít chất lượng cao"heheh tnk
    Đã được chỉnh sửa lần cuối bởi langman : 23-03-2010 lúc 12:32 PM.

  2. #2
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    Nhớ bọc code vào tag nha bạn :

    C Code:
    1. #include<stdio.h>
    2. #include<conio.h>
    3. #define MAX 100
    4.  
    5.  
    6. /*Ham nhap vao ma tran*/
    7. void nhap(int a[MAX][MAX],int d,int c)
    8. {
    9.     int i,j;
    10.  
    11.     for(i=0;i<d;i++)
    12.     {
    13.         for(j=0;j<c;j++)
    14.         {
    15.             printf("nhap vao phan tu thu:%d%d",i,j);
    16.             scanf("%d",&a[i][j]);
    17.         }
    18.     }
    19. }
    20.  
    21. /*Ham in ra ma tran*/
    22. void xuat(int a[MAX][MAX],int d,int c)
    23. {
    24.     int i,j;
    25.     for(i=0;i<d;i++)
    26.     {
    27.         for(j=0;j<c;j++)
    28.         {
    29.             printf("%d\t",a[i][j]);
    30.         }
    31.         printf("\n");
    32.         printf("\n");
    33.     }
    34. }
    35.  
    36. /*Nhan hai ma tran ne*/
    37. void tich(int a[MAX][MAX],int b[MAX][MAX],int t[MAX][MAX],int da,int ca,int cb)
    38. {
    39.     int i,j,k;
    40.     for(i=0;i<da;i++)
    41.     {
    42.         for(j=0;j<cb;j++)
    43.         {
    44.             t[i][j]=0;
    45.             for(k=0;k<ca;k++)
    46.             {
    47.                 t[i][j] += a[i][k] * b[k][j];
    48.             }
    49.         }
    50.     }
    51. }
    52.  
    53. /*Chuong trinh chinh ne*/
    54. void main()
    55. {
    56.     clrscr();
    57.     int a[MAX][MAX],b[MAX][MAX],t[MAX][MAX];
    58.     int da,db,ca,cb,dc,cc;
    59.     printf("Nhap vao so dong ma tran a:");
    60.     scanf("%d",&da);
    61.     printf("nhap vao so cot ma tran a:");
    62.     scanf("%d",&ca);
    63.     nhap(a,da,ca);
    64.     printf("A:\n");
    65.     xuat(a,da,ca);
    66.     printf("Nhap vao so dong ma tran b:");
    67.     scanf("%d",&db);
    68.     printf("Nhap vao so cot cua ma tran b:");
    69.     scanf("%d",&cb);
    70.     nhap(b,db,cb);
    71.     printf("B:\n");
    72.     xuat(b,db,cb);
    73.  
    74.     tich(a,b,t,da,ca,cb);
    75.     printf("Tich cua 2 ma tran la:\n");
    76.  
    77.     dc = da;
    78.     cc = cb;
    79.     xuat(t,dc,cc);
    80.  
    81.     getch();
    82. }
    Đã được chỉnh sửa lần cuối bởi meoconlongvang : 23-03-2010 lúc 10:30 AM.
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

  3. #3
    Ngày gia nhập
    06 2007
    Nơi ở
    C:\WINDOWS\system32\dllcache\
    Bài viết
    2,991

    update tí : Đối với ma trận, trước khi nhân chúng ta phải kiểm tra chúng có khả tích hay ko
    ^_,^
    Mình là 1 con gà trong công nghệ.
    Nếu mình có nói gì làm bạn không vui thì mong bạn bỏ qua cho, vì cá nhân mình còn gà lắm, và mình có ý tốt thôi.

    Bùi Tấn Quang

  4. #4
    Ngày gia nhập
    03 2010
    Bài viết
    70

    cảm ơn bạn rất nhiều chúc bạn vui vẻ sức khoẻ

  5. #5
    Ngày gia nhập
    12 2009
    Bài viết
    190

    update tí : Đối với ma trận, trước khi nhân chúng ta phải kiểm tra chúng có khả tích hay ko
    Không phải khả tích đâu. Khái niệm khả tích ( tích phân được ) là dùng cho hàm số trên đoạn. Còn trường hợp này thì chẳng có tên gì đặc biệt cả điều kiện để tồn tại tích hai ma trận A * B là số cột của A bằng số hàng của B.

  6. #6
    Ngày gia nhập
    06 2007
    Nơi ở
    C:\WINDOWS\system32\dllcache\
    Bài viết
    2,991

    Mặc định Nhân hai ma trận trong C++ như thế nào?

    Trích dẫn Nguyên bản được gửi bởi pannaruto Xem bài viết
    Không phải khả tích đâu. Khái niệm khả tích ( tích phân được ) là dùng cho hàm số trên đoạn. Còn trường hợp này thì chẳng có tên gì đặc biệt cả điều kiện để tồn tại tích hai ma trận A * B là số cột của A bằng số hàng của B.
    cám ơn cậu, tớ nhớ A : m*n chỉ nhân được với B : n*x , tên tớ nhớ nhầm .
    ^_,^
    Mình là 1 con gà trong công nghệ.
    Nếu mình có nói gì làm bạn không vui thì mong bạn bỏ qua cho, vì cá nhân mình còn gà lắm, và mình có ý tốt thôi.

    Bùi Tấn Quang

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

    Trích dẫn Nguyên bản được gửi bởi phanvanngoc Xem bài viết
    Viết chương trình nhập vào hai ma trận nhân hai ma trận,chia hai ma trận viết từng hàm cụ thể"bạn nào biết xin sữa dùm mình bài này nhé cảm ơn nhiều và chúc sức khoẻ
    Hàm nhân ma trận đó có vấn đề không làm đựoc bạn nào sữa lại dùm test kỹ trong c dùm mới với nhé"Phương châm là học ít chất lượng cao"heheh tnk
    Giải thuật nhân hai ma trận ok rồi, cần chú ý:
    Mảng trong C được đánh chỉ số từ 0 nên các vòng for phải có dạng for (k = 0; k < n; k ++).
    Nếu chỉ tính tích của hai ma trận A và B, không cần nhập số hàng của B nữa vì bắt buộc phải bằng số cột của A rồi.
    Khi in ra ma trận T = A*B, phải sử dụng da,cb.
    PHP Code:
    #include<stdio.h>
    #include<conio.h>
    #define MAX 100

    /*Ham nhap vao ma tran*/
    void nhap(int a[MAX][MAX],int d,int c)
       {
       
    int i,j;
       for(
    i=0;i<d;i++)
         for(
    j=0;j<c;j++)
          {
              
    printf("nhap vao phan tu thu:(%d,%d)",i+1,j+1);
              
    scanf("%d",&a[i][j]);
          }
       }

    /*Ham in ra ma tran*/
    void xuat(int a[MAX][MAX],int d,int c)
        {
            
    int i,j;
            for(
    i=0;i<d;i++)
                {
                  for(
    j=0;j<c;j++)
                    
    printf("%8d",a[i][j]);
                  
    printf("\n");
                }
         }

    /*Nhan hai ma tran ne*/
    void tich(int a[MAX][MAX],int b[MAX][MAX],int t[MAX][MAX],int da,int ca,int cb)
        {
            
    int i,j,k;
            for(
    i=0;i<da;i++)
                for(
    j=0;j<cb;j++)
                    {
                        
    t[i][j]=0;
                        for(
    k=0;k<ca;k++)
                            
    t[i][j]+=a[i][k]*b[k][j];
                    }
        }

     
    /*Chuong trinh chinh ne*/
     
    void main()
      {
          
    int a[MAX][MAX],b[MAX][MAX],t[MAX][MAX];
          
    int da,ca,cb;

          
    printf("Nhap vao so dong ma tran a:"); scanf("%d",&da);
          
    printf("nhap vao so cot ma tran a:");  scanf("%d",&ca);

          
    nhap(a,da,ca);
          
    printf("A:\n"); xuat(a,da,ca);

          
    printf("Nhap vao so cot cua ma tran b:"); scanf("%d",&cb);
          
    nhap(b,ca,cb);
          
    printf("B:\n"); xuat(b,ca,cb);

          
    tich(a,b,t,da,ca,cb);
          
    printf("Tich cua 2 ma tran la:\n"); xuat(t,da,cb);
      } 

  8. #8
    Ngày gia nhập
    01 2010
    Nơi ở
    Hà Nội
    Bài viết
    34

    Trích dẫn Nguyên bản được gửi bởi phanvanngoc Xem bài viết
    Viết chương trình nhập vào hai ma trận nhân hai ma trận,chia hai ma trận viết từng hàm cụ thể"bạn nào biết xin sữa dùm mình bài này nhé cảm ơn nhiều và chúc sức khoẻ
    Làm gì có chia 2 ma trận nhỉ.
    [SIGPIC][/SIGPIC]Thời gian cứ qua đi! Từng giờ mệt nhoài, từng phút kiếm tìm, từng giây chờ đợi. Nó đi không nhanh mà sao ta cố gắng đuổi mãi vẫn chẳng thấy bóng dáng; chỉ thấy dấu vết là bao sự thay đổi trong ta. Thời gian...

  9. #9
    Ngày gia nhập
    03 2010
    Bài viết
    70

    chia hai ma trận hình như là nhân ma trận với ma trận nghịch đảo của nó đó

  10. #10
    Ngày gia nhập
    12 2009
    Nơi ở
    Tp. Hồ Chí Minh
    Bài viết
    64

    @meoconlongvang: Nhớ bọc code vào tag nha bạn :
    Ah mà mình muốn bọc CODE theo kiểu C code như meocon thì mã lệnh là sao nhỉ??? Luôn tiện hỏi luôn thôi nha vì từ trước giờ toàn dùng Code PHP không đẹp lắm. Hihi @_@
    Hãy quyết định và đấu tranh
    Để hạnh phúc và hi vọng!
    --------Thiên Điệp --> http://khmt.lifeme.net

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

  1. Trả lời: 0
    Bài viết cuối: 28-08-2012, 11:05 AM
  2. Tính ma trận mũ của ma trận trong C++ như thế nào?
    Gửi bởi hidden trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 3
    Bài viết cuối: 30-11-2011, 12:07 AM
  3. Làm thế nào để xác định vị trí của ma trận đơn vị trong ma trận a
    Gửi bởi haiictu trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 0
    Bài viết cuối: 10-11-2011, 10:57 AM
  4. Cộng 1 row trong 1 ma trận như thế nào ?
    Gửi bởi nkhanh90 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 5
    Bài viết cuối: 26-10-2011, 03:21 PM
  5. thắc mắt về con trỏ trong ma trận
    Gửi bởi nhatnha trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 3
    Bài viết cuối: 08-06-2010, 08:57 PM

Tags của đề tài này

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