Boucles


Tables de multiplication

Connaissances supplémentaires requises : Chaînes de caractères

Écrire un programme qui permet d’écrire la table de 7 :
1 x 7 = 7
2 x 7 = 14
...
10 x 7 = 70
Écrire un programme qui permet d’écrire les tables de multiplication des nombres de 2 à 9 :
1 x 2 = 2
2 x 2 = 4
...
10 x 2 = 20

1 x 3 = 3
2 x 3 = 6
...
10 x 3 = 30

...
...
...

1 x 9 = 9
2 x 9 = 18
...
10 x 9 = 90

 

Correction
# Compléter les ...

# Table de 7
for ... in range(...):
   print(..., "x", ..., "=", ...)

# Tables de 2 à 9
for ... in range(...):
   for ... in range(...):

 


Suites et séries (simple)

Écrire un programme permettant de calculer le \(n^{ième}\) terme de la suite \((u_n)\) définie sur \(\mathbb{N}\) par \(u_{n}=\frac{3n-0,9^n}{n+1}\).

 

Écrire un programme permettant de calculer le \(n^{ième}\) terme de la suite \((u_n)\) définie sur \(\mathbb{N}\) par \(u_{n+1}=\frac{3}{u_n-2}\) et \(u_0=1\).

 

Écrire un programme qui calcule puis affiche le produit des nombres pairs compris entre 1 et n.

par exemple, pour n = 43, le programme doit afficher 107145471557284795514880000.

 

Correction

Le nombre de termes à calculer, et donc le nombre d’itération est connu d’avance ⇒ utiliser des boucles for ... in ....

L’élément \(u_n\) d’une suite est calculé en fonction d’un ou de plusieurs éléments précédents (\(u_{n-1}\), \(u_{n-2}\), …) : ⇒ il faut donc mémoriser les valeurs précédentes de \(u_n\) dans des variables, à partir du premier terme \(u_0\)

 


Suites et séries (complexe)

Fibonacci

Soit la suite des nombres entiers définie par :

\(\begin{cases}
u_0=0\\
u_1=1\\
u_n=n_{n-1}+u_{n-2}
\end{cases}\)
Écrire un fonction fibo(N) qui renvoie le \(N^{ième}\) terme de la suite de Fibonacci.

Nombre de chiffres

Écrire une fonction nbr_chiffres(n) qui renvoie le nombre de chiffres du nombre n.

 

Correction

 

 


Triangles

Écrire un programme qui affiche un triangle de taille n avec des étoiles.

Indication : on peut utiliser la multiplication d’un entier par une chaîne.

par exemple, pour n = 3, le programme devra afficher :

*
**
***

 

Correction

Écrire un programme qui affiche m triangles de taille n, les uns après les autres.

par exemple, pour m = 4 et n = 3, le programme devra afficher :

*
**
***
*
**
***
*
**
***
*
**
***

 

Correction


Sapin

Écrire une fonction sapin(hb, nb, dl) qui permet de  dessiner un sapin avec le caractère "*", tel que :
  • hb : hauteur des branches (en nombre de caractères)
  • nb : nombre de branches
  • dl : décalage entre branches (en nombre de caractères)

Par exemple : sapin(5, 4, 2)  doit renvoyer cette chaîne de caractères :

          *
         ***
        *****
       *******
      *********
        *****
       *******
      *********
     ***********
    *************
      *********
     ***********
    *************
   ***************
  *****************
    *************
   ***************
  *****************
 *******************
*********************

 

Correction
def sapin(hb, nb, dl):
    s = ""
    lb = 1+2*(hb-1)+(nb-1)*dl*2 # largeur de la base
    for b in range(nb):
        for h in range(hb):
            l = 1 + 2*h + b*dl*2
            s += " "*((lb-l)//2) + "*"*l+"\n"
    return s
Rajouter des boules (caractères "o") de manière aléatoire, dans le sapin, afin de le décorer pour Noël !

 


Damiers

Écrire un programme qui affiche un damier carré de taille n.

par exemple, pour n = 5, le programme devra afficher :

.#.#.
#.#.#
.#.#.
#.#.#
.#.#.

 

Correction

 

Écrire un programme qui affiche un damier carré de taille n avec des cases de taille c.

par exemple, pour n = 4 et c = 3, le programme devra afficher :

...###...###
...###...###
...###...###
###...###...
###...###...
###...###...
...###...###
...###...###
...###...###
###...###...
###...###...
###...###...

 

Correction


Mot de passe

Écrire des lignes de code qui interrompent l’exécution d’un programme tant que l’utilisateur n’a pas saisi le mot de passe attendu. (il faut bien sûr utiliser la fonction input())
Correction
MotDePasse = "Ne5t0r"
entree = '' # initialisation de l'entrée utilisateur à "vide"

while entree != MotDePasse:
   entree = input('Mot de passe :')

print("Accès autorisé !")

 


Objectif Lune

On envisage de créer une pile de feuille de papier suffisamment grande pour atteindre la Lune.

On dispose pour cela d’une feuille de papier au format A4, et d’une paire ce ciseaux. On coupe la feuille en deux, puis on empile les deux morceaux, ensuite on coupe la pile en deux puis on empile les deux tas,  on coupe ensuite cette nouvelle pile en deux pour en former une plus grande …

Sachant que la distance Terre-Lune est de 384 400 km et que la feuille de papier a une épaisseur de 0.1 mm, écrire un programme permettant de calculer :
  1. le nombre de fois où il faudra couper la pile en deux pour atteindre la Lune,
  2. la surface des petits bouts de feuille constituant la pile au final.

 


Terminaison

Pour certains de ces exercices, une question se pose : comment s’assurer qu’une boucle se termine assurément ?

Pour en savoir plus, voir l’article Terminaison.

Vous aimerez aussi...

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *