Poster un nouveau sujet Poster une réponse
Algorithme sur la suite de syracuse / AIDE \
Auteur Message
reima17



Autorisation : Membre
Nb de messages : 4
Inscrit le : Mar 20 Mar 2012, 20:47
Posté le : Mar 20 Mar 2012, 20:52   Citer 

Bonsoir!

Voilà je dois faire un algorithme qui donne le temps de vol d'une suite de syracuse d'un entier naturel E. Est-ce que quelqu'un pourrait m'aider svp?..
Merci!!

(J'ai regardé partout sur le forum avant de demander mais je n'ai pas trouvé. Dsl je suis nouvelle et il se peut qu'il y ait déjà un sujet sur le temps de vol)

 Adresse email Haut de page Bas de page 
 
sandro



Autorisation : Membre
Nb de messages : 1387
Inscrit le : Ven 25 Mar 2011, 22:58
Posté le : Mar 20 Mar 2012, 20:55   Citer 

si tu expliquait ce que c'est, je pourrais propablement t'aider, mais sans ces infos, je vois pas comment je pourrais faire.

Sandro

----------------------
mort à l'inutile, place à la mémoire libre et aux programmes
 Adresse email Haut de page Bas de page 
 
reima17



Autorisation : Membre
Nb de messages : 4
Inscrit le : Mar 20 Mar 2012, 20:47
Posté le : Mar 20 Mar 2012, 21:02   Citer 

Ok alors la suite de syracuse:
On a un nombre entier E
S'il est pair, on le divise par deux.
S'il est impair, on le triple et on ajoute 1.
Ex: suite commençant par 3:
Uzéro = 3 ; U(un) = 10 ; U(deux) = 5 ; U(trois) = 16, etc.
il y a une conjecture qui dit que n'importe quel nombre entier strictement positif va atteindre 1.

on appelle temps de vol de la suite de Syracuse d'un entier E le plus petit indice n tel que U(indice)n = 1
par exemple, le temps de vol de la suite de syracuse de 3 est 7.

 Adresse email Haut de page Bas de page 
 
sandro



Autorisation : Membre
Nb de messages : 1387
Inscrit le : Ven 25 Mar 2011, 22:58
Posté le : Mar 20 Mar 2012, 21:13   Citer 


Code
prompt E             //on entre l'entier en question
0 -> N                     //la durée de vol éffectuée est nulle
While E [différent de] 1      //tant que E ne vaut pas 1
If E/2=ent(E/2)            //si E est paire
Then                 //allors
E/2 -> E           //on divise par 2
Else               //sinon
3E+1 -> E          //on triple puis on ajoute 1
End              //fin du si
1+N -> N          //on augmente de 1 la durée de vol déjà effectuée
End            //fin du tant que
Disp N        //on affiche la durée du vol



ça devrait fonctionner.
Sandro

----------------------
mort à l'inutile, place à la mémoire libre et aux programmes
 Adresse email Haut de page Bas de page 
 
reima17



Autorisation : Membre
Nb de messages : 4
Inscrit le : Mar 20 Mar 2012, 20:47
Posté le : Mar 20 Mar 2012, 21:21   Citer 

Wow ça marche à merveille...merci beaucoup !!!! ahh.gif

 Adresse email Haut de page Bas de page 
 
reima17



Autorisation : Membre
Nb de messages : 4
Inscrit le : Mar 20 Mar 2012, 20:47
Posté le : Mar 20 Mar 2012, 21:29   Citer 

Et, désolée de vous déranger encore, mais est-ce que ce serait possible d'en faire un autre qui donne sous forme de liste les premiers termes de la suite jusqu'à ce qu'il atteigne 1 pour la première fois ?

 Adresse email Haut de page Bas de page 
 
Google_AdSense



Publicité    



 
linkakro



Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Mar 20 Mar 2012, 22:17   Citer 

Ecris le même code en ajoutant "Disp E" juste avant le dernier End afin d'afficher les résultats.

Si tu tiens absoluement à stocker la suite dans une liste :
Code
Prompt E
{E -> L1     //stock
0 -> N
While E-1
If partDéc(E/2  // E impair
Then
3E+1 -> E
Else
E/2 -> E
End
1+N -> N
E -> L1(N+1    //stock
End
Disp N
Pause L1



----------------------
ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)

Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store
 Adresse email Haut de page Bas de page 
 
Mary
Invité
Posté le : Jeu 25 Fév 2016, 19:01   Citer 

Bonsoir,
Est-ce que quelqu'un pourrait m'aider sur une programmation sur ti 83 j'essaye de trouver un programme mais il ne fonctionne pas. L'exercice est :
Entrée saisir N .
Traitement des données : c prend la valeur 0, tant que N différent de 1, C prend la valeur c+1, si N est un nombre pair, alors N prend la valeur N/2, afficher N, sinon N prend la valeur 3N+1,afficher N.
Sortie : afficher C.

Mon programme
Promt N
0 sto C
While N différent 1
End
C+1 sto C
If partdec (E/2)
Then
N/2 sto N
Disp N
Else
3N+1 sto N
Disp N
End
Disp C

Voila mon programme mais il ne fonctionne pas!! Est-ce qu'il y aurait quelqu'un qui pourrait m'expliquer où est mon erreur. Merci

  Haut de page Bas de page 
 
Mingerton



Autorisation : Membre
Nb de messages : 504
Inscrit le : Ven 07 Déc 2012, 20:09
Posté le : Sam 27 Fév 2016, 2:00   Citer 

Bonsoir,

Déjà, ton message n'a rien à faire dans ce sujet, tu aurais du en créer un nouveau.

Ensuite, ton End doit venir non pas juste après la condition de boucle (ce qui en fait une boucle vide), mais après les lignes qui sont répétées en boucle. Sur un algo c'est en général précisé par un FinTantQue ou des différences de tabulation. Dans ton cas, tel que je le lis je mettrais le End avec le deuxième End.

----------------------
Mes articles
Mes programmes en ligne (je termine peu de projets)

Guide traduction Algo-Basic, par Linkakro
Catalogue des fonctions 82/83/84 FR/EN
 Adresse email Haut de page Bas de page 
 
Poster un nouveau sujet Poster une réponse





  Powered by Fire-Soft-Board v1.0.10 © 2004 - 2024 Groupe FSB
Page générée en 9 requêtes
BlackOne par Grimmlink