La balle de tennis
À cause de l'amortissement, une balle de tennis lâchée d'une certaine hauteur ne rebondit qu'aux deux tiers de cette hauteur après avoir touché le sol. Ainsi lorsqu'on lâche une balle de tennis d'une hauteur de 90cm, elle remonte au premier rebond de soit 60cm. Au deuxième rebond elle remonte de soit 40cm.
Combien la balle fait-elle de rebonds si l'on ne compte pas les rebonds de 1cm ou moins ?
Observe la fonction rebonds
de l'éditeur. Elle prend en argument la hauteur
initiale h
en cm. La variable r
correspond au nombre de rebonds qui
est initialement nul. Tant que la hauteur est supérieure à 1cm, la balle rebondit, donc
r
est incrémenté de 1 et la nouvelle hauteur à laquelle rebondit la balle correspond
aux deux tiers de la hauteur précédente.
- 1
Exécute le code et appelle la fonction
rebonds
dans la console pour savoir combien de rebonds fait une balle de tennis lâchée d'une hauteur de 1m. On ne compte pas les rebonds de moins de 1cm.Solution
La fonction
rebonds
prend en argument la hauteur en cm. Donc il faut appelerrebonds(100)
pour une hauteur de 1m.>>> rebonds(100) 12
- 2
Une balle en caoutchouc a un meilleur rebond qu'une balle de tennis : elle rebondit aux quatre cinquièmes de la hauteur précédente. Et comme ces balles sont plus petites, on distingue mieux les petits rebonds.
Modifie la fonction
rebonds
pour l'adapter aux balles en caoutchouc. On ne compte pas les rebonds de moins de 5mm.Solution
Il y a deux modifications à faire :
D'une part il faut changer la manière dont
h
est réassignée puisque la balle rebondit aux quatre cinquièmes de sa hauteur précédente. Donch = h * 4 / 5
D'autre part puisqu'on distingue les rebonds supérieurs à 5mm et que la variable
h
est en centimètres, la condition d'arrêt devienth > 0.5
ainsi la boucle s'arrête dès que la hauteur est inférieure ou égale à 5mm.def rebonds(h): r = 0 while h > 0.5: r = r + 1 h = h * 4 / 5 return r
- 3
Combien de rebonds fait une balle en caoutchouc lâchée d'une hauteur de 1m ? Appelle ta fonction
rebonds
dans la console pour le savoir. On ne compte pas les rebonds moins de 5mm.Solution
>>> rebonds(100) 12