Forums Rue-Montgallet.com
Rue-Montgallet.comRue-Hardware.comRue-Occasion.comRue-DVD.comRue-Jeuxvideo.comRue-AudioVideo.comRue-Telephone.comForums
S'inscrire | S'identifier |
| Recherche avancée | Aide
 
 

Il y a 62 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici

 Mot :   Pseudo :  
 
 Page :  1  2
Page Précédente 
Auteur
 Sujet :

[C] Tri de nombres dans l'ordre croissant dans un tableau

 
n°2069
Rantanplan
Modo pas rigolo !
Profil : Fossile
Posté le 30-09-2002 à 20:46:08  profilanswer
 

:hello:  
 
Un ptit prog a realiser au bahut :  
 
J'ai un tableau de caractere de 16 cases rempli de nombres (il doit y avoir absomlument un 0 (zero)  dans la derniere case c a dire la N°15 => le 0 est mis prealablement donc on ne s'en occupe pas)
 
Il faut que je mette dans le meme tableau ou dans un autre (peu importe) les valeurs dans l'ordre croissant avec la plus petite valeur dans la case N°0
 
Les nombres n'excedent pas 256 et sont toujours positifs (non signés)
 
Mon prof a aussi dit que le prog etait un classique et s'appelait le tri de Bulle
 
Voilou merci de m'aider ;)


Message édité par Rantanplan le 04-10-2002 à 08:51:26

---------------
[:rantanplan]
n°2070
le gnou
Profil : Vieux de la vieille
Posté le 30-09-2002 à 20:58:43  profilanswer
 

Tu veux koi RTP ? Qu'on te le fasse ? :lol:

n°2071
le gnou
Profil : Vieux de la vieille
Posté le 30-09-2002 à 21:02:00  profilanswer
 

Je veux bien te le faire, mais le plus intéressant est de trouver toi même quel algorithme appliquer pour pouvoir coder.
 
Pour celà, fais le sur papier, regarde comment il est intelligent de trier sans faire des calculs inutiles ou plusieurs fois les mêmes calculs (trouver donc un algo efficace et rapide).
 
Une fois cet algo déterminé, tu le traduis en C en très peu de temps.  :)

n°2072
Rantanplan
Modo pas rigolo !
Profil : Fossile
Posté le 30-09-2002 à 21:22:28  profilanswer
 

héhé non c bon je vais y arriver tout seul, mais je voulais une pitite aide.
 
Je vais donc faire comme tu m'as dit.
 
merci mon gnou ;)


---------------
[:rantanplan]
n°2073
le gnou
Profil : Vieux de la vieille
Posté le 30-09-2002 à 21:42:55  profilanswer
 

Pour trier un tableau il y a de nombreux algo différents.
J'ai aps bien compris ce qui est demandé exactement, mais apparemment, tu dois appliquer l'algorithme de Bulle.
Cet algo tu dois le trouver ds n'importe quel bouquin d'algo et même surement aussi sur le net.
 
Cependant, cherche par toi même, c'est comme ça qu'on se familiarise avec l'algo et le code.  :)
 
Edit:
Ici tu as tout:  
http://lwh.free.fr/pages/algo/tri/tri_bulle.htm


Message édité par le gnou le 30-09-2002 à 21:46:12
n°2074
Rantanplan
Modo pas rigolo !
Profil : Fossile
Posté le 30-09-2002 à 22:21:04  profilanswer
 

Merciiiii c cool  :jap:


---------------
[:rantanplan]
n°2079
Rantanplan
Modo pas rigolo !
Profil : Fossile
Posté le 01-10-2002 à 17:18:48  profilanswer
 

Citation :

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
 
void main ()
 
{
 short tab[16]={99,98,97,96,95,94,93,92,91,90,89,88,87,86,85,'\0'};
 
 char i,j,k;
 
 clrscr();
 
 
 for (j=15;j>0;j--)
  {
  for (i=0;i<j-1;i++)
   {
   if (tab[i]>tab[i+1])
    {
    k=tab[i];
    tab[i]=tab[i+1];
    tab[i+1]=k;
    }
   }
  }
 
 for (i=0;i<15;i++)
  {
  printf ("%d\t",tab[i]);
  }
 
 getch ();
 
 
}


 
Voilou mon code, si ca peut aider qqun :)


---------------
[:rantanplan]
n°2080
The bible
Profil : Membre
Posté le 01-10-2002 à 17:53:25  profilanswer
 

salut
juste une petite precision (qui va faire chieur)  :D  
 
la librairie <conio.h> ne fait pas partie du C Ansi
et si jamais tu programe sous Linux tu ne la trouveras pas
 
elle appartient a Borland
 
 :jap:

n°2081
Rantanplan
Modo pas rigolo !
Profil : Fossile
Posté le 01-10-2002 à 20:17:11  profilanswer
 

The Bible a écrit :

salut
juste une petite precision (qui va faire chieur)  :D  
 
la librairie <conio.h> ne fait pas partie du C Ansi
et si jamais tu programe sous Linux tu ne la trouveras pas
 
elle appartient a Borland
 
 :jap:  




 
Je travaille sous Borland (version antique :D )
 
la librairie conio.h me sert ici juste pour le getch() histoire de faire une pause dans le prog
 
Mais merci de l'info, c bon a savoir  :jap:


---------------
[:rantanplan]
n°2084
nicj
Profil : Membre
Posté le 02-10-2002 à 02:14:48  profilanswer
 

ahhhhhhhhhhhhh ca me rappelle ces longues heures passées en cours d'algo et de C ou j'ai JAMAIS rien compris LOL
 
le tri à bulles !!! haaaaaaaaaaaa ba non toujours pas compris....
 
si je me souviens bien c'est les premiers cours ca les tris de tableau non ???
 
alors la quand arrivent les listes chainees...... voir doublement chainées.... pfiouuuuuuuuuuuuu
en tout cas ca me fait bien rire (je ne me moque surtout pas de toi.... mais c'est les souvenirs de DUT qui reviennent :lol:)
 
RTP n'hesite pas a nous faire vivre comme ca ton programme tout au long de l'année, je suis sur que ca rappelera des souvenirs a beaucoup d'entre nous ;)


Message édité par nicj le 02-10-2002 à 02:16:22
n°2085
Rantanplan
Modo pas rigolo !
Profil : Fossile
Posté le 02-10-2002 à 08:07:34  profilanswer
 

nicj a écrit :

 
 
si je me souviens bien c'est les premiers cours ca les tris de tableau non ???
 




 
Exact :D
 

nicj a écrit :

 
 
alors la quand arrivent les listes chainees...... voir doublement chainées.... pfiouuuuuuuuuuuuu
en tout cas ca me fait bien rire (je ne me moque surtout pas de toi.... mais c'est les souvenirs de DUT qui reviennent :lol:)
 




 
:peur:
 

nicj a écrit :

 
 
RTP n'hesite pas a nous faire vivre comme ca ton programme tout au long de l'année, je suis sur que ca rappelera des souvenirs a beaucoup d'entre nous ;)




 
Si tu veux j'en ai déja pas mal en stock :D
 
Pour l'instant ils ne sont pas tres interessant bien-sur, mais j'essairai de mettre mes sources, ya pas de problemes.
 
 :hello:


---------------
[:rantanplan]
n°2087
The bible
Profil : Membre
Posté le 02-10-2002 à 18:52:19  profilanswer
 

Eh non la lib conio.h ser a clrscr()
 
 :jap:

n°2089
Rantanplan
Modo pas rigolo !
Profil : Fossile
Posté le 02-10-2002 à 19:53:49  profilanswer
 

The Bible a écrit :

Eh non la lib conio.h ser a clrscr()
 
 :jap:  




 
a getch() aussi, non ?


---------------
[:rantanplan]
n°2091
The bible
Profil : Membre
Posté le 02-10-2002 à 20:36:15  profilanswer
 

:jap:  :jap:  
Excuse ma precipitation getch aussi je viens de verif
 
 :jap:  

n°2093
Rantanplan
Modo pas rigolo !
Profil : Fossile
Posté le 02-10-2002 à 20:46:29  profilanswer
 

The Bible a écrit :

 :jap:  :jap:  
Excuse ma precipitation getch aussi je viens de verif
 
 :jap:  
 




 
No problemo  ;)


---------------
[:rantanplan]
n°2117
nicj
Profil : Membre
Posté le 05-10-2002 à 11:49:36  profilanswer
 

Rantanplan a écrit :

 

nicj a écrit :

 
alors la quand arrivent les listes chainees...... voir doublement chainées.... pfiouuuuuuuuuuuuu  
en tout cas ca me fait bien rire (je ne me moque surtout pas de toi.... mais c'est les souvenirs de DUT qui reviennent :lol:)  




 
 
 
:peur:
 




 
 
pi les pointeurs.... AIE AIE AIE !!! LOL
 
nan serieux ca depend des gens.... moi j'ai jamais ete doué donc je suis pas une reference en la matiere.
En 3eme annee, on a refait les cours et TD de mes 2 annees de DUT pour remettre a niveau les personnes qui venaient de filieres differentes.
 
Be j'ai reussi a avoir des notes pires que je n'avais eu la 1ere fois que je voyais les cours.
 
Apres yen a qui comprennent tout du premier coup et pour qui c'est un plaisir de programmer.
Chacun son truc ;)


Message édité par nicj le 05-10-2002 à 11:51:07
n°2118
Rantanplan
Modo pas rigolo !
Profil : Fossile
Posté le 05-10-2002 à 12:07:13  profilanswer
 

Je commence les pointeurs dans la semaine qui vient normalement  :)


---------------
[:rantanplan]
n°2252
samourai_x
JAVAAAAAAAAAAAAAAAAA !!!
Profil : Jeune recrue
Posté le 30-10-2002 à 21:41:19  profilanswer
 

C'est vraiment basique les tris... Que de souvenirs. Et dire que je m'amuse a calculer la complexité de ces machins. Putain je prefere largement la technique que la theorique ca fait moins mal au crane ;-)

n°2637
Chobaron
Profil : Membre
Posté le 14-12-2002 à 16:38:23  profilanswer
 

Rantanplan >
 
euh ton code est faux et en plus c'est crade

n°2649
Rantanplan
Modo pas rigolo !
Profil : Fossile
Posté le 16-12-2002 à 18:23:11  profilanswer
 

chobaron a écrit :

Rantanplan >
 
euh ton code est faux et en plus c'est crade




 
et bien puisque tu as l'air d'etre un malin, refais le code !


---------------
[:rantanplan]
n°2650
Chobaron
Profil : Membre
Posté le 16-12-2002 à 20:15:26  profilanswer
 

bah c'est pas a moi de faire ton taf mai je veux bien te dire ou c'est faux
 
- ta déclaration de main est fausse. La fonction main doit renvoyer qqc. On fait généralement int main(void) et à la fin de ta fonction main tu fais un return (0)
 
- ta déclaration de i et j sont incorrect. tu les déclare en char, alors oui ca marche mais c pas propre et ca peut devenir causes d'erreur
déclare les en tant qu'unsigned int
 
 
je ne dis pas que ton code ne marche pas, mais avec des erreurs comme ca il en devient faux car avec un fonctionnement aléatoir


Message édité par Chobaron le 16-12-2002 à 20:23:13
n°2654
pineman
Fragueur a temps partiel...
Profil : Vieux de la vieille
Posté le 19-12-2002 à 02:26:19  profilanswer
 

Mouarf ca me fait faire un ptit retour de 5 ans en arriere ca...  :D  
 
Ca fait bizare...  :lol:  Jme sens vieu d'un coup...
 
Ps : Chui d'accor avec chobaron c po la classe ton code... :cry:


---------------
Ne me cherchez plus vous m'avez trouve...  
n°2655
Rantanplan
Modo pas rigolo !
Profil : Fossile
Posté le 20-12-2002 à 08:44:05  profilanswer
 

pineman a écrit :

 
Ps : Chui d'accor avec chobaron c po la classe ton code... :cry:  




 
En meme temps, ca faisait moins d'un mois que je faisais du C ...


---------------
[:rantanplan]
n°2656
pineman
Fragueur a temps partiel...
Profil : Vieux de la vieille
Posté le 20-12-2002 à 10:29:51  profilanswer
 

arf c normal alors... lol
 
Moi g apris la rigueur et l'optimisation du code bien plus tar...  :hello:


---------------
Ne me cherchez plus vous m'avez trouve...  
n°2675
Fabrice971
Profil : Membre
Posté le 27-12-2002 à 23:40:17  profilanswer
 

Lol .... j'adore les commentaires de Sieur Chobaron ...
 
Mettre une variable d'index en tant que char n'a rien de "crade", tant qu'on est certain que le tableau ne dépasse pas 128 éléments ! Fonctionnement aléatoire ? ben y'en a pas là , et si le but de l'algo avait été de trier N éléments , je suppose que rantaplan aurait vu sa sauce différemment ...  
 
Quand à la fonction main , on a parfaitement le droit de la déclarer comme void main() ... s'il y avait une erreur là dedans le compilateur l'aurait dit..
Ce qui se passe quand on déclare le main en void , c'est simplement que le compilateur , à l'édition des liens , remplace le code d'erreur normalement retourné par la fonction main par sa valeur à lui , donc le système n'y voit que du feu ...  
 
Moi je vais pas juger ton code rantanplan , mais ton algo correspond au tri sélectif , pas au tri bulle ...  
 
Le tri bulle s'exprime à peu près comme ça :
 
je scanne mon tableau du début à la fin , et pour chaque élément , je le teste par rapport à son suivant . si le suivant est plus petit alors je permute.
Et je répète cette phrase jusqu'à ce qu'il n'y ait pas eu de permutation.
 
Le résultat est que , à chaque "tour" les éléments les plus petits viennent petit à petit jusqu'au début du tableau .. à la façon de bulles dans un verre de coca , ou de bière , à toi de voir :)
 
Dernière remarque , ta variable K doit impérativement être du même type que les éléments de ton tableau Tab[], donc en short.
Ou alors , Tab[] et K en "unsigned char" , ce serait plus précis au vu de l'énoncé de ton exo qui dit que les nombres ne dépassent pas 255....

n°2676
Donkey
Âne bâté dépressurisé
Profil : Fossile
Posté le 28-12-2002 à 09:39:57  profilanswer
 

la librairie MS qui reprend la conio.h est stdlib.h
 
ex :
#include <stdlib.h>
.
.
.
system("pause" ) ;
system("clr" ) ;
 
(si j'ai pas tout oublié depuis 5 minutes)


---------------
Président fondateur de la Team des Célibataires et Caféïnomane de la première heure
Nerd de l'année 2005 :/, combo nerd de l'année 2006 :'(
Geek, nerd, ingénieur informaticien et admin système :(
n°2681
Fabrice971
Profil : Membre
Posté le 28-12-2002 à 17:27:33  profilanswer
 

pas system("clr" ); mais system("cls" ); ;)

n°2682
JF
Profil : Fossile
Posté le 28-12-2002 à 17:33:43  profilanswer
 

nicj a écrit :

ahhhhhhhhhhhhh ca me rappelle ces longues heures passées en cours d'algo et de C ou j'ai JAMAIS rien compris LOL
 
le tri à bulles !!! haaaaaaaaaaaa ba non toujours pas compris....
 
si je me souviens bien c'est les premiers cours ca les tris de tableau non ???
 
alors la quand arrivent les listes chainees...... voir doublement chainées.... pfiouuuuuuuuuuuuu
en tout cas ca me fait bien rire (je ne me moque surtout pas de toi.... mais c'est les souvenirs de DUT qui reviennent :lol:)
 
RTP n'hesite pas a nous faire vivre comme ca ton programme tout au long de l'année, je suis sur que ca rappelera des souvenirs a beaucoup d'entre nous ;)




 
 :lol: tu m'étonnes de bon vieux souvenirs... quoique j'ai du sécher ses cours la ca me dit strictement rien  [:the zorro touch]


---------------
bahwé
n°2722
Chobaron
Profil : Membre
Posté le 03-01-2003 à 11:00:09  profilanswer
 

Fabrice971 a écrit :

Lol .... j'adore les commentaires de Sieur Chobaron ...
 
Mettre une variable d'index en tant que char n'a rien de "crade", (lol -> )tant qu'on est certain que le tableau ne dépasse pas 128 éléments. !



 
:roll: je crois que tout est dit
 

Fabrice971 a écrit :

Quand à la fonction main , on a parfaitement le droit de la déclarer comme void main() ... (RE LOL -> )s'il y avait une erreur là dedans le compilateur l'aurait dit..
Ce qui se passe quand on déclare le main en void , c'est simplement que le compilateur , à l'édition des liens , remplace le code d'erreur normalement retourné par la fonction main par sa valeur à lui , donc le système n'y voit que du feu ...



 
-Wall ca te dit qqc ? non ? aie :roll:
question de propreté, enfin on doit pas avoir la même conception de la programmation.


Message édité par Chobaron le 03-01-2003 à 11:33:59
n°2728
Fabrice971
Profil : Membre
Posté le 03-01-2003 à 15:54:41  profilanswer
 

J'ai dit quoi de si risible mon grand ? j'applique la logique ... et si on n'a besoin que d'un nombre inférieur à 128 , on utilise le type char .... c'est pas naturel pour toi ?
 
Bon évidemment, pour une question de vitesse et d'optimisation, on peut le déclarer en __register unsigned long et appliquer l'alignement sur 4 octets pour les variables.. mais le but c'était quoi ? de transcrire de la manière la plus simple possible un algo en C , pas de faire un programme au millimètre et optimisé à mort ... l'adressage indirect avec une opérande de 8 bits existe en assembleur , donc pourquoi n'aurait-on pas le droit d'utiliser ce type en C ou quelque langage que ce soit ?
Si tu évitais de te contenter de dire qu'un truc est "crade" et expliquais pourquoi tu trouves ça incorrect, je comprendrais.. mais là tu manques franchement d'arguments .... et à part recopier mon texte en ajoutant lol tu fais quoi ? rien... me semble-t-il ... c'est pas constructif et ça fait pas avancer notre ami ...
 
Et , non , Wall , ça ne me dit rien .... mais je te répète , au lieu de balancer un mot comme ça , dans le vide ... explique toi... c un peu facile là ...

 Page :  1  2
Page Précédente 

Aller à :
Ajouter une réponse