1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
|
#include<iostream>
//PROTOTYPES
int ** inverseL ( int **,int,int);
void affichemat ( int **,int,int);
//FONCTIONS
int ** inverseL ( int ** matrice, int lignes, int colonnes) { // inverse le contenu de chaque ligne de matrice
int ** inverse = new int*[lignes]; // creation d'une nouvelle matrice, sur le tas
for ( int i = 0; i < lignes; i ++){
inverse[i]=new int[colonnes]; // suite de la creation de la matrice
for(int j = 0; j < colonnes; j ++) {
inverse[i][j]= matrice[i][colonnes-1-j]; // on rempli la nouvelle matrice, en mettant dans chaque case la valeur situee a l'opposee de la ligne
}
}
return inverse;
}
void affichemat ( int ** matrice, int lignes, int colonnes){ // affiche matrice
for ( int i = 0; i < lignes; i ++) {
std::cout << "| ";
for ( int j = 0; j < colonnes; j ++) {
std::cout<< matrice[i][j]<<" ";
}
std::cout<<"|"<<std::endl;
}
}
//MAIN
int main () {
int m, n;
int ** B;
std::cout << " Saissisez le nombre de lignes de la matrice : ";
std::cin>> m;
std::cout<<std::endl<<" Saissisez le nombre de colonnes de la matrice : ";
std::cin>>n;
std::cout<<std::endl;
int **matrice= new int*[m];
for ( int i = 0; i <m; i ++ ){
matrice[i]=new int[m];
for (int j = 0; j <n;j++) {
matrice[i][j]= i + j; // initialisation de la matrice...
}
}
B= inverseL(matrice, m, n);
std::cout<< " Matrice initiale : "<< std::endl;
affichemat(matrice,m,n);
std::cout<<std::endl<< " Matrice apres inversion des lignes : " << std::endl;
affichemat(B,m,n);
for ( int i = 0; i < m; i ++) { // liberation de l'espace memoire ( sur le tas ) que le programme a utilisé
delete[] matrice[i];
delete[] B[i];
}
delete[] matrice;
delete[] B;
return 0;
}
|