Inscription / Connexion Nouveau Sujet
Niveau terminale
Partager :

Algorithme

Posté par
Marina30
25-09-12 à 18:49

Bonsoir , j'ai un soucis sur un exercice.
Je dois mettre au point un algorithme sur Algobox qui classerai trois réels x y et z selon un ordre croissant.
Quelqu'un peut il m'aider? je n'ai pas l'habitude d'utiliser Algobox .

J'ai quand même commencé en déclarant les trois variable x y et z et puis lecture de ces trois variables

Posté par
Glapion Moderateur
re : Algorithme 25-09-12 à 19:08

Bonsoir, et puis fait des tests genre
Si (x>y) alors t=x ; x=y ; y=t c.a.d que tu intervertis x et y
Si (y>z) alors t=y ; y=z ; z=t
Si (x>y) alors t=x ; x=y ; y=t

et normalement après, x;y;z devraient être dans l'ordre croissant, et tu n'as plus qu'à les afficher.

Essaye, je te corrigerai la syntaxe si tu veux.

Posté par
Marina30
re : Algorithme 25-09-12 à 19:19

à quoi correspond "t" ?

Posté par
Glapion Moderateur
re : Algorithme 25-09-12 à 19:22

C'est juste une variable pour stocker temporairement la variable x ou y. Si on veut intervertir deux nombres, il faut bien stocker le premier quelque part car si on fait x=y sans avoir stocké sa valeur quelque part, on perd la valeur et on ne peut plus faire y=x

Posté par
Marina30
re : Algorithme 25-09-12 à 19:26

ah d'accord. je vais tenter ça , je reviens avec une capture d'écran pour la vérification

Posté par
Marina30
re : Algorithme 25-09-12 à 19:42

quand je déclare t comme variable , de quelle type doit-il être ?

Posté par
Glapion Moderateur
re : Algorithme 25-09-12 à 21:39

comme les autres, Nombre

Posté par
Marina30
re : Algorithme 26-09-12 à 18:50

je n'ai pas vu votre message hier soir , je fais l'algorithme de suite.

Posté par
Marina30
re : Algorithme 26-09-12 à 19:16

voilà ce que j'ai tenté et bien sur .. ce n'est pas correct .

Algorithme

Posté par
Glapion Moderateur
re : Algorithme 26-09-12 à 19:23

Evidemment, afficher "t=x;x=y;y=t" ça ne calcule rien du tout, ça ne fait qu'afficher.
Met 3 instructions t PREND_LA_VALEUR x

Et le troisième c'est Si (x>y) alors t=x ; x=y ; y=t donc les mêmes instruction que le premier bloc.

Comprend un peu mieux ce que ça fait. Je te l'écris en français :
j'ai 3 nombres x;y;z, et je veux qu'il soient dans l'ordre croissant.
si x>y (ils ne sont pas à leur place) donc j'intervertis x et y
si y>z (ils ne sont pas à leur place) donc j'intervertis y et z
si x>y (on est obligé de le refaire un coup parce si z était le plus petit au départ, il est en position y maintenant ) donc j'intervertis x et y

Essaye avec 3;2;1 la configuration la pire. ça donne 2;3;1 puis 2;1;3 puis 1;2;3

Posté par
Marina30
re : Algorithme 26-09-12 à 19:31

comment afficher les résultats pour qu'ils soient dans l'ordre ?

Posté par
Glapion Moderateur
re : Algorithme 26-09-12 à 19:32

A la fin, ils sont dans l'ordre puisque les instructions d'avant ont justement pour but de les mettre dans l'ordre et donc tu les affiches tout simplement.

Posté par
Marina30
re : Algorithme 26-09-12 à 19:35

toujours pas bon .. je n'ai pas saisi je pense ^^

Algorithme

Posté par
Glapion Moderateur
re : Algorithme 26-09-12 à 19:39

il faut mettre les 3 instructions à chaque fois, par exemple pour le premier bloc :
t PREND_LA_VALEUR x
x PREND_LA_VALEUR y
y PREND_LA_VALEUR t

Posté par
Marina30
re : Algorithme 26-09-12 à 19:42

j'ai toujours pas compris .. je vais laisser tomber je pense ...

Posté par
Glapion Moderateur
re : Algorithme 26-09-12 à 19:46

C'est pourtant simple à comprendre. Ces 3 instructions intervertissent x et y.
Au lieu de t PREND_LA_VALEUR x seulement tu rajoutes les deux autres.
Fait le fonctionner pas à pas, et tu verras bien ce qu'il se passe.

Posté par
Marina30
re : Algorithme 26-09-12 à 19:49

toujours pas ..

Posté par
Glapion Moderateur
re : Algorithme 26-09-12 à 19:51

montre le moi une fois que tu as rajouté les instructions.

Posté par
Marina30
re : Algorithme 26-09-12 à 20:26

j'ai essayé ça

Algorithme

Posté par
Marina30
re : Algorithme 26-09-12 à 20:39

je peux peut être essayer quelque chose avec plusieurs conditions et un affichage de toutes les variables dans l'ordre juste après non ?

Posté par
Glapion Moderateur
re : Algorithme 26-09-12 à 21:44

oui tu n'as pas rajouté les instructions que j'ai dit, donc ça ne risque pas de marcher.

Voilà, tu peux copier/coller ça dans Algobox en mode editeur de texte :

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

Par exemple si tu rentres 3;2 ;1 ça donne :
***Algorithme lancé***
nous devons trier les 3 nombres : 3 2 1
Et ça donne : 1 2 3

***Algorithme terminé***

Posté par
Marina30
re : Algorithme 26-09-12 à 21:56

merci pour la solution .. mais pourquoi doit on faite t prend la valeur ... etc ?

Posté par
Glapion Moderateur
re : Algorithme 27-09-12 à 12:35

Imagine que tu veuilles faire un algorithme qui intervertisse les valeurs de deux variables x et y. Comment t'y prendrais-tu ?



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 1730 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 !