summaryrefslogtreecommitdiff
path: root/sem_2/HLIN202/devoir/exo2.cpp
blob: 6fda8c0d6502f2304faf361d02d967c09b683bd2 (plain)
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;
 }