Nhân 2 Ma Trận C++, Viết Chương Trình Như Thế Nào ? – Techacademy

Viết một chương trình C để nhập hai ma trận và tính tích của hai ma trận đó được người dùng nhập vào. Người dùng sẽ nhập thứ tự của một ma trận và sau đó là những thành phần của nó và tương tự như nhập vào ma trận thứ hai. Nếu những thứ tự của ma trận được triển khai đúng như vậy mà chúng không hề được nhân với nhau, thì sau đó một thông tin lỗi được hiển thị .nhân 2 ma trận c++

1. Nhân ma trận trong C + + là gì ?

Một trong những chương trình rất phổ cập trong lập trình C là phép nhân ma trận. Phương pháp thủ công bằng tay của phép nhân ma trận trong C tương quan đến một số lượng lớn những phép tính đặc biệt quan trọng khi nói đến bậc cao hơn của ma trận, trong khi một chương trình trong C hoàn toàn có thể triển khai những phép toán với những mã ngắn, đơn thuần và dễ hiểu .
Phép nhân ma trận trong C hoàn toàn có thể được thực thi theo hai cách : không sử dụng hàm và bằng cách truyền ma trận vào những hàm. Trong bài này, tất cả chúng ta sẽ bàn luận về mã nguồn cho cả hai phương pháp này với những tác dụng đầu ra mẫu cho mỗi phương pháp .

Các mã nguồn của hai chương trình này cho phép nhân ma trận trong lập trình C sẽ được biên dịch trong Code :: Blocks. Chạy chúng trên Turbo C và các nền tảng khác có thể yêu cầu một vài sửa đổi đối với mã.

Nhân 2 ma trận là một trong những nội dung căn bản trong khóa học lập trình C/C++ mà học viên cần nắm kiến thức thật vững.

2. Giới thiệu về nhân 2 ma trận c + +

Dưới đây tôi đã trình diễn ba hình ảnh cho thấy cách nhân ma trận diễn ra. Ý tưởng tương tự như như bộc lộ trong những hình ảnh này đã được theo sau theo thứ tự trong mã nguồn chương trình cho phép nhân ma trận trong C .
Xem xét hai ma trận A và B của đơn hàng 3 × 3 như hình dưới đây. Hãy bộc lộ những thành phần của ma trận A bằng aij và những thành phần của ma trận B bằng bij như hình dưới đây. Các aij và bij này được nhu yếu làm đầu vào dưới dạng mảng trong chương trình C cho phép nhân Ma trận .
Giới thiệu về phép nhân ma trận (1)
Phép nhân ma trận trong C – hai ma trận A và B
Hãy để ma trận tác dụng khi nhân của A và B là X với những thành phần bộc lộ bằng x ij như được hiển thị .
Giới thiệu về phép nhân ma trận (2)

Phép nhân ma trận trong ma trận kết quả C X

Phép nhân ma trận diễn ra như hình dưới đây, và thủ tục tựa như này được sử dụng cho phép nhân những ma trận sử dụng C .
Giới thiệu về phép nhân ma trận (3)
Phép nhân ma trận trong phép nhân C – AxB
Giải quyết thủ tục sẽ nhu yếu chín phép tính riêng không liên quan gì đến nhau để thu được từng thành phần của ma trận ở đầu cuối X. Chín phép tính riêng không liên quan gì đến nhau này đã được triển khai bằng cách sử dụng rất ít dòng mã tương quan đến vòng lặp và tính năng trong chương trình C này cho phép nhân ma trận .

3. Lập trình nhân 2 ma trận trong C + +

Đề nhân 2 ma trận trong C + + hoàn toàn có thể thực thi bằng 2 cách : không sử dụng và truyền những mảng tới hàm. Dưới đây là 2 cách lập trình nhân 2 ma trận trong C + +

Cách 1 : Nhân 2 ma trận C + + mà không sử dụng hàm

#include
 
int main()
{
    int a[10][10],b[10][10],result[10][10],m,n,p,q,i,j,k;
    
    //get the nuumber of rows/columns of first matrix
    printf("Enter rows and columns of first matrix:");
    scanf("%d%d",&m,&n);
    
    //get the nuumber of rows/columns of second matrix
    printf("Enter rows and columns of second matrix:");
    scanf("%d%d",&p,&q);
    
    //check if rows of A qual to columns of B
    if(n==p)
    {
        printf("\nEnter first matrix:\n");
        
        //fetch the first matrix data from user and save in array a[10][10] declared above
        for(i=0;i
Chạy chương trình C + + trên sẽ cho tác dụng như hình sau :
Enter rows and columns of first matrix:3                                                                                      
3                                                                                                                             
Enter rows and columns of second matrix:3                                                                                     
3                                                                                                                             
                                                                                                                              
Enter first matrix:                                                                                                           
11                                                                                                                            
22  
33                                                                                                                            
44                                                                                                                            
55                                                                                                                            
66                                                                                                                            
77                                                                                                                            
88                                                                                                                            
99                                                                                                                            
                                                                                                                              
Enter second matrix:                                                                                                          
11                                                                                                                            
22                                                                                                                            
33                                                                                                                            
44                                                                                                                            
55                                                                                                                            
66                                                                                                                            
77                                                                                                                            
88                                                                                                                            
99                                                                                                                            
                                                                                                                              
The multiplied matrix result is:                                                                                              
3630 4356 5082                                                                                                                
7986 9801 11616                                                                                                               
12342 15246 18150

 

Cách 2 : Nhân 2 ma trận C + + bằng cách dùng con trỏ và hàm

#include

#define ROW 3
#define COL 3

int main()
{
    int First[3][3],Second[3][3],Result[3][3];
    
    int m1,n1,m2,n2,i,j;
   

    printf("Enter no of row and column for 1st matrix\n");
    scanf("%d%d",&m1,&n1);

    printf("Enter no of row and column for 2nd matrix\n");
    scanf("%d%d",&m2,&n2);
     
     //check if multiplication is possible, 1st matrix rows must be equal to 
     //Second matrix columns
    if(n1==m2)
    {
        printf("Enter First matrix\n");
        matrixInput(First);
       
        printf("\nEnter Second matrix\n");
        matrixInput(Second);

         
        matrixMultiply(First,Second,Result);

        printf("Product of entered matrices :-\n");

        //print the resultant matrices
        for(i=0;i
Chạy chương trình C + + trên sẽ cho tác dụng như hình sau :
Enter no of row and column for 1st matrix  
3 3                                                
Enter no of row and column for 2nd matrix                    
3 3                                                 
Enter First matrix                                                                                                
10 20 30                                                                     
40 50 60                                                      
70 80 90                                                                    
                                                                                        
Enter Second matrix                                                  
10 20 30                                                                                   
40 50 60                                                                    
70 80 90                                                                                         
Product of entered matrices :                                                                              
3000    3600    4200                                
6600    8100    9600                                           
10200   12600   15000

Các hoạt động giải trí tương quan đến vòng lặp và giám sát trong chương trình này là tương tự như như cách nhân 2 ma trận không sử dụng hàm. Sự độc lạ duy nhất là chương trình phép nhân ma trận này trong C sử dụng những hàm để truyền những mảng ma trận. Có ba hàm do người dùng định nghĩa riêng không liên quan gì đến nhau trong chương trình này để đọc tài liệu, thao tác nhân ma trận phôi và hiển thị ma trận hiệu quả .
Cả hai mã nguồn này đều không có lỗi và đã được thử nghiệm trên Code :: Blocks với những nguồn vào như được hiển thị trong màn hình hiển thị đầu ra. Các bạn nên lập trình nhân 2 ma trận sử dụng những hàm và con trỏ .