Boucles #
On l’a vu mais rappelons :
-
Une boucle permet de répéter plusieurs fois les mêmes instructions.
-
Il existe deux manières d’écrire des boucles en Python :
-
bornées :
for i in range(4): print("j'ai ", i, " tomates")
Qui affiche :
j'ai 0 tomate j'ai 1 tomate j'ai 2 tomate j'ai 3 tomate
i
a pris pour valeur successives0, 1, 2, 3
-
non bornées
s = 0 while s < 100: s = s + 30
Cette boucle tourne jusqu’à ce que la condition
s < 100
ne soit plus vérifiée. Ainsi,s
prend pour valeurs successives :30, 60, 90, 120
et la boucle s’arrête. À la fin,s
vaut 120.
-
Réponses #
Éditeur #
On travaillera dans l’éditeur de code thonny
(dossier Informatique
sur le bureau de votre
poste) ou sur la calculatrice si vous n’avez pas d’ordinateur ou dans bashton
(chercher basthon
dans google).
Réponse #
Créer un fichier par exercice en le nommant correctement : exo_1.py
, par exemple
Joindre vos réponse et faire rendre le travail
quand vous avez terminé.
Exercices #
Exo 1 #
Faire tourner sur feuille la boucle suivante :
p = 1
i = 1
while p < 10:
p = p * i
i = i + 1
Indiquer les valeurs de i
et de p
après chaque tour.
Ensuite programmer et vérifier.
Que fait ce programme ?
Exo 2 #
-
a) Écrire le code de la fonction répète qui affiche N fois la chaîne de caractères mot. b) Écrire le code d’une instruction utilisant cette fonction pour afficher 10 fois le mot « Bravo ! ».
-
a) Écrire le code de la fonction afficheTriangle qui affiche la lettre a une fois sur la première ligne, deux fois sur la deuxième et ainsi de suite jusqu’à la N-ième ligne. b) Écrire le code d’une instruction utilisant cette fonction pour afficher un triangle de 4 lignes avec la lettre « x ».
-
Si c est une chaîne de caractères, on note
len(c)
le nombre de caractères qu’elle contient (sa longueur, length en anglais) et chaque caractère est numéroté à partir de 0 par un indicei
: on les notec[0], c[1], ... , c[len(c)-1]
.a) Écrire l’instruction qui permet d’afficher la troisième lettre de la chaîne de caractères mot. b) Écrire le code de la fonction compte qui renvoie le nombre de caractères
a
contenus dans la chaîne de caractèresmot
. c) Écrire le code d’une instruction utilisant cette fonction pour afficher le nombre de “a” contenus dans la phrase “Gare et rage sont deux anagrammes : ne pas confondre avec garage.”. d) Même consigne pour afficher le nombre de 1 contenus dans l’écriture décimale de l’entier123456789*987654321
. Donner ce nombre.
Exo 3 #
a) Écrire le code de la fonction alea2
qui renvoie deux entiers aléatoires compris entre 1 et 20
inclus.
b) Écrire le code de la fonction alea2_distincts
qui renvoie deux entiers aléatoires différents
compris entre 1 et 20 inclus.
c) Écrire le code de la fonction temps_pour_paire
qui renvoie le nombre d’essais nécessaires pour
obtenir deux entiers aléatoires successifs compris entre 1 et 20 inclus avec la fonction alea2.
d) Écrire le code de la fonction moyenne_tpp
qui renvoie la moyenne des
nombres d’essais nécessaires pour obtenir deux entiers aléatoires successifs compris entre 1 et 20
inclus sur N expériences (c’est-à-dire si on exécute N fois la fonction temps_pour_paire).
e) Écrire le code d’une instruction pour afficher le résultat avec N=20000. Donner ce résultat.
Exo 4 #
Écrire le code de la fonction pgmi
qui renvoie le plus grand multiple de a
inférieur ou égal à b
à
l’aide d’une boucle.
Exo 5 #
- a) Écrire le code de la fonction
nbre_diviseurs
qui renvoie le nombre de diviseurs entiers naturels d’un entier naturel non nuln
. b) Écrire le code d’une instruction pour afficher le nombre de diviseurs de 24680. Donner ce nombre. - Écrire le code de la fonction
est_premier
qui renvoieTrue
siN
est premier etFalse
sinon. - Écrire le code de la fonction
premier_supérieur
qui renvoie le plus petit entier naturel premier supérieur ou égal à un entier non nul N. - a) Écrire le code de la fonction comptePremier qui renvoie le nombre d’entiers premiers compris entre deux entiers a et b inclus. b) Écrire le code d’une instruction pour afficher le nombre d’entiers premiers compris entre 2 et 1000 inclus. Donner ce nombre.
Exo 6 #
-
On appelle carré tout entier naturel $n$ qui peut s’écrire $n = a^2$ où $a$ est un entier naturel. a) Écrire le code de la fonction compteCarrés qui renvoie le nombre de carrés compris entre deux entiers naturels a et b inclus sans utiliser la fonction sqrt. b) Soit un réel. On appelle partie entière de $x$ et on note le plus grand entier inférieur ou égal à ;
il est codé `floor(x)`. On appelle _valeur entière_ par excès de $x$ et on note $\lceil x\rceil$ le plus petit entier supérieur ou égal à $x$; il est codé `ceil(x)`. Remarque. Il faut importer la bibliothèque `math` pour utiliser ces deux fonctions (`from math import *`). Démontrer que si $x$ et $y$ sont deux réels $x \leq y$ tels que alors le nombre d’entiers $n$ compris entre $x$ et $y$ est $\lceil y\rceil - \lceil x \rceil + 1$.
c) Écrire le code de la fonction compte_carres qui renvoie le nombre de carrés compris entre deux entiers naturels a et b inclus en utilisant les fonctions précédentes.
-
On appelle somme de deux carrés tout entier naturel qui peut s’écrire $n=p^2+q^2$
où $p$ et $q$ sont deux entiers naturels. a) Démontrer que si est une somme de deux carrés alors il peut s’écrire $n=p^2+q^2$ avec $0 \leq p \leq \sqrt{\frac{n}{2}} \leq q \leq \sqrt{n}$ b) Écrire le code de la fonction
somme_carres
qui renvoie deux nombres et dont la somme des carrés est égale à un entier $N$ s’il est une somme de deux carrés et(-1, -1)
sinon.