Besoin d'aide pour un algorithme

Publié le 13 mars 2013 il y a 11A par Anonyme - Fin › 20 mars 2013 dans 11A
5

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=4
100/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


Anonyme
Posté le 13 mars 2013
bonjour,
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 ?
Anonyme
Posté le 13 mars 2013
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...
Anonyme
Posté le 13 mars 2013
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 !!
Anonyme
Posté le 13 mars 2013
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...
Anonyme
Posté le 13 mars 2013
D'accord merci pour les réponses en tous cas!
Anonyme
Posté le 13 mars 2013
je t'en prie,
à bientôt

Ils ont besoin d'aide !

Il faut être inscrit pour aider

Crée un compte gratuit pour aider

Je m'inscrisOU

J'ai déjà un compte

Je me connecte