Lập trình .NET

Lập trình .NET

BT16: Cộng và nhân hai ma trận

1. Yêu cầu

Viết chương trình C# thực hiện cộng và nhân hai ma trận.
Giải thích:
Trong toán học, một ma trận là một mảng hình chữ nhật của các số, các ký tự hoặc các biểu thức. Mỗi phần tử của ma trận có thể truy cập thông qua chỉ số của chúng.

  • Cộng trừ ma trận: chỉ có thể thực hiện được với ma trận cùng kích thước của các phần tử ở vị trí tương ứng của nhau, xem ví dụ:
A (m x n) B (m x n) A + B (m x n) C (m x n)
1 3 1 0 0 5 1+0 3+0 1+5 1 3 6
1 0 0 7 5 0 1+7 0+5 0+0 8 5 0
  • Nhân hai ma trận: chỉ có thể được nhân được với nhau khi số lượng cột ở ma trận đầu tiên bằng số lượng hàng ở ma trận thứ hai. Nhân các phần tử của mỗi hàng ma trận thứ nhất với các phần tử của mỗi cột ma trận thứ hai, xem ví dụ:
A (m x n) B (n x p) A X B C (m x p)
2 -3 1 0 (2)(1) + (-3)(-2) (2)(0) + (-3)(1) 8 -3
4 5 -2 1 (4)(1) + (5)(-2) (4)(0) + (5)(1) -6 5
6 0 (6)(1) + (0)(-2) (6)(0) + (0)(1) 6 0

2. Thuật toán



Start
Declare Ma trận A, B, C 
Declare các biến  
Read Kích thước ma trận A 
Read Ma trận A

PrintMatrix A

Read Kích thước ma trận B 
Read Ma trận B

PrintMatrix B 

AddMatrix(A, B, C, rowmax, colmax)
PrintMatrix C 

MulMatrix(A, B, C, rowmaxA, rowmaxB, colmaxB)
PrintMatrix C 
Stop

/*In ra ma trận*/
PrintMatrix(M, rowmax, colmax) 
Start
loop i=0 to rowmax-1
    loop j=0 to colmax-1 
        Print M[i][j]
    end loop
end loop
Stop

/*Phương thức cộng hai ma trận*/
AddMatrix(A, B, C, rowmax, colmax) 
Start
loop i=0 to rowmax-1
  loop j=0 to colmax-1 
    C[i][j] = A[i][j] + B[i][j];
  end loop
end loop
Stop

/*Phương thức nhân hai ma trận*/
MulMatrix(A, B, C, rowmaxA, rowmaxB, colmaxB) 
Start
loop i=0 to rowmaxA -1
  loop j=0 to colmaxB -1
     C[i][j] = 0;
     loop k=0 to rowmaxB - 1
         C[i][j] = C[i][j] + A[i][k] * B[k][j];
     end loop
   end loop
end loop
Stop

3. Video hướng dẫn

4. Code

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Share via
Copy link
Powered by Social Snap