BCPST1
Feuille d’exercices
2021-2022Lycée Henri-IV
Syntaxe du langage Python
MathématiquesI Bases de Python
Exercice 1
On suppose que l’on dispose de deux variablesaet bcontenant chacune un nombre différent.
1. Proposer une succession de commandes permettant d’échanger les valeurs deaet b(il faut bien sur que ces commandes fonctionnent quelles que soient les valeurs initiales des deux variables !).
Indication :il peut être utile d’introduire une troisième variablec...
2. Plus dur : résoudre le même problème, mais en s’interdisant cette fois d’utiliser une autre variable queaoub.
Exercice 2
1. Écrire une fonction discriminant prenant en paramètres trois réels a, b, c et retournant la valeur du discriminant du polynômeaX2+bX+c.
2. Écrire une fonctionracinesqui, lorsqu’on l’applique à trois réels a, b, cvérifiant b2−4ac > 0, retourne les deux solutions de l’équation polynomiale du second degréax2+bx+c= 0.
On ne cherchera pas à traiter les cas où le discriminant est négatif ou nul.
Afin de pouvoir utiliser la fonction "racine carrée" (sqrten Python), taper dans la console "from math import sqrt".
II Structures de contrôle
II.1 Structure conditionnelle : if, elif, else
Exercice 3
Reprendre la fonction racines créée dans l’exercice I, et l’améliorer afin qu’elle prenne en compte aussi le cas ou toutes les valeurs possibles du discriminant.
Exercice 4
Expliquer ce que font les programmes suivants. Sont-ils équivalents ?
Programme 1 : if b < 0 :
print ("vivent les maths") elif b < 1 :
print("vive la bio")
Programme 2 : if b < 1 :
print("vive la bio") elif b < 0 :
print ("vivent les maths")
Exercice 5
Faire un programme qui indique si un nombre entier aest divisible par un nombre entierb.
Exercice 6
1. Dans la console, taper :effe(0). Que se passe-t-il ? Qu’en déduire ?
2. Faire (dans un fichier) une fonction (Python) qu’on nommeraeffe(x)qui calcule le résultat de la fonction (mathématique) suivante :
x7−→
x2 si x <0 2x+ 1 si x∈[0,1]
5x−1 si x∈]1,5[
√x si x>5
3. Exécuter le fichier (et corriger les fautes de syntaxe éventuelles !) puis tester cette fonction dans la console
II.2 Structure itérative : boucle for
Exercice 7
1. Écrire un programme qui affiche 1000 fois le mot « Supercalifragilisticexpialido- cious ».
2. Écrire un programme qui affiche les carrés des entiers de 1 à 20.
3. Écrire un fonction prenant en entrée deux entiers pet n, et affichant les carrés des entiers depàn.
4. Écrire un programme qui affiche les carrés des entiers de 1 à 20, mais en en sautant un sur deux.
Feuille d’exercices : Informatique – Syntaxe du langage Python Exercice 8
Que fait le programme suivant : a = 1
for k in range(10) : a=a*(k+1)
print(a)
Exercice 9
On considère la suite définie par récurrence de la manière suivante :
u0= 2 et∀n∈N, un+1=1 2un+ 2.
1. A l’aide d’une boucle FOR, faire une fonctionmaSuite(n)qui prend un entiern et qui renvoie la valeur deun.
2. Écrire un script qui utilise la fonction précédente pour afficher tous les termes uk pourk∈[[n , p]],net pétant donnés.
II.3 Structure itérative : boucle while
Exercice 10
On considère à nouveau la suite définie dans l’exercice9: u0= 2 et∀n∈N, un+1=1
2un+ 2.
1. Écrire un programme qui détermine le rang du premier terme de la suite à dé- passer 3,99 (en d’autres termes, qui affiche le premier entierN tel queuN >3,99).
2. Écrire une fonction prenant en entrée un réelε >0, et renvoie le premier entier N tel que −ε < uN −4< ε.
Exercice 11
Que font les programmes suivants : 1.
b = 0
while (b <= 10) : print(b) b = b + 1
2.
b = 0
while (b <= 10) : b = b + 1 print(b)
Exercice 12
Que fait le programme suivant ?
b = 0
while (b <= 10) : print(b)
Exercice 13
On considère la suite (un)n∈Ndéfinie par :
∀n∈N, un= n2+ 1 n+ 3.
1. Écrire un programme qui détermine le rang du premier terme de la suite dépas- sant 1000.
2. Écrire une fonction prenant en entrée un réelAet déterminant le premier entier N tel que uN > A.
Exercice 14
L’algorithme de Syracuse consiste à associer à un nombre entiern:
• n/2 si n est pair
• 3n+ 1 si n est impair.
On conjecture (on ne sait toujours pas si c’est vrai) que quel que soit l’entier n considéré, si on applique répétitivement l’algorithme de Syracuse, on finit toujours par arriver à un moment sur la valeur 1. C’est en tout cas vrai pour tous les entiers avec lesquels l’algorithme a été testé.
1. Écrire une fonction syracuse(n)qui prend en entrée un entiern, et qui effectue l’algorithme de Syracuse répétitivement jusqu’à obtenir 1, affichant tous les nombres obtenus jusqu’au premier 1 et renvoyant le nombre d’itérations effectuées jusqu’à l’obtention du premier 1.
2. Le tester sur différentes valeurs (par exemple sur 7 et 27).