Inscription / Connexion Nouveau Sujet
Niveau terminale
Partager :

Algorithme

Posté par
Pommme
28-10-15 à 11:08

Bonjour,
Pour un DM de maths (terminale S), je dois créer un algorithme.
On cherche à déterminer la plus petite valeur de l'entier n pour laquelle on a :
3/4- Pn < 10^-7
C'est la dernière question de l'exercice sachant que j'ai prouvé que Pn = 3/4- 13/4*(1/5)^n.
Ma proposition est :
: Input N
: 3/4-13/4*(1/5)^N -> P
: While 3/4-P >= 10^-7
:N+1-> N
: End
: Disp "N=", N

Mais cela ne semble pas fonctionner.
Merci d'avance pour une éventuelle aide ou idée.

Posté par
taubertin
re : Algorithme 28-10-15 à 11:18

Bonjour,

Cela ne fonctionne pas car tu n'as pas donner de première valeur à N, alors ta machine ne peut commencer ! C'est un alto Scilab, TI ou Casio ?

Met une ligne N=0 déjà, sinon pour le reste je n'ai rien à redire à part qu'il te manque des parenthèse, je verrais plus quelque chose du genre :

(3/4)-(13/4)*((1/5)^{N}) -> P

et peut être qu'il faut marquer 10^(-7)...

Sinon tout devrait être bon !

Best Regards !

Posté par
Pommme
re : Algorithme 28-10-15 à 11:50

Bonjour et merci de votre réponse si rapide !
Ma calculatrice est une TI-82 stats.fr
J'ai initialisé à 0 et enlevé le Input du coup, l'algorithme tourne mais je ne suis pas sure que ça soit supposer être aussi long.
Ca n'en finit pas, je vais attendre mais je pense qu'il doit y avoir un soucis quelque part.
Ca me donne :
: 0-> N
: (3/4)-(13/4)*(1/5)^N)->P
: While (3/4)-P>= 10^(-7)
:N+1-> N
:End
isp "N=",N
Quand je mets voir le problème, ça se met sur le N après N+1-> N
Une idée du problème ?

Posté par
LeDino
re : Algorithme 28-10-15 à 11:58

Parenthèses mal placées dans le premier calcul de P
D'ailleurs il suffit de mettre la première valeur de P dans P (P0=-10/4).

Et surtout : P n'est pas recalculé dans la boucle : le programme ne risque pas de s'arrêter !!!

Posté par
Pommme
re : Algorithme 28-10-15 à 12:30

(3/4)-(13/4)*((1/5)^N) ?
Si je mets la première valeur de Po, je fais comment pour que le reste suive ?
Et je n'ai pas compris la dernière phrase.
Merci pour votre réponse.

Posté par
LeDino
re : Algorithme 28-10-15 à 12:34

Avant la boucle :  -10/4  -->  P
Dans la boucle :   (3/4)-(13/4)*((1/5)^N)  -->  P

Citation :
Et je n'ai pas compris la dernière phrase.
Tu as oublié de calculer Pn c'est aussi simple que ça.
Donc P reste bloqué sur la valeur initiale qui vaut -10/4 : la boucle durera éternellement...

Posté par
LeDino
re : Algorithme 28-10-15 à 12:36

Si tu veux voir comment évolue P, il suffit d'insérer un  Disp "P=", P  juste après le calcul de P dans la boucle.

Posté par
Pommme
re : Algorithme 28-10-15 à 12:42

Mais si je mets que P prend la valeur -10/4 et que juste après il prend la valeur (3/4)-(13/4)*((1/5)^N), l'un annule l'autre, ça n'a pas d'intérêt si ?

Posté par
LeDino
re : Algorithme 28-10-15 à 13:22

P = -10/4  est placé AVANT la boucle
P = P(n)   est placé DANS la boucle,  APRES l'instruction N=N+1

Donc la première valeur de P est P0
La valeur suivante est P1  (car N sera passé de 0 à 1)
Etc...

Posté par
Pommme
re : Algorithme 28-10-15 à 13:55

Ah, alors j'en ai refait un.
0->N
0,1 -> P
While (3/4)-P >= 10^-7
N+1-> N
(3/4)-(13/4)*((1/5)^N) -> P
End
Disp N
Et ça fonctionne, je trouve N=11.
Pour précision, 0,1 parce que je pars de P1.
Merci beaucoup !!

Posté par
LeDino
re : Algorithme 28-10-15 à 14:07



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