Bonjour quelqu'un pourrait m'aider pour cet algorithme je suis perdue:
Ecrire un algorithme permettant d'effectuer le tri dans l'ordre croissant de trois réels a, b et c.
Bonjour, pour progresser dans les algorithmes, il faut se lancer et essayer.
L'idée générale c'est :
on demande les valeurs des 3 nombres et on les mets dans des variables.
on prend les deux premiers et on teste si a > b, si oui on échange leur valeur et sinon on les laisse comme ça.
on prend le second et le troisième et on fait pareil.
on refait la même opération avec les deux premiers (parce que s'ils étaient au début dans l'ordre c;b;a, la première opération donne b;c;a la seconde b;a;c et la troisième est nécessaire et donne a;b;c)
puis on les affiche dans l'ordre croissant.
On les veut dans l'ordre croissant donc il est bien naturel de comparer leur valeur et si elles ne sont pas dans l'ordre croissant, de les intervertir. En faisant ça 3 fois, on va les avoir remis dans le bon ordre.
Pour échanger les valeurs de a et de b, il suffit d'utiliser une variable complémentaire :
x=a
b=a
a=x
oui obligatoirement
(car si on fait a prend la valeur b et juste après b prend la valeur a, ça ne marche pas, tu te retrouves avec deux fois la valeur b)
Si a>b alors
x=a
b=a
a=x
donc ensuite je dois faire
si b>c alors
y=b
c=b
b=y ?
Et ensuite je fais si a >c ?
non, à nouveau si a > b (car entre temps, c est passé en b s'il était plus petit);
Et tu peux garder la même variable x pour stocker temporairement les valeurs, pas la peine de prendre y.
il reste à afficher a;b;c
tu devrais vraiment l'écrire dans algobox et le tester avec des valeurs a;b;c dans un ordre quelconque et regarder si ça les remet bien dans l'ordre croissant.
Comme je quitte, je te fais cadeau :
(tu peux le copier/coller dans algobox en mode éditeur de texte, ou bien directement en ligne dans proglab
)
VARIABLES
x EST_DU_TYPE NOMBRE
y EST_DU_TYPE NOMBRE
z EST_DU_TYPE NOMBRE
t EST_DU_TYPE NOMBRE
DEBUT_ALGORITHME
LIRE x
LIRE y
LIRE z
AFFICHER "nous devons trier les 3 nombres : "
AFFICHER x
AFFICHER " "
AFFICHER y
AFFICHER " "
AFFICHER* z
SI (x>y) ALORS
DEBUT_SI
t PREND_LA_VALEUR x
x PREND_LA_VALEUR y
y PREND_LA_VALEUR t
FIN_SI
SI (y>z) ALORS
DEBUT_SI
t PREND_LA_VALEUR y
y PREND_LA_VALEUR z
z PREND_LA_VALEUR t
FIN_SI
SI (x>y) ALORS
DEBUT_SI
t PREND_LA_VALEUR x
x PREND_LA_VALEUR y
y PREND_LA_VALEUR t
FIN_SI
AFFICHER "Et ça donne : "
AFFICHER x
AFFICHER " "
AFFICHER y
AFFICHER " "
AFFICHER* z
FIN_ALGORITHME
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :