Tri à bulle (langage C) [Fermé]

Messages postés
4
Date d'inscription
vendredi 25 mars 2011
Statut
Membre
Dernière intervention
25 mars 2011
- - Dernière réponse : fiddy
Messages postés
11137
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
18 octobre 2016
- 25 mars 2011 à 22:17
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.
Afficher la suite 

6 réponses

Meilleure réponse
Messages postés
71
Date d'inscription
jeudi 30 juillet 2009
Statut
Membre
Dernière intervention
6 février 2013
37
1
Merci
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.

Dire « Merci » 1

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

CCM 62637 internautes nous ont dit merci ce mois-ci

fiddy
Messages postés
11137
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
18 octobre 2016
1601 -
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
11137
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
18 octobre 2016
1601
0
Merci
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
0
Merci
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
11137
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
18 octobre 2016
1601
0
Merci
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
0
Merci
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
0
Merci
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 .