Tri à bulle (langage C) [Fermé]

Signaler
Messages postés
4
Date d'inscription
vendredi 25 mars 2011
Statut
Membre
Dernière intervention
25 mars 2011
-
Messages postés
11066
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
18 octobre 2016
-
Bonjour,

J'ai un exercice en langage C et je n'y comprend absolument rien. J'espère que vous pourrez m'aidez.

// Les fonctions generique //
// //
// Fonctions ou procedures pour initialiser et pour //
// afficher les contenus d'un tableau des valeurs //
// reel. Faire comme pour les tableaux d'entiers //
// //
//////////////////////////////////////////////////////

//////////////////////////////////////////////////////////////
// //
// Tri par insertion //
// ================= //
// //
// procedure triInsertion(array[] : réél, size : entier) //
// variables //
// i, j : entier //
// temp : reel //
// debut //
// pour i variant de 1 a (size - 1) faire //
// temp <-- array[i] //
// j <-- i - 1 //
// tant que (temp < array[j] et j >= 0) faire //
// array[j + 1] <-- array[j] //
// j <-- j - 1 //
// fin tant que //
// array[j + 1] <-- temp //
// fin pour //
//fin //
// //
//////////////////////////////////////////////////////////////

//////////////////////////////////////////////////////////////
// //
// Tri par tas //
// =========== //
// //
// /*La fonction permute est la même que pour la tri à //
// bulles, sauf qu'ici on utilise les valeurs réels //
// */ //
// //
// procedure tamiser(array[] : reel , root, bottom : entier)//
// variables //
// done : booleen //
// maxChild : entier //
// temp : reel //
// debut //
// done <-- faux //
// tant que (root * 2 <= bottom et non done) faire //
// si(root * 2 == bottom) alors //
// maxChild <-- root * 2 //
// sinon //
// si(array[root] < array[maxChild]) alors //
// maxChild <-- root * 2 //
// sinon //
// maxChild <-- root * 2 + 1 //
// fin si //
// fin si //
// si(array[root] < array[maxChild]) alors //
// permute(array, root, maxChild) //
// root <-- maxChild //
// sinon //
// done <-- vrai //
// fin si //
// fin tant que //
// fin //
// //
// procedure triTas (array[] : reel, size : entier) //
// varaibles //
// i : entier //
// temp : reel //
// debut //
// pour i variant de size / 2 à 0 faire //
// tamiser(array, i, size - 1) //
// fin pour //
// pour i variant de size - 1 à 1 faire //
// permute(array, 0, i) //
// tamiser(array, 0, i-1) //
// fin pour //
// fin //
// //
//////////////////////////////////////////////////////////////

//////////////////////////////////////////////////////////////////
// //
// Tri shell //
// ========= //
// //
// /* La fonction arrondi() est dans la bibliotheque math.h //
// Il s'appelle round() //
// */ //
// //
// procedure triShell(array[] : reel, size : entier) //
// variables //
// i,j : entier //
// temp : reel //
// inc : entier //
// debut //
// inc = arrondi(size / 2) //
// tant que (inc > 0 ) faire //
// pour i variant de inc à size - 1 faire //
// temp <-- array[i] //
// j <-- i //
// tant que(j >= inc et array[j - inc] > temp) faire //
// array[j] <-- array[j - inc] //
// j <-- j -inc //
// fin tant que //
// array [j] <-- temp //
// fin pour //
// inc = arroindi(inc / 2.2) //
// fin tant que //
// fin //
// //
//////////////////////////////////////////////////////////////////

//////////////////////////////////////////////////////////////////
// //
// Fonction main() //
// //
// Créer une fonction main, qui permet de créer un tableau //
// de 15 valeurs réels, le remplir avec la bonne fonction, //
// et afficher les contenus. //
// Puis utiliser un de vos tris pour le trier et l'afficher //
// encore. //
// Repeter les etapes ci-dessus en utilisant votre 2eme tri. //
// //

Merci de votre compréhension.

6 réponses

Messages postés
70
Date d'inscription
jeudi 30 juillet 2009
Statut
Membre
Dernière intervention
6 février 2013
38
Je ne sais pas en quel langage c'est, mais faut que tu te dises que desfois, il est plus facile d'écrire un code solo plutot d'adapter le code des autres.

A ce que je pourrais comprendre de ce code, c'est assez moche :s...

Soit, tu trouve d'autres codes sur le net, ca devrait pas etre dur a faire.
Sinon, ce que je te conseille, c'est de te lancer par toi-même, c'est largement faisable une fois dedans.
2
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 60511 internautes nous ont dit merci ce mois-ci

Messages postés
11066
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
18 octobre 2016
1 706
Ca parait une bonne idée, mais si c'est un exercice, je doute que son prof soit content si tu refais tout à partir de zéro.
Messages postés
11066
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
18 octobre 2016
1 706
Bonjour,

Et à quoi pouvons-nous t'aider ? C'est quoi que tu comprends pas ? Tout ce que tu dois faire est écrit en remarque (//).

Cdlt,
Messages postés
4
Date d'inscription
vendredi 25 mars 2011
Statut
Membre
Dernière intervention
25 mars 2011

Il faut que je traduise ça en langage C mais je ne comprend absolument rien. Même avec les tutoriels je n'y arrive pas ...
Messages postés
11066
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
18 octobre 2016
1 706
Oui ça j'ai compris ce que tu devais faire. Mais, c'est quoi que tu comprends pas ???
Si tu comprends pas, je te conseille de relire tes cours. Sinon tu peux aller sur le site du zéro. Tu consolideras tes bases et tu arriveras alors à faire cet exercice.
Messages postés
4
Date d'inscription
vendredi 25 mars 2011
Statut
Membre
Dernière intervention
25 mars 2011

Je ne comprend pas "array" et tout ce qui est en dessous
Messages postés
4
Date d'inscription
vendredi 25 mars 2011
Statut
Membre
Dernière intervention
25 mars 2011

int valeurAleatoire(int limite)
{
return rand ()%(limite+1);
}

void initTab(int tab[], int taille )
{
int i;
for (i=0; i<taille; i++)
{
tab[i]= valeurAleatoire(10);
}
}
void afficheTab ( float tab [], int taille)
{
int i;
for (i=0; i<taille; i++)
{
printf("%d",tab[i]);
if (i<taille-1)
printf(",");
}
printf("\n");
}

Je trouve ca pour la fonction générique. Je sais pas si c'est ca .