- Partage ce devoir avec tes amis !
Sujet du devoir
Bonjour :)
Voici un exercice avec un algorithme que je n'arrive pas à comprendre :
Soit (un) la suite définie par u_0=6 et u_n+1=(3u_n+2)/(u_n+4) pour n>=0.
On dispose de l'algorithme ci-contre*.
a. Que fait l'algorithme ci-contre ? Autrement dit, que représente le nombre obtenu en sortie ? Pourquoi peut-on affirmer que la boucle "tant que" ne tourne pas indéfiniment ?
b. A l'aide de la calculatrice, déterminer le nombre renvoyé par l'algorithme.
* N <-- 0
U <-- 6
Tant que |U-1|>(ou égal) 0.001 faire
U<--(3U+2)/(U+4)
N<--N+1
Fin tant que
Afficher N
Où j'en suis dans mon devoir
a. J'ai mis que la boucle tant que ne tournait pas indéfiniment puisqu'elle ne tourne que tant que la valeur absolue de (U-1) est supérieure ou égale à 0.001. Si cette valeur absolue devient inférieure, alors la boucle cesse de tourner.
b. Je n'arrive pas à la mettre dans ma casio, j'ai apparemment une erreur de syntaxe :
0 --> N
6 --> U
While Abs U-1 (inférieur ou égal) 0.001 Do
(3U+2)/(U+4) -->U
N+1-->N
WhileEnd
N
Merci pour votre aide :)
4 commentaires pour ce devoir
0--->N
6--->U
While U<= 0.001
(3*U+2)/(U+4)---> U
N+1--->N
END
Disp N = 0
Ils ont besoin d'aide !
- Aucun devoir trouvé, poste ton devoir maintenant.
L'algorithme calcule le nombre d’itérations nécessaires pour que la distance de la suite avec la droite y=1 soit inférieur à 10^-3 (0.001). Qu'est ce qui bloque au niveau de la syntaxe ?
Ce qui permettrait d'assurer que la boucle ne tourne pas indéfiniment, c'est surement de prouver que la suite tend vers 1, de façon à ce qu'elle passe à un moment sous la distance de 0.001.
Bonjour :)
Merci pour ta réponse sur sur la définition de l'algorithme. Pour ce qui est du blocage syntaxe, je n'arrive pas à trouver le problème, j'ai essayé sur algobox et ça ne marche pas non plus. Peut-être est-ce à cause des flèches qui, dans l'énoncé sont du type <-- et non --> ?
Merci à toi.
Il y a une erreur dans ton algorithme, car tu fais la condition "Tant que" Abs(U-1) <= 0.001 Do [...] End
Or dès la première itération U = 6 donc U -1 n'est pas inférieur à 0.001 et on sort de l'algorithme.
L'algo doit continuer tant que la valeur absolue U-1 est strictement supérieure à 0.001.
Sur algobox le résultat remonté est N = 9.
algo testé :
FONCTIONS_UTILISEES
VARIABLES
N EST_DU_TYPE NOMBRE
U EST_DU_TYPE NOMBRE
DEBUT_ALGORITHME
N PREND_LA_VALEUR 0
U PREND_LA_VALEUR 6
TANT_QUE (abs(U-1) > 0.001) FAIRE
DEBUT_TANT_QUE
U PREND_LA_VALEUR (3*U+2)/(U+4)
N PREND_LA_VALEUR N+1
FIN_TANT_QUE
AFFICHER* N
FIN_ALGORITHME