Bonjour, j'ai un problème sur Algobox.
Je dois faire un algorithme, assez simple joint ci-dessous. Il me demande de calculer U(>1). Quand U est pair, il prend la valeur U/2 et quand U impair, il prend la valeur 3U+1.
Cependant quand j'essaye avec U=7, je trouve avec algobox 221134175226134020105168421 au lieu de 3*7+1, soit 22!
Merci de vos réponses.
Bonjour,
tu n'obtiens pas du tout ce nombre astronomique là mais bien 22 !!
puis la boucle continue : puisque 22 est pair, il le divise par 2 ce qui donne 11
puis 11 impair il obtient 34 etc
et c'est vrai, il sort bien 22, 11, 34, etc sans aucun espace ni saut de ligne entre les résultats
jusqu'au 8, 4, 2, 1 final
si tu veux mettre chaque résultat sur une ligne différente, il faut le dire à Algobox :
il y a une case à cocher pour ça dans les "AFFICHER", en mode éditeur il faut écrire AFFICHER*
Bonjour Mathy.
Il faut peut-être calculer la structure SI sur celle des langages usuels.
En Visual Basic :
If Mod(u,2) = 0 Then
u = u/2
Else
u = 3*u+1
End If
En Algobox, cela deviendrait ;
SI (U%2 == 0) ALORS
U PREND LA VALEUR U/2
SINON
U PREND LA VALEUR 3*U+1
FIN SI
Le programme devrait afficher successivement 22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1.
Quel que soit le U de départ, il semble qu'on aboutisse toujours à 1, après un chemin plus ou moins long. Voir Conjecture de Syracuse dans Wikipédia.
Bonjour plumemeteore,
le seul bug est le problème d'affichage sans saut de ligne
la structure et tout le reste de l'algorithme est correct
avec Algobox, la structure est générée correctement de façon automatique dès qu'on lui demande d'insérer un SI avec SINON (case à cocher pour le "avec SINON")
un truc de faineants cet Algobox ...
(oui, la conjecture de Syracuse fait les beaux jours des programmeurs en herbe)
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :