Introduction
Dans ce laboratoire, vous allez apprendre à inverser un tableau en utilisant différents techniques en langage de programmation C++. L'inversion d'un tableau signifie changer l'ordre d'un tableau où le dernier élément du tableau devient le premier, et le premier élément devient le dernier. Ce laboratoire vous apprendra à accomplir l'inversion d'un tableau en utilisant différentes méthodes, y compris les boucles for, les fonctions intégrées, les pointeurs, la récursion et les fonctions définies par l'utilisateur.
Créez un nouveau fichier C++
Créez un nouveau fichier C++ nommé reverse_array.cpp dans le répertoire ~/project en exécutant la commande suivante :
touch ~/project/reverse_array.cpp
Inversez un tableau à l'aide d'une boucle for
Le code suivant montre comment inverser un tableau à l'aide d'une boucle for :
#include <iostream>
using namespace std;
void reverseArray(int arr[], int size){
for(int i=0;i<size/2;i++){
int temp = arr[i];
arr[i] = arr[size-i-1];
arr[size-i-1] = temp;
}
}
int main(){
int arr[]={1,2,3,4,5};
int size = sizeof(arr)/sizeof(arr[0]);
cout<<"Tableau original : ";
for(int i=0;i<size;i++)
cout<<arr[i]<<" ";
cout<<endl;
reverseArray(arr,size);
cout<<"Tableau inversé : ";
for(int i=0;i<size;i++)
cout<<arr[i]<<" ";
cout<<endl;
return 0;
}
Pour compiler et exécuter le code, utilisez les commandes suivantes :
g++ reverse_array.cpp -o reverse_array
./reverse_array
Inversez un tableau à l'aide d'une fonction intégrée
Le code suivant montre comment inverser un tableau à l'aide d'une fonction intégrée en C++ :
#include <iostream>
#include <algorithm>
using namespace std;
int main(){
int arr[]={1,2,3,4,5};
int size = sizeof(arr)/sizeof(arr[0]);
cout<<"Tableau original : ";
for(int i=0;i<size;i++)
cout<<arr[i]<<" ";
cout<<endl;
reverse(arr,arr+size);
cout<<"Tableau inversé : ";
for(int i=0;i<size;i++)
cout<<arr[i]<<" ";
cout<<endl;
return 0;
}
Pour compiler et exécuter le code, utilisez les commandes suivantes :
g++ reverse_array.cpp -o reverse_array
./reverse_array
Inversez un tableau à l'aide d'une fonction définie par l'utilisateur
Le code suivant montre comment définir une fonction définie par l'utilisateur pour inverser un tableau :
#include <iostream>
using namespace std;
void reverseArray(int arr[], int size){
for(int i=0;i<size/2;i++){
int temp = arr[i];
arr[i] = arr[size-i-1];
arr[size-i-1] = temp;
}
}
int main(){
int arr[]={1,2,3,4,5};
int size = sizeof(arr)/sizeof(arr[0]);
cout<<"Tableau original : ";
for(int i=0;i<size;i++)
cout<<arr[i]<<" ";
cout<<endl;
reverseArray(arr,size);
cout<<"Tableau inversé : ";
for(int i=0;i<size;i++)
cout<<arr[i]<<" ";
cout<<endl;
return 0;
}
Pour compiler et exécuter le code, utilisez les commandes suivantes :
g++ reverse_array.cpp -o reverse_array
./reverse_array
Inversez un tableau à l'aide de pointeurs
Le code suivant montre comment inverser un tableau à l'aide de pointeurs :
#include <iostream>
using namespace std;
void reverseArray(int *arr, int size){
int *first = arr, *last = arr + size - 1;
while(first < last){
int temp = *first;
*first = *last;
*last = temp;
first++;
last--;
}
}
int main(){
int arr[] = {1, 2, 3, 4, 5};
int size = sizeof(arr)/sizeof(arr[0]);
cout<<"Tableau original : ";
for(int i=0;i<size;i++)
cout<<arr[i]<<" ";
cout<<endl;
reverseArray(arr, size);
cout<<"Tableau inversé : ";
for(int i=0;i<size;i++)
cout<<arr[i]<<" ";
cout<<endl;
return 0;
}
Pour compiler et exécuter le code, utilisez les commandes suivantes :
g++ reverse_array.cpp -o reverse_array
./reverse_array
Inversez un tableau à l'aide de la récursion
Le code suivant montre comment inverser un tableau à l'aide de la récursion :
#include <iostream>
using namespace std;
void reverseArray(int arr[], int start, int end){
if(start >= end)
return;
int temp = arr[start];
arr[start] = arr[end];
arr[end] = temp;
reverseArray(arr,start+1,end-1);
}
int main(){
int arr[] = {1, 2, 3, 4, 5};
int size = sizeof(arr)/sizeof(arr[0]);
cout<<"Tableau original : ";
for(int i=0;i<size;i++)
cout<<arr[i]<<" ";
cout<<endl;
reverseArray(arr,0,size-1);
cout<<"Tableau inversé : ";
for(int i=0;i<size;i++)
cout<<arr[i]<<" ";
cout<<endl;
return 0;
}
Pour compiler et exécuter le code, utilisez les commandes suivantes :
g++ reverse_array.cpp -o reverse_array
./reverse_array
Résumé
Félicitations! Vous avez terminé le laboratoire Inversez un tableau en O(n). Vous pouvez pratiquer d'autres laboratoires sur LabEx pour améliorer vos compétences.



