Bonsoir tout le monde
J'ai un exercice à faire en DM portant sur un algorithme.
Je vous met l'algorithme en image.
Les questions sont les suivantes.
1) Faire tourner l'algorithme pour X=200
2) Que fait cet algorithme?
3) Inventer un énoncé qui est traduit par cet algorithme.
4) Ecrire un programme sur la calculatrice
5) Transformer cet algorithme pour qu'il affiche à chaque étape les valeurs de X et de R.
Tout d'abord, j'ai commencé par écrire le programme sur ma calculatrice pour répondre à la première question car je n'arrive pas à faire les calculs manuellement. En effet, je ne comprend pas la partie "Tant que X>1 , X -> X/5 , R -> R+1"
Voici donc mon programme sur ma calculatrice.
: Disp "VALEUR DE X?"
: Prompt X
: Disp X
: 0 -> X
: While X>1
: X/5 -> X
: R+1 -> R
: End
: Disp R
:
Pour X=200, j'ai donc trouvé grâce à ce programme R=4. Il a l'air alors de bien fonctionner.
Ensuite pour la question 2) et 3), je ne sais absolument pas quoi répondre. Je n'arrive pas du tout à comprendre à quoi sert cet algorithme.
Et pour la question 5), j'ai pensé à rajouté après la ligne "X -> X/5" cette ligne : "Disp X"
Voilà pour l'exercice, merci d'avance pour votre aide. Bonne soirée !
Bonjour,
tant que X>1 tu incrémentes R de 1 (ie. R devient R+1) et X est remplacé par X/5...
Je dirais que ça calcule un log tout ça ...
Ton algorithme compte le nombre de fois où aprés division par
est plus grand que
. Exemplle:
le programme tourne
et
donc
prend la valeur
et on continue:
et
prend la valeur
; et on continue:
donc
prend la valeur
et l'on continue:
et on s'arrête et on affiche
, ce qui signifie que
.
Donc cet algorithme te donne le plus grand entier tel que
.
3) trouver le plus grand entier tel que
4) c'est fait.
5) Après l'instruction , il faut rajouter
la pause permet d'avoir le temps de lire et
et dès que tu appuie sur Ent, le programme redémarre.
Ce type d'exercice va te permettre de savoir programmer ta TI; c'est donc un exercice très intelligent, même si le but est modeste,l' objectif est bien plus ambitieux!!
Excusez moi mais pour la question 3) , sachant que R=4 pour X=200, 5^4=625 n'est pas inférieur ou égal à X. Je ne comprends pas...
Pour; le programme effectue
et met
dans
, puis calcule 40/5=8 donc
prend la valeur
puis on arrive à
et
prend la valeur
, puis
donc le programme s'arrête et affiche
ce qui se traduit par
. Il n'y a aucun problème!!!
Sur une TI, le programme donne:
:prompt X
:0->R
:While X>1
:X/5->X
:R+1->R
:End
:disp R
quand le programme démarre X=? s'affiche, on rentre 200; comme 200>1, il met 200/5=40 dans la mémoire X et 0+1=1 dans la mémoire R, on a 40>1 donc il met 40/5=8 dans la mémoire X et 1+1=2 dans la mémoire R; comme 8>1, il met 8/5=1,6 dans la mémoire X et 2+1=3 dans la mémoire R; comme 1,6>1, il met 1,6/5=0,32 dans la mémoire X et 3+1=4 dans la mémoire R; comme 0,321, l'instruction While n'est pas exécutée et il passe à Disp R donc il affiche 4;
tu avais raison, j'avais oublié de compter la dernière division et cela veut dire que , par exemple,
on obtient
Ce programme peut être utilisée avec un autre entier que 5 et peut être intéressant si on travaille dans une autre base que la base 10.
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :