Bonjour tout le monde,
Dans mon algorithme de la suite de Syracuse ( voir image ), je dois rajouter une variable qui s'appelle ' nbre le plus haut ". Cette variable doit me dire lorsqu'on tape un chiffre par exemple 26 le nombre le plus haut de la suite ( jusqu'à 1 ). J'ai donc ajouté une nouvelle variable mais je ne sais pas du tout comment procéder pour qu'il me fasse ceci... Pouvez-vous m'expliquer s'il vous plaît ?
Bonne fin de journée
Océane
Bonsoir, par exemple :
(Pour le copier/coller, il faut être en mode éditeur de texte dans algobox) :
VARIABLES
u EST_DU_TYPE NOMBRE
nbre EST_DU_TYPE NOMBRE
DEBUT_ALGORITHME
LIRE u
nbre PREND_LA_VALEUR 0
TANT_QUE (u != 1) FAIRE
DEBUT_TANT_QUE
SI (u%2==0) ALORS
DEBUT_SI
u PREND_LA_VALEUR u/2
FIN_SI
SINON
DEBUT_SINON
u PREND_LA_VALEUR 3*u+1
FIN_SINON
SI (u>nbre) ALORS
DEBUT_SI
nbre PREND_LA_VALEUR u
FIN_SI
FIN_TANT_QUE
AFFICHER nbre
FIN_ALGORITHME
Ah oui merci beaucoup pour cet algorithme !
Par contre comment faire pour qu'il m'affiche toute la suite et à la fin le nombre le plus haut ? car là il n'affiche seulement le nombre le plus haut.. et quand je mets ' afficher u ' ça me met des nombres bizarres..
Oui alors prend celui-là :
VARIABLES
u EST_DU_TYPE NOMBRE
nbre EST_DU_TYPE NOMBRE
n EST_DU_TYPE NOMBRE
DEBUT_ALGORITHME
LIRE u
n PREND_LA_VALEUR 1
nbre PREND_LA_VALEUR 0
AFFICHER n
AFFICHER " -> "
AFFICHER* u
TANT_QUE (u != 1) FAIRE
DEBUT_TANT_QUE
n PREND_LA_VALEUR n+1
SI (u%2==0) ALORS
DEBUT_SI
u PREND_LA_VALEUR u/2
FIN_SI
SINON
DEBUT_SINON
u PREND_LA_VALEUR 3*u+1
FIN_SINON
SI (u>nbre) ALORS
DEBUT_SI
nbre PREND_LA_VALEUR u
FIN_SI
AFFICHER n
AFFICHER " -> "
AFFICHER* u
FIN_TANT_QUE
AFFICHER " le nombre le plus haut : "
AFFICHER* nbre
FIN_ALGORITHME
Ben, il faut ce que tu as demandé, il affiche tous les termes de la suite ainsi que leur rang et le terme le plus haut à la fin.
D'accord merci, mais avec l'autre j'avais réussi à tout afficher . Puis-je vous demander une question sur un autre algorithme qui n'a rien à voir ?
c'est gentil. Je devais faire un algorithme qui me demande deux nombres a et b. Si ils sont identiques il me dit qu'ils sont les mêmes mais si ils sont différents a prend la valeur de b et b prend la valeur de a... mais je n'arrive pas. a prend la valeur de b mais b ne prend pas la valeur de a. Je vous mets ce que j'ai fait
il faut passer par une valeur intermédiaire c car si tu fais a=b puis b=a, à ce moment là a a déjà perdu la valeur qu'il avait.
je n'ai pas compris à quoi servait ton tantQue
VARIABLES
a EST_DU_TYPE NOMBRE
b EST_DU_TYPE NOMBRE
c EST_DU_TYPE NOMBRE
DEBUT_ALGORITHME
LIRE a
LIRE b
AFFICHER "Deux nombres :"
AFFICHER a
AFFICHER " et "
AFFICHER* b
SI (a==b) ALORS
DEBUT_SI
AFFICHER "Les deux nombres sont égaux"
FIN_SI
SINON
DEBUT_SINON
c PREND_LA_VALEUR a
a PREND_LA_VALEUR b
b PREND_LA_VALEUR c
AFFICHER "Les mêmes mais intervertis :"
AFFICHER a
AFFICHER " et "
AFFICHER* b
FIN_SINON
FIN_ALGORITHME
Ah oui d'accord effectivement le mien ne pouvait pas marcher... cependant je ne comprends pas trop le passage :
c PREND_LA_VALEUR a
a PREND_LA_VALEUR b
b PREND_LA_VALEUR c
Pouvez-vous m'expliquer ?
désolée pour toutes ces questions ...
On stocke provisoirement a dans c
on affecte à a la valeur de b
on affecte à b l'ancienne valeur de a que l'on avait stockée dans c.
Au final on a échangé a et b.
Fait le fonctionner à la main, ou pas à pas dans algobox, tu verras bien les valeurs que prennent les variables.
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :