Inscription / Connexion Nouveau Sujet
Niveau première
Partager :

Algorithme

Posté par
Valine
08-02-14 à 17:06

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.

Posté par
Glapion Moderateur
re : Algorithme 08-02-14 à 17:12

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.

Posté par
Valine
re : Algorithme 08-02-14 à 17:17

Je ne sais pas comment échanger des valeurs ? Et je ne comprends pas pourquoi on fait ca ?

Posté par
Glapion Moderateur
re : Algorithme 08-02-14 à 17:20

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

Posté par
Valine
re : Algorithme 08-02-14 à 17:30

Sur algobox je dois donc ajouter une autre variable x pour pouvoir échanger a et b ?

Posté par
Glapion Moderateur
re : Algorithme 08-02-14 à 17:32

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)

Posté par
Valine
re : Algorithme 08-02-14 à 17:39

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 ?

Posté par
Glapion Moderateur
re : Algorithme 08-02-14 à 17:42

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.

Posté par
Valine
re : Algorithme 08-02-14 à 17:47

Je suis perdue, on utilise jamais c ?

Posté par
Glapion Moderateur
re : Algorithme 08-02-14 à 18:00

ben si, ton second bloc était bien
si b>c alors
y=b
c=b
b=y

tu as utilisé c, non ?

Posté par
Valine
re : Algorithme 08-02-14 à 18:04

ah d'accord, en fait je fais a>b puis b>c et encore a>b ?

Posté par
Glapion Moderateur
re : Algorithme 08-02-14 à 18:08

oui

Posté par
Valine
re : Algorithme 08-02-14 à 18:10

c'est tout ensuite c'est fini ?

Posté par
Glapion Moderateur
re : Algorithme 08-02-14 à 18:12

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.

Posté par
Glapion Moderateur
re : Algorithme 08-02-14 à 18:18

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

Posté par
Valine
re : Algorithme 08-02-14 à 18:18

J'ai du faire une erreur car je trouve deux fois la valeur b et jamais la valeur c

Posté par
Valine
re : Algorithme 08-02-14 à 18:24

Merci beaucoup !



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Inscription gratuite

Fiches en rapport

parmi 1768 fiches de maths

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !