Algo permutation

Fermé
fortunéte - 19 nov. 2008 à 13:31
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 19 nov. 2008 à 17:04
Bonjour,
J'aimerais avoir une solution explicite sur ce programme qui permet de permutter les contenus d'un nommbre a;b;c
le but de ce programme n'est pas d'afficher ces nombres dans l'ordre croissant mais de recueillir dans nombre a la plus petite valeur et dans nombre c la plus grande valeur
Merci

3 réponses

informaticienne
19 nov. 2008 à 16:49
si a est la plus petite et c la plus grande, donc c'est un ordre croissant non?
0
informaticienne
19 nov. 2008 à 16:51
si tu veux permuter a et c ce sera:

SI a>b alors ECHANGE (a,b)
SI b>c alors ECHANGE (b,c)
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
19 nov. 2008 à 17:04
@informaticienne
Non ton algorithme ne marche pas. Tu prends par exemple, a=2,b=1,c=5. Et, à la fin, a ne contiendra pas 5.

@fortunéte
Pour que ça soit plus simple, je te conseille l'utilisation d'un tableau.

Tableau d'entiers : tab[3] = {2,1,5};
Entier i;
Entier tmp;
Entier min,max;
min<-max<-tab[0];
Pour i de 1à 3 Faire :
     Si (tab[i]<min) Alors 
           min<-tab[i];
     Fin Si
     Si(tab[i]>max) Alors
          max<-tab[i]; 
     Fin Si
FinPour
a[0]<-min
a[2]<-max


Il peut y avoir pertes de valeurs bien sûr. Mais bon, le but c'était juste de récupérer le min et le max si j'ai bien compris. ;)

PS : Si tu peux pas utiliser de tableaux, retranscris la boucle for, et remplace respectivement a[0],a[1] et a[2] en a, b et c.
Cdlt
0