Bonjour, je n'arrive pas bien un exercice de Programmation impérative en C++, pouvez-vous m'aider ?
Nous allons ici implémenter un tri original, le tri par panier. Celui-ci ne fonctionne que pour des tableaux d'entiers positifs. L'idée principale de ce tri est de calculer la valeur maximale x apparaissant dans un tableau T , et de générer un nouveau tableau R de x + 1 entiers. Ce tableau est construit tel que R[i] = y avec y le nombre d'occurrence de i dans le tableau T . Par exemple, pour trier le tableau T = [2; 8; 6; 4; 4; 12; 6; 4] on génère un tableau R de 13 cases tel que R = [0; 0; 1; 0; 3; 0; 2; 0; 1; 0; 1; 0; 1]. Pour cela, il suffit d'initialiser le tableau R avec que des zéros et pour chaque entier x = T [i] d'incrémenter R[x] de 1. Ensuite, en parcourant les valeurs de R[i] non nulles par indice i croissant nous obtenons les entiers triés du tableau T . Par exemple, la première valeur non nulle du tableau R est R[2] = 1, et elle indique que le plus petit élément de T est 2 et qu'il n'apparaît qu'une fois. Pareil, R[4] = 3 nous indique que le 2ème plus petit élément de T est 4 et qu'il apparaît 3 fois, etc.
1.Donner la signature d'une fonction permettant d'afficher à l'écran tous les éléments d'un tableau d'entiers positifs de taille quelconque.
2. Écrire une fonction construitTab qui, à partir d'un entier N , construit un tableau de taille N + 1 et dont toutes les cases sont initialisées à 0. Votre fonction devra renvoyer le nouveau tableau ainsi créé.
3. Écrire une fonction panier ( unsigned int T [], unsigned int N) qui renvoie le tableau R comme expli- qué précédemment.
4. Écrire la fonction triPanier (unsigned int T[], unsigned int N) qui modifie le tableau T pour le trier comme expliqué.
5. On suppose avoir à notre disposition une fonction unsigned int hasard () qui renvoie un entier positif quelconque. Écrire une fonction initT (unsigned int N, unsigned int max) qui renvoie un tableau de taille N rempli aléatoirement par des nombres compris entre 0 et max, ces deux valeurs, 0 et max, étant incluses.
6. Donner un programme principal permettant de valider l'ensemble des fonctions des questions précé- dentes. Il faudra donc demander une taille de tableau, une valeur maximale, générer un tableau avec des valeurs aléatoires, l'afficher, le trier et l'afficher à nouveau.
Voilà ce que j'ai fait :
1. void AfficheTab (unsigned x, unsigned int T[ ])
2. #include <iostream>
int construitTab (unisgned N){
int S[ ];
for (int i=0; i<N+1; i++)
S[i] = 0;
return S;
}
3. #include <iostream>
int Panier (unsigned int T[ ], unsigned int N){
unsigned int x;
unsigned int R[x+1];
int c=0;
for (int i=0; i-1<N, i++){
if (T[i]<= T[i+1])
x=T[i+1];
else
x=T[i];
}
for (int i=0; i<x+1; i++){
for (int j=0; j<N; j++){
if (T[j] = T[j+1]){
c = R[i];
R[i] = c+1;
}}}
return R;
}
voilà, je suis vraiment pas sûre, surtout pour le 3 je m'embrouille,
ça serait gentil un peu d'aide
Merci d'avance.