Bonjour,
j'ai réalisé ce petit algorithme suite à une question d'un exercice qui était de réaliser un algorithme pour trouver
le plus petit entier n tel que Vn>0,999.
Sachant que la suite Vn est définie par vn=1-0,6^n
Voici l'algorithme :
VARIABLES
n EST_DU_TYPE NOMBRE
DEBUT_ALGORITHME
n PREND_LA_VALEUR 1
TANT_QUE ( 0,6^n<0,001) Faire
DEBUT_TANT_QUE
n PRENDS_LA_VALEUR n+1
FIN TANT QUE
AFFICHEZ N
FIN_ALGORITHME
Après avoir tester cet algorithme, on m'affiche le message d'erreur suivant :
" Algorithme interrompu ligne n°8, dépassement de la capacité
autorisée pour les boucles."
Je vous remercie de m'éclairer sur ce point.
Bonjour,
vn > 0,999 signifie que 0,6n < 0,001
La condition après le tant que est le " contraire " de 0,6n < 0,001.
Ce qui n'explique pas vraiment l'erreur.
On ne devrait jamais rentrer dans la boucle, donc pas dépasser la capacité...
A naizuki
Effectivement, la condition ne devrait pas être remplie et le résultat affiché devrait être 1.
Si l'algorithme a été testé sur Algobox, il y a des erreurs de syntaxe.
Par exemple : 0,6 ^ n doit être écrit pow(0.6,n)
Il me semblait plus intéressant de pointer l'erreur de raisonnement
Je viens de tester avec Algobox.
Mettre une virgule au lieu d'un point donne un dépassement de boucle !
Mettre un point donne n = 1 !
De toute façon , Algobox ne reconnaît pas 0.6^n.
(Désolé, changement de compte)
Je vous remercie pour vos réponses, mon erreur venait simplement du fait que j'avais mis une "," au lieu d'un "."
De plus, j'ai dans mon intitulé fait une faute de frappe entre le "<" et le ">".
Ce n'etait pas une erreur de raisonnement.
Ainsi, en réalisant le bon algorithme pour répondre à la question de l'exercice, je trouve 14.
Merci encore
Cela ressemble à de l'algobox.
Si oui, alors, il y a une multitude d'erreurs.
Algobox ne comprend pas la notation "0,6" comme nombre.
Il faut mettre un point décimal et pas une virgule --> 0.6 et pas 0,6
Algobox ne comprend pas la notation "^" pour une puissance, il faut utiliser la fonction pow()
Donc, ton 0,6^n doit devenir pow(0.6,n)
La condition du Tant_QUE que tu as écrite (avec les erreurs de pow corrigée), fait sortir de la boucle immédiatement ...
Il faut presque sûrement remplacer ton signe < par le signe >
PRENDS_LA_VALEUR n'est pas une instruction algobox, il faut le remplacer par PREND_LA_VALEUR
FIN TANT QUE n'est pas une instruction algobox, il faut le remplacer par FIN_TANT_QUE
AFFICHEZ n'est pas une instruction algobox, il faut le remplacer par AFFICHER
La variable N (dans l'AFFICHER) n'est pas déclarée, il faut la remplacer par n
-----
Tout cela corrigé devient ceci :
VARIABLES
n EST_DU_TYPE NOMBRE
DEBUT_ALGORITHME
n PREND_LA_VALEUR 1
TANT_QUE ( pow(0.6,n) > 0.001) Faire
DEBUT_TANT_QUE
n PREND_LA_VALEUR n+1
FIN_TANT_QUE
AFFICHER n
FIN_ALGORITHME
... qui tourne et affiche 14 au final.
-----
Sauf distraction.
Oui, mais ici dans l'algo c'est bien > qu'il faut mettre et pas >= (même si cela ne changera pas le résultat).
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :