summaryrefslogtreecommitdiff
path: root/sem_2/HLIN202/TP/TP7-8/ex9/exo9.cpp
blob: 021365fc384c88bfce8e31024b149af0ed0359dd (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
#include<iostream>

void permut ( int tab[], int d, int i) {
  int Temp[d];
  for (int j =0; j < d; j ++) {
    Temp[j]=tab[j];
  }
  if ( i > 0) {
      for (int j = 0; j < d ; j ++) {
        if (j-i < 0 ) {
          tab[j]=Temp[d-i+j];
        }
        else {
          tab[j]= Temp[j-i];
        }
      }
    }
  else if ( i < 0 ) {
    for (int j = 0; j<d;j ++) {
      if (j-i==d) {
        tab[j]=Temp[d+i-j];
      }
      else if ( j-i > d) {
        tab[j]=Temp[d-j];
      }
      else {
        tab[j]=Temp[j-i];
      }
    }
  }
}
int main () {
  int tab[6] = {0,1,2,3,4,5};
  //Ce programme effectue une rotation de i etapes sur le tableau donné ( le sens change en fonction du signe de i)
  permut ( tab, 6, 2);
  for (int i =0; i< 6; i ++) {
    std::cout<<tab[i]<<" ";
  }
  std::cout<<std::endl;
  return 0;
}