- Partage ce devoir avec tes amis !
Sujet du devoir
Bonjour,J 'ai un algorithme à déterminer d'après cette consigne:
On lance une balle d'une hauteur h(en cm). A chaque fois qu'elle touche le sol, elle rebondit de 1/4 de sa hauteur. On souhaite connaître le nombre n de rebonds effectués avant que la hauteur du rebond soit inférieur à 1mm.
Faire les calculs à la main si h=100cm.
Elaborer un algorithme qui donne ce nombre n.
Ecrire ce programme pour la calculatrice. Calculer n si h=20 mètre
Où j'en suis dans mon devoir
pour h=100cm j'ai 4 rebonds donc n=4100/4=25/4=6,25/4=1,5625/4=25/64=(environ 0,39cm)/4=environ 0,09cm soit 0,9mm.
C'est à l'algorithme que je bloque pour l'instant j'ai ça:
Prompt H,N
0->N 0->(aucun rebond au début du tour)
while h>0,001
h/4->h
n+1->n (le nb de rebond augmente à chaque tour)
End
Disp(afficher) N
On demande pour h=20m ce que j'ai fait mais la calculatrice m'affiche 8 alors que je suis certain que ça devrait être 7
J'ai calculé à la main pour h=20
20m/4=
5/4=
1,25/4=
312,5mm/4=
78,125/4=
19,53125/4=
4,8828125/4=
1,220703125/4=0,3 environ donc<1
J'ai bien 7 fois /4 avant que h<1mm
Aidez-moi SVP!
6 commentaires pour ce devoir
En fait il y a un rebond en plus pour vérifier la condition h<0,001m mais ça rend le problème assez contradictoire car si on calcule à la main on peut voir directement le nombre de rebonds alors que l'algorithme ajoute un tour pour vérifier la condition.
Je pense que dans mon cas je vais rajouter n-1 -> n car je crois que l'algorithme doit concorder avec les calculs manuels (dans la consigne "il donne ce nombre n" donc le même)
Mais pour h=20 je ne suis pas censé savoir le nombre de rebonds puisque l'algorithme est justement fait pour éviter de calculer manuellement suite à h=100cm...
Je pense que dans mon cas je vais rajouter n-1 -> n car je crois que l'algorithme doit concorder avec les calculs manuels (dans la consigne "il donne ce nombre n" donc le même)
Mais pour h=20 je ne suis pas censé savoir le nombre de rebonds puisque l'algorithme est justement fait pour éviter de calculer manuellement suite à h=100cm...
OK,
ajoute n-1->n avant le disp.
pour h=20, oui, on n'est pas censé savoir le resultat.
quand on ecrit un algorithme,on verifie avec une ou 2 valeurs, dont on connait le resultat attendu (ici, on le fait tourner avec h=1 m ) pour voir s'il fonctionne correctement.
Ensuite si c'est OK, on dit que l'algorithme fonctionnera toujours et donnera la bonne reponse ..
Bon courage !!
ajoute n-1->n avant le disp.
pour h=20, oui, on n'est pas censé savoir le resultat.
quand on ecrit un algorithme,on verifie avec une ou 2 valeurs, dont on connait le resultat attendu (ici, on le fait tourner avec h=1 m ) pour voir s'il fonctionne correctement.
Ensuite si c'est OK, on dit que l'algorithme fonctionnera toujours et donnera la bonne reponse ..
Bon courage !!
En fait il y a un rebond en plus pour vérifier la condition h<0,001m mais ça rend le problème assez contradictoire car si on calcule à la main on peut voir directement le nombre de rebonds alors que l'algorithme ajoute un tour pour vérifier la condition.
Je pense que dans mon cas je vais rajouter n-1 -> n car je crois que l'algorithme doit concorder avec les calculs manuels (dans la consigne "il donne ce nombre n" donc le même)
Mais pour h=20 je ne suis pas censé savoir le nombre de rebonds puisque l'algorithme est justement fait pour éviter de calculer manuellement suite à h=100cm...
Je pense que dans mon cas je vais rajouter n-1 -> n car je crois que l'algorithme doit concorder avec les calculs manuels (dans la consigne "il donne ce nombre n" donc le même)
Mais pour h=20 je ne suis pas censé savoir le nombre de rebonds puisque l'algorithme est justement fait pour éviter de calculer manuellement suite à h=100cm...
D'accord merci pour les réponses en tous cas!
je t'en prie,
à bientôt
à bientôt
Ils ont besoin d'aide !
- Aucun devoir trouvé, poste ton devoir maintenant.
ton algorithme est très bien. Pour repondre à ta question, effectivement, dans N, tu comptes un N de plus (tu comptes le 8ème rebond avant de voir si H est encore > 1mm).
Si tu essaies avec H=1m, tu auras N=5, de la même facon.
Pour corriger ca simplement, il suffit de rajouter
n-1 -> n
juste avant la commande disp.
Mais, je me pose la question : le "rebond", c'est le nombre de fois où la balle touche le sol..
donc, si h=100 cm, il y aura 4 hauteurs de rebonds, mais la balle touchera le sol 5 fois..
et si h=20m, il y aura 7 hauteurs de rebonds, mais la balle touchera le sol 8 fois (car la balle touche le sol une fois AVANT la premiere hauteu de rebond)..
donc, pour moi, tu ne dois rien changer à ton algorithme.
tu vois ?