logo

Programmation


« Précédent 1 2 Suivant » +


premièreProgrammation

#msg1935745 Posté le 17-07-08 à 20:36
Posté par ProfilJay_Matheux Jay_Matheux

Bonsoir à tous et bonnes vacances. J'ai un problème :/ voilà je ferais SP math bientôt et j'ai décidé de m'avancer ^^ et puis les maths me manquent et là on me demande de programmer un algorithme avec pour condition d'arrêt l'obtention du nombre 1 et avec en plus un compteur qui détermine le nombre d'étapes avant l'obtention du nombre 1 :s

L'algorithme:

n-> le nombre est-il pair? (1)      avec n
   Si oui le diviser par deux (n/2) sinon le multiplier par 3 et rajouter 1 (3n+1)
   recommencer a (1)

Mon boulot...sans succès: J'ai une ti 84+

: Prompt n
:if int(n/2)=n(2)
:then
:n/2
:Goto 1
:End
:3n+1
:Lbl 1
:End
...

Merci d'avance pour vos aides

                                                                             Jay
re : Programmation#msg1935747 Posté le 17-07-08 à 20:44
Posté par Profilinfophile infophile

Salut

C'est la conjecture de Syracuse, t'auras pas de mal à trouver son algo sur le net.

Il n'y a pas de "else" dans le tien ?
re : Programmation#msg1935749 Posté le 17-07-08 à 20:48
Posté par ProfilJay_Matheux Jay_Matheux

Si si il y a "else"
re : Programmation#msg1935751 Posté le 17-07-08 à 20:56
Posté par ProfilJay_Matheux Jay_Matheux

Merci à toi infophile grâce à toi je suis parvenu à faire mon programme en faisant des petites recherches sur le net ^^ encore merci
re : Programmation#msg1935752 Posté le 17-07-08 à 20:59
Posté par Profilinfophile infophile

De rien

Qu'est-ce qui clochait ? Je ne connais pas le language des TI.
re : Programmation#msg1935753 Posté le 17-07-08 à 21:01
Posté par ProfilJay_Matheux Jay_Matheux

ben j'arrivait pas à faire en boucle en faite, mais là je m aperçoit que c'est pas suffisant
parce qu'il faut compter le nombre de boucle effectué et à avoir la plus grande valeur rencontrée :s :'(
re : Programmation#msg1935755 Posté le 17-07-08 à 21:04
Posté par Profilinfophile infophile

Tu peux utiliser une boucle while sinon non ?

Tant que t'arrives pas à 1 tu incrémentes.

re : Programmation#msg1935758 Posté le 17-07-08 à 21:07
Posté par ProfilJay_Matheux Jay_Matheux

j'ai ici utilisé les fonctions LBL et GOTO
re : Programmation#msg1935759 Posté le 17-07-08 à 21:07
Posté par Profilfakir151 fakir151

Tu programmes avec quel calculatrice Kevin?

fakir
re : Programmation#msg1935760 Posté le 17-07-08 à 21:08
Posté par Profilinfophile infophile

J'ai jamais prog une calto, je fais ça sous Maple ou Pascal ça offre plus de possibilités
re : Programmation#msg1935761 Posté le 17-07-08 à 21:11
Posté par ProfilJay_Matheux Jay_Matheux

c'est gratuit?
re : Programmation#msg1935762 Posté le 17-07-08 à 21:11
Posté par Profilfakir151 fakir151

ok ! c'est dommage car au lycée, ça aurait pu etre tres utile (comme pour les eq du second degré, systeme...)
re : Programmation#msg1935764 Posté le 17-07-08 à 21:13
Posté par ProfilQuent225 Quent225

Bonsoir!

je suis parvenu à faire le programme, mais il me manque le compter et la valeur max.

romt A
:While A>1
=If iPart(A/2)=A/2
:Then
:A/2->A
isp A
ause
:Else
:3A+1->A
isp A
ause
:End
:End
isp A
re : Programmation#msg1935765 Posté le 17-07-08 à 21:14
Posté par ProfilQuent225 Quent225

= : P
= : D
...
re : Programmation#msg1935767 Posté le 17-07-08 à 21:15
Posté par ProfilQuent225 Quent225

il me manque le compteur
re : Programmation#msg1935768 Posté le 17-07-08 à 21:15
Posté par ProfilJay_Matheux Jay_Matheux

merci Quent mais c'est ce que j'arrive pas à faire!! lol le compter et la valeur max :p
re : Programmation#msg1935769 Posté le 17-07-08 à 21:17
Posté par ProfilJay_Matheux Jay_Matheux

compteur* ...décidément lol
re : Programmation#msg1935770 Posté le 17-07-08 à 21:18
Posté par ProfilQuent225 Quent225

je crois qu'il faut utiliser les listes, mais je suis pas sur...
re : Programmation#msg1935771 Posté le 17-07-08 à 21:19
Posté par ProfilJay_Matheux Jay_Matheux

Mais bien sûr !! c'est une bonne idée le but serait de stocker dans une liste...et ensuite de l'ordonner et tout le blabla...
re : Programmation#msg1935772 Posté le 17-07-08 à 21:23
Posté par ProfilPorcepic Porcepic

Bonsoir,

Je pense que tu peux aussi simplement stocker le compteur et la valeur max dans deux variables.

Pour le compteur, tu déclares N=1 au début de ton programme. Ensuite, avant la fin de la boucle, tu redéfinis N en N=N+1, puis un Disp N à la fin du programme.

Pour la valeur max, il suffit de déclarer au début M=A, puis ensuite vérifier dans ta boucle si on a A>M, auquel cas tu redéfinis M en M=A. Puis tu finis avec ton Disp P à la fin.

Normalement, ça devrait marcher, mais à vérifier.
re : Programmation#msg1935773 Posté le 17-07-08 à 21:25
Posté par ProfilJay_Matheux Jay_Matheux

j'essaie :s merci beaucoup
re : Programmation#msg1935774 Posté le 17-07-08 à 21:30
Posté par ProfilJay_Matheux Jay_Matheux

J'arrive pas...je retente avec les listes...
re : Programmation#msg1935775 Posté le 17-07-08 à 21:31
Posté par Profilinfophile infophile

Oui voilà Porcepic rejoint ce que je disais quant à l'incrémentation.

Je peux rédiger algorithmiquement si tu veux mais je connais pas la syntaxe des TI.

Bonne soirée tout le monde
re : Programmation#msg1935777 Posté le 17-07-08 à 21:33
Posté par ProfilQuent225 Quent225

:promt A
:N=1
:While A>1
:If iPart(A/2)=A/2
:Then
:A/2->A
:disp A
:pause
:Else
:3A+1->A
:disp A
:pause
:End
:N+1->N
:End
Voilà pour le compteur
re : Programmation#msg1935778 Posté le 17-07-08 à 21:35
Posté par Profilinfophile infophile

Ca m'a l'air d'être une affaire qui roule ça
re : Programmation#msg1935779 Posté le 17-07-08 à 21:35
Posté par ProfilJay_Matheux Jay_Matheux

bonne soirée
re : Programmation#msg1935780 Posté le 17-07-08 à 21:36
Posté par ProfilJay_Matheux Jay_Matheux

merci quent225
re : Programmation#msg1935781 Posté le 17-07-08 à 21:40
Posté par ProfilQuent225 Quent225

Et pour le programme final, grâce aux propositions de Porcepic:

:promt A
:N=1
:M=A
:While A>1
:If iPart(A/2)=A/2
:Then
:A/2->A
:disp A
:pause
:Else
:3A+1->A
:disp A
:pause
:End
:If A>M
:Then
:A->M
:N+1->N
:End
isp "La valeur maximale de la suite est :", M
isp "Le nombre d'itérations est:",N
re : Programmation#msg1935782 Posté le 17-07-08 à 21:42
Posté par ProfilQuent225 Quent225

Bonne soirée à tous...
re : Programmation#msg1935783 Posté le 17-07-08 à 21:42
Posté par ProfilJay_Matheux Jay_Matheux

trop bon!!!!!!!!!!! je suis heureux merci !!!!! tout le monde!!!
re : Programmation#msg1935784 Posté le 17-07-08 à 21:49
Posté par ProfilQuent225 Quent225

apparemment, il y aurait une erreur: le compteur ne marche pas
re : Programmation#msg1935786 Posté le 17-07-08 à 21:51
Posté par ProfilQuent225 Quent225

le valeur max nn plus
re : Programmation#msg1935787 Posté le 17-07-08 à 22:01
Posté par ProfilJay_Matheux Jay_Matheux

a zut dsl du retard :s
re : Programmation#msg1935788 Posté le 17-07-08 à 22:03
Posté par ProfilQuent225 Quent225

j'ai trouvé l'erreur pour V max
re : Programmation#msg1935789 Posté le 17-07-08 à 22:05
Posté par ProfilJay_Matheux Jay_Matheux

c quoi??
re : Programmation#msg1935790 Posté le 17-07-08 à 22:06
Posté par ProfilQuent225 Quent225

et pour le nb d'itération ! :

SYRACUSE V2.beta:


:promt A
:1->N
:1->O
:A->M
:While A>1
:If iPart(A/2)=A/2
:Then
:A/2->A
:disp A
:pause
:O+1->O
:Else
:3A+1->A
:disp A
:If A>M
:Then
:A->M
:pause
:N+1->N
:End
:End
:End
:N+O->P
:disp "La valeur maximale de la suite est :", M
:disp "Le nombre d'itérations est:",p
re : Programmation#msg1935792 Posté le 17-07-08 à 22:08
Posté par ProfilJay_Matheux Jay_Matheux

merci quent225 pourrais tu m'expliquer les étapes importantes stp et après ça sera fini
re : Programmation#msg1935793 Posté le 17-07-08 à 22:09
Posté par ProfilQuent225 Quent225



:promt A
:1->N
:1->O
:A->M
:While A>1
:If iPart(A/2)=A/2
:Then
:A/2->A
:disp A
:pause
:O+1->O
:Else
:3A+1->A
:disp A
:If A>M
:Then
:A->M
:end
:pause
:N+1->N
:End
:End
:N+O->P
:disp "La valeur maximale de la suite est :", M
:disp "Le nombre d'itérations est:",poups!:
re : Programmation#msg1935794 Posté le 17-07-08 à 22:09
Posté par ProfilJay_Matheux Jay_Matheux

par exemple pourquoi une nouvelle variable O
re : Programmation#msg1935795 Posté le 17-07-08 à 22:12
Posté par ProfilQuent225 Quent225

Parceque je n'y suis pas arrivé autrement...

Je compte le nombre de fois où il faut faire 2A
et puis le nombre de fois où il faut faire 3A+1
re : Programmation#msg1935797 Posté le 17-07-08 à 22:21
Posté par ProfilJay_Matheux Jay_Matheux

ok!!! t'es en quelle classe si ce n'est pas trop indiscret ^^
re : Programmation#msg1935798 Posté le 17-07-08 à 22:22
Posté par ProfilQuent225 Quent225

arg! encore une erreur!!!!!!!

Bon cette fois-ci c'est la dernière (et sans la variable O en plus):



:promt A
:1->N
:A->M
:While A>1
:If iPart(A/2)=A/2
:Then
:A/2->A
:disp A
:pause
:Else
:3A+1->A
:disp A
:If A>M
:Then
:A->M
:End
:pause
:End
:N+1->N
:End
:disp "La valeur maximale de la suite est :", M
:disp "Le nombre d'itérations est:",N
re : Programmation#msg1935799 Posté le 17-07-08 à 22:22
Posté par ProfilQuent225 Quent225

j'entre en 6e en septembre (en Belgique, donc j'entre en Terminale)
re : Programmation#msg1935800 Posté le 17-07-08 à 22:23
Posté par ProfilJay_Matheux Jay_Matheux

ok en forme
re : Programmation#msg1935801 Posté le 17-07-08 à 22:27
Posté par ProfilQuent225 Quent225

et toi tu es en quelle année???
re : Programmation#msg1935803 Posté le 17-07-08 à 22:31
Posté par ProfilJay_Matheux Jay_Matheux

je vais passer en terminale
re : Programmation#msg1935804 Posté le 17-07-08 à 22:32
Posté par ProfilJay_Matheux Jay_Matheux

Pourquoi à la fin tu fais N+1, pourquoi rajoute-tu 1 ??
re : Programmation#msg1935805 Posté le 17-07-08 à 22:32
Posté par ProfilJay_Matheux Jay_Matheux

il faut pas à mon avis
re : Programmation#msg1935806 Posté le 17-07-08 à 22:33
Posté par ProfilQuent225 Quent225

tiens donc!

bon, je crois que je vais y aller...
bonne (fin) de soirée
re : Programmation#msg1935809 Posté le 17-07-08 à 22:35
Posté par ProfilQuent225 Quent225

Citation :
Pourquoi à la fin tu fais N+1, pourquoi rajoute-tu 1 ??

Parcequ'il y a une étape en plus à chaque fois, j'usqu'à ce que A=1

« Précédent 1 2 Suivant » +


Répondre à ce sujet

réservé Seuls les membres peuvent poster sur le forum !

Vous devez être connecté pour poster
attention Un modérateur est susceptible de supprimer toute contribution qui ne serait pas en relation avec le thème de discussion abordé, la ligne éditoriale du site, ou qui serait contraire à la loi.

  • Ce topic

    imprimer Imprimer
    réduire la tailleRéduire   /   agrandir la tailleAgrandir

    Pour plus d'options, connection connectez vous !
  • Fiches de maths

    * fiches de niveau première
    47 fiches de mathématiques en première disponibles.


cours particuliers - cours de maths haut de pagehaut Retrouvez cette page sur ilemaths l'île des mathématiques
© Tom_Pascal & Océane 2008