Inscription / Connexion Nouveau Sujet
Niveau première
Partager :

Exercice de programmation TI-89 Algorithme de Babylone

Posté par
azertyyy
28-02-07 à 12:33

Bonjour,
j'ai un exercice de programmation sur l'algorithme de Babylone dans mon DM de maths qui me pose problème :S..voici l'énoncé :
On va écrire un programme permettant de calculer les termes des suites (an) et (bn).
rappel : Soit L un nombre entier supérieur à 1.
an+1=(an+bn)/2 et bn+1=L/an+1.
Pour cela, on utilisera l'algorithme suivant :
Entrée : L est un entier naturel supérieur à 1 et p est un entier naturel non nul.
Initialisation : Donner à A et à L la valeur L et à B la valeur 1. Donner à N la valeur 1.
Traitement :     Tant que AB
                        Donner à N la valeur N+1
                        Donner à A la valeur (A+B)/2
                        Donner à B la valeur L/A
Sortie :         Ecrire N,A et B
Recopier le programme sur la copie en indiquant pour quel modèle de calculatrice il a été écrit.

sur ma calculatrice Texas Instruments 89(TI-89), j'ai tapé :
:babylone()
: Prgm
: Prompt l
: l>1
: p0
: la
: ll
: 1b
: 1n
: While ab
: n+1n
: (a+b)/2a
: l/ab
: EndWhile
: Disp n,a,b
: EndPrgm

mais lorsque j'entre la valeur de L lors de l'exécution du programme, la calculatrice affiche "busy" pendant 8s puis une fenêtre apparait signalant une erreur " overflow" (???)


Quelle pourrait être mon erreur dans le programme ?

merci d'avance !

Posté par
cqfd67
re : Exercice de programmation TI-89 Algorithme de Babylone 28-02-07 à 12:55

bonjour,

je pense que ton soucis est la condition d'arret
a et b ne sont peut etre jamais egaux a cause de l'arrondis.

Posté par
patrice rabiller
re : Exercice de programmation TI-89 Algorithme de Babylone 28-02-07 à 12:59

Bonjour,

On dit dans l'énoncé qu'il y a 2 variables en entrée L et p.
J'aurais donc écrit :

:Repeat
rompt L
:Until (Int(L)=L)and(L>1)
:repeat
rompt p
:Until (Int(p)=p)and(p>0)
etc ...

Cela dit, je ne sais pas si la Ti89 dispose de la structure Repeat Until. Si ce n'est pas le cas, on peut trouver une tournure équivalente avec While...EndWhile.

Le test Int(L)=L permet de savoir si L est un entier...

Posté par
patrice rabiller
re : Exercice de programmation TI-89 Algorithme de Babylone 28-02-07 à 13:00

Oups, j'aurais dû laisser un espace entre les ":" et les mots "Prompt" ...

Posté par
cqfd67
re : Exercice de programmation TI-89 Algorithme de Babylone 28-02-07 à 13:04

si tu remplaces la ligne

While ab par while abs(a-b)>10-6 ton programme marchera.

Posté par
azertyyy
re : Exercice de programmation TI-89 Algorithme de Babylone 28-02-07 à 13:16

cqfd67, je ne comprends pas pourquoi il faudrait remplacer While ab par While abs(a-b)>10-6 ( ?__? )
j'ai remplacé , et lors de l'exécution du programme, la calculatrice affiche 3 nombres : ces 3 nombres sont disposés les un en dessous de l'autre, est- ce l'ordre dans lequel l'on a voulu écrire n,a,b , c'es-à-dire n, puis a puis b
en tapant l= 7
la calculatrice affiche :    6
                          7238946623297/2736064645568
                          19152452518976/7238946623297
???

Posté par
cqfd67
re : Exercice de programmation TI-89 Algorithme de Babylone 28-02-07 à 16:33

La calculatrice a du mal pour disserner si deux nombres sont egaux a cause des problemes d arrondis.
J'ai mis 10-6 pour que a et b aient une difference plus petite que 10-6. Si tu veux une plus grande précision a toi de mettre un nombre nombre.

oui 6 = n
     7238946623297/2736064645568

Posté par
cqfd67
re : Exercice de programmation TI-89 Algorithme de Babylone 28-02-07 à 16:36

pardon: 6 = n
7238946623297/2736064645568 = a
  19152452518976/7238946623297 = b

pour avoir une valeur approchée de a et b il faut changer l avant derniere ligne

Disp n,a,b par

Disp n, approx(a), approx(b)

Posté par
cqfd67
re : Exercice de programmation TI-89 Algorithme de Babylone 28-02-07 à 16:38

En utilisant l =7
tu auras:

6
2,64575131111
2,64575131102

avec une precision de 10-6 souhaitée

Posté par
azertyyy
re : Exercice de programmation TI-89 Algorithme de Babylone 28-02-07 à 19:08

et que peut-on conjecturer concernant la convergence des suites (an) et (bn)? Que calcule ce programme?

Posté par
azertyyy
re : Exercice de programmation TI-89 Algorithme de Babylone 01-03-07 à 11:01

allo?

Posté par
azertyyy
re : Exercice de programmation TI-89 Algorithme de Babylone 02-03-07 à 16:16

quelqu'un pourrait m'aider?



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