rendered paste body#include <iostream>using namespace std;struct Taille { unsigned int Col; unsigned int Lin;};struct Matrices { long ** M1; long ** M2; Taille T1; Taille T2;};Matrices multiply (Matrices T);Matrices add (Matrices T);Matrices init ();Matrices define (Matrices K);int print (Matrices T,int print = 0);int main () { cout << "Addition matricielle" << endl << endl; Matrices K = init(); Matrices T = define(K); cout <<endl<<endl; print(T,1); cout <<endl<<endl; print(T,2); Matrices B = multiply(T); print(B,3);}Matrices init () { // initialisation des dimensions des matrices cout << "Entrez à présent les dimensions de vos 2 matrices" << endl; cout << "Matrice 1 : Lignes" << endl; Matrices K; K.T1.Col = 0, K.T1.Lin = 0, K.T2.Col = 0, K.T2.Lin = 0; cin >> K.T1.Lin; cout << "Matrice 1 : Colonnes" << endl; cin >> K.T1.Col; cout << "Matrice 2 : Lignes" << endl; cin >> K.T2.Lin; cout << "Matrice 2 : Colonnes" << endl; cin >> K.T2.Col; // Initialisation des tableaux dynamiques K.M1 = NULL; K.M2 = NULL; K.M1 = new long*[K.T1.Col], K.M2 = new long*[K.T2.Col]; for (int i = 0; i < K.T1.Col; i++) K.M1[i] = new long[K.T1.Lin]; for (int i = 0; i < K.T2.Col; i++) K.M2[i] = new long[K.T2.Lin]; cout << "Matrices initialisés" << endl; cout << "Taille Matrice 1 : Il y a " << K.T1.Lin; cout << " lignes et "<<K.T1.Col<< " colonnes"<<endl; cout << "Taille Matrice 2 : Il y a " << K.T2.Lin; cout << " lignes et "<<K.T2.Col<< " colonnes"<<endl; return K;}Matrices define (Matrices K) {//Initialisation des valeurs dans les matrices for (int i = 0; i < K.T1.Col; i++) { for (int t = 0; t < K.T1.Lin; t++) { cout << "Entrez le "<<i+1<<" chiffre de la "<<t+1<< " ligne (Matrice 1) " << endl; cin >> K.M1[i][t]; } } for (int i = 0; i < K.T2.Col; i++) { for (int t = 0; t < K.T2.Lin; t++) { cout << "Entrez le " <<i+1<<" chiffre de la "<<t+1<< " ligne (Matrice2)" << endl; cin >> K.M2[i][t]; } } return K;}int print (Matrices T, int print) {//affichage des matrices if (print == 1) { cout << "Matrice n°" << print << endl; for ( int i = 0; i < T.T1.Col; i++ ) { for ( int k = 0; k < T.T1.Lin; k++) { cout << T.M1[i][k] <<" "; } cout << endl; } } if (print == 2) { cout <<"Matrice n°" << print << endl; for (int i = 0; i < T.T2.Col; i++) { for (int k = 0; k < T.T2.Lin; k++) { cout << T.M2[i][k] << " "; } cout << endl; } } if ( print == 3) { cout <<"Matrice 1 + Matrice 2 =" << endl ; for (int i = 0; i < T.T1.Col; i++) { for (int k = 0; k < T.T1.Lin; k++) { cout << T.M1[i][k] << " "; } cout <<endl; } } return 0;}Matrices add ( Matrices T ) { Matrices B; B.T1.Col = T.T1.Col; B.T1.Lin = T.T1.Lin; B.M2 = NULL; B.M1 = new long*[B.T1.Col]; for (int i = 0; i < B.T1.Col; i++) B.M1[i] = new long[B.T1.Lin]; if ((T.T1.Col == T.T2.Col) && (T.T1.Lin == T.T2.Lin)) { for (int i = 0; i < T.T1.Col;i++) { for (int k = 0; k < T.T1.Lin; k++) { B.M1[i][k] = T.M1[i][k] + T.M2[i][k]; } } } return B;}Matrices multiply ( Matrices K ) { Matrices R ; R.T1.Col = K.T2.Col; R.T1.Lin = K.T1.Lin; R.M2 = NULL; R.M1 = new long *[R.T1.Col]; for (int i = 0; i < R.T1.Col; i++) R.M1[i] = new long [R.T1.Lin]; if (K.T1.Col == K.T2.Lin) { for (int i = 0; i < R.T1.Col; i++) { for (int j = 0; j < R.T1.Lin; j++) { for (int k = 0; k < R.T1.Lin; k++) { R.M1[i][j] += K.M1[i][k] * K.M2[k][j]; } } } return R; } else { cout << "Vous ne pouvez pas multiplier ces 2 matrices : dim error" << endl; return K; }}