Informatique et sciences du numérique spécialité isn en terminale s version python

Page 51

2 – Les boucles

La boucle while On veut écrire un programme qui prend en argument un nombre à virgule rieur ou égal à 1 et qui calcule son logarithme entier.

x

supé-

T Logarithme entier

On appelle logarithme entier elog(x) d’un nombre réel x supérieur ou égal à 1, le nombre de fois qu’il faut le diviser par deux pour obtenir un nombre inférieur ou égal à 1. Par exemple, le logarithme entier du nombre 60 000 est 16 car 60 000 / 216, c’est-à-dire 60 000 divisé par 2 seize fois est égal à 0.915…

Ce programme est formé d’une boucle qui divise x par 2 plusieurs fois, jusqu’à obtenir un nombre inférieur ou égal à 1, tout en ajoutant 1 à un nombre n à chaque division, pour les compter. Quand la boucle est terminée, la variable n contient le nombre recherché. La nouveauté, avec cette boucle, est que, tant que l’exécution du calcul n’est pas achevée, il n’y a aucun moyen de savoir combien de fois le corps de cette boucle sera répété, puisque ce nombre est précisément le nombre que l’on cherche à calculer : le logarithme entier de x. Il est donc difficile d’écrire ce programme avec une boucle for. C’est pour cela que l’on a introduit, dans les langages de programmation, une autre forme de boucle : la boucle while. Dans une telle boucle, le choix de continuer ou non à répéter le corps de la boucle n’est pas conditionné, comme dans le cas d’une boucle for, par un nombre d’itérations fixé avant le début de l’exécution de la boucle, mais il est fait dynamiquement : avant chaque exécution du corps de la boucle, on teste une condition, si cette condition est vérifiée, on exécute le corps de la boucle et on recommence, si elle ne l’est pas, l’exécution de la boucle est achevée. Une boucle while est une instruction de la forme while e: p

où e est une expression et p est une instruction, appelée corps de cette boucle. Exécuter la boucle précédente a pour effet d’exécuter l’instruction p plusieurs fois tant que la valeur de l’expression e est égale à True. Ainsi, on peut programmer le calcul du logarithme entier d’un nombre x de la manière suivante : n = 0 while x > 1.0: x = x / 2.0 n = n + 1

© Groupe Eyrolles, 2013

37


Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.