Rechercher : dans
Par :

Algo permutation

Dernière réponse le 19 nov 2008 à 17:04:34 fortunéte, le 19 nov 2008 à 13:31:37 
 Signaler ce message aux modérateurs

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

Configuration: Windows XP
Internet Explorer 6.0

Meilleures réponses pour « Algo permutation » dans :
Manipulation de données - Réorganisation : rotation et permutati VoirRéorganisation : rotation et permutation La bibliothèque standard fournit plusieurs algorithmes permettant de réorganiser la séquence des éléments dans un conteneur qui ne prend pas en charge lui-même l’ordre de ses éléments. Ces algorithmes...

1

informaticienne, le 19 nov 2008 à 16:49:40

Si a est la plus petite et c la plus grande, donc c'est un ordre croissant non?

Répondre à informaticienne

2

informaticienne, le 19 nov 2008 à 16:51:40

Si tu veux permuter a et c ce sera:

SI a>b alors ECHANGE (a,b)
SI b>c alors ECHANGE (b,c)

Répondre à informaticienne

3

 fiddy, le 19 nov 2008 à 17:04:34

@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
Google is your friend

Répondre à fiddy