Xây dựng lớp ma trận và lớp vector (lớp vector được mô tả như phần trên có dùng mảng số thực để lưu trữ. Nếu dùng mảng thì không cần xây dựng các hàm khởi tạo, hủy). Viết chương trình nhập vào một vector a cấp n và một ma trận vuông b cấp n thực hiện phép nhân vector a với ma trận b. Sử dụng hàm bạn để hiển thị và tính vector với ma trận. Phần mềm sử dụng: Visual Studio Code CODE: Select All #include <iostream>using namespace std;#define max 10int n;class matran{private: int mt[max][max];public: matran() { for (int i = 1; i <= n; i++) { for (int j = 1; j <= n; j++) { mt[i][j] = 0; } } } void nhapslmt() { cout << endl; for (int i = 1; i <= n; i++) { for (int j = 1; j <= n; j++) { cout << "Ma tran thu [" << i << "][" << j << "]: "; cin >> mt[i][j]; } } cout << endl; } void insl() { for (int i = 1; i <= n; i++) { for (int j = 1; j <= n; j++) { cout << mt[i][j] << " "; } cout << endl; } } friend matran nhan(matran a) { matran c; float v[max]; cout << "\nNhap vector:\n"; for (int j = 1; j <= n; j++) { cout << "v[" << j << "]: "; cin >> v[j]; } for (int i = 1; i <= n; i++) { for (int j = 1; j <= n; j++) { c.mt[i][j] += a.mt[i][j] * v[j]; } } return c; }};void main(){ matran a, c; cout << "nhap cap cua ma tran: "; cin >> n; cout << "Nhap ma tran thu nhat:"; a.nhapslmt(); system("cls"); cout << "\n Ma tran A:\n"; a.insl(); c = nhan(a); cout << "\n nhan ma tran A va vector B:\n"; c.insl(); system("pause");}