Feuille d’exercices 1#
Objectifs
se familiariser avec l’environnement de travail Jupyter et la syntaxe de python
effectuer des opérations élémentaires, sur des entiers et des valeurs logiques
manipuler des variables et les afficher
écrire des fonctions simples
Exercice 1 : opérations arithmétiques#
Question 1 : Donner les valeurs de sortie des calculs suivants :
le produit de \(12345\) par \(6789\)
le nombre rationnel \(\frac{2}{3}\)
le quotient et le reste de la division euclidienne de \(10^{10}\) par \(2023\)
Si besoin, on pourra créer une cellule pour chaque calcul (grâce au bouton + situé dans la barre d’outils).
12345 * 6789
83810205
2/3
0.6666666666666666
10**10 // 2023
4943153
10**10 % 2023
1481
Le langage python permet de manipuler des valeurs exactes (ex: des entiers) comme des valeurs « décimales approchées », dites flottantes. Pour convertir une valeur exacte en valeur flottante, on utiliser la commande float.
Question 2 : Stocker le nombre flottant associé à l’entier \(5\) dans une variable a. Puis, afficher a.
a = float(5)
print(a)
5.0
Exercice 2 : valeurs logiques et tests#
Question 1 : Afficher les quatre valeurs de la table de vérité de or.
print(True or True)
print(True or False)
print(False or True)
print(False or False)
True
True
True
False
Question 2 : Quel est le plus grand nombre entre
\(x = 2^{3^5} - (6 \times 5)^{7^2 - 1}\)
et
\(y = \frac{47^{44} - 1}{3} + 14^{63}\) ? On stockera ces deux entiers dans des variables x et y avant de les comparer.
x = 2**(3**5) - (6*5)**(7**2 - 1)
y = (47**44 - 1)//3 + 14**63
print(x >= y)
False
Exercice 3 : chaînes de caractères#
Question 1 : Écrire la concaténation des chaînes de caractères « Calcul » et « formel », en ajoutant un espace entre ces deux mots.
"Calcul" + " " + "formel"
'Calcul formel'
Question 2 : Écrire une fonction plus_longue(chaine1, chaine2) qui prend en entrée deux chaînes de caractères chaine1 et chaine2, et qui retourne la chaine la plus longue. Si les deux chaînes sont de même longueur, la fonction retournera chaine1.
def plus_longue(chaine1, chaine2):
if len(chaine1) >= len(chaine2):
return chaine1
else:
return chaine2
Question 3 : Tester la fonction plus_longue déclarée à la question précédente, avec les chaînes « informatique » et « calcul formel ».
plus_longue("informatique", "calcul formel")
'calcul formel'
Question 4 : Comment utiliser la fonction plus_longue pour trouver la plus longue chaîne de caractères parmi 3 ? Donner un exemple.
plus_longue(plus_longue("informatique", "ordinateur"), "calcul formel")
'calcul formel'
Exercice 4 : fonctions simples#
Question 1 : Écrire une fonction valeur_absolue(x), qui prend en entrée un nombre x, et qui retourne sa valeur absolue. Bien entendu, on n’utilisera pas la fonction native de python qui effectue ce calcul, mais on utilisera plutôt une structure conditionnelle if/else suivant le signe de x.
def valeur_absolue(x):
if x < 0:
return -x
else:
return x
Question 2 : Tester la fonction valeur_absolue avec deux exemples judicieux (c’est-à-dire, qui permettent de traiter les deux branches de la fonction).
print(valeur_absolue(2))
print(valeur_absolue(-2))
2
2
Remarque
Tester ses fonctions est primordial en informatique. Même si on ne vous le demande pas, entraînez-vous à le faire !
Question 3 : Écrire une fonction maximum(a, b, c) qui retourne la valeur maximale parmi \(a\), \(b\) et \(c\). N’oubliez pas de tester votre fonction !
def maximum(a, b, c):
t = a
if b > t:
t = b
if c > t:
t = c
return t
print(maximum(1, 4, 2))
print(maximum(-7, 0, 9))
print(maximum(12, 3, 2))
print(maximum(0, 0, 0))
4
9
12
0
Question 4 : Écrire une fonction nombre_de_racines(a, b, c) qui retourne le nombre de racines réelles distinctes du polynôme à coefficients réels \(a X^2 + b X + c\).
def nombre_de_racines(a, b, c):
delta = b**2 - 4*a*c
if delta > 0:
return 2
elif delta == 0:
return 1
else:
return 0
print("Nombre de racines de x^2 - 2x + 1 :", nombre_de_racines(1, -2, 1))
print("Nombre de racines de 3x^2 + 1 :", nombre_de_racines(3, 0, 1))
print("Nombre de racines de -x^2 + 6x - 2 :", nombre_de_racines(-1, 6, -2))
Nombre de racines de x^2 - 2x + 1 : 1
Nombre de racines de 3x^2 + 1 : 0
Nombre de racines de -x^2 + 6x - 2 : 2
Exercice 5 : fonctions logiques#
On rappelle que l’expression \(A \implies B\) a la valeur logique de \(B\) si \(A\) est vraie, et est vraie si \(A\) est fausse.
Question 1 : Écrire une fonction implique(A, B) qui prend en entrée deux valeurs logiques \(A\) et \(B\), et qui retourne la valeur logique de \(A \implies B\).
def implique(A, B):
if A:
return B
else:
return True
Question 2 : En appelant deux fois la fonction implique, écrire une fonction equivalent(A, B) qui prend en entrée deux valeurs logiques \(A\) et \(B\), et qui retourne la valeur logique de \(A \iff B\).
def equivalent(A, B):
return implique(A, B) and implique(B, A)
Question 3 : Vérifier, pour les \(4\) valeurs possibles de \(A\) et \(B\), que
A, B = True, True
print(equivalent(implique(A, B), not(A) or B))
A, B = True, False
print(equivalent(implique(A, B), not(A) or B))
A, B = False, True
print(equivalent(implique(A, B), not(A) or B))
A, B = False, False
print(equivalent(implique(A, B), not(A) or B))
True
True
True
True
Question 4 : Vérifier, pour les \(8\) valeurs possibles de \(A\), \(B\) et \(C\), que
A, B, C = True, True, True
print(implique(implique(A, B) and implique(B, C), implique(A, C)))
A, B, C = True, True, False
print(implique(implique(A, B) and implique(B, C), implique(A, C)))
A, B, C = True, False, True
print(implique(implique(A, B) and implique(B, C), implique(A, C)))
A, B, C = True, False, False
print(implique(implique(A, B) and implique(B, C), implique(A, C)))
A, B, C = False, True, True
print(implique(implique(A, B) and implique(B, C), implique(A, C)))
A, B, C = False, True, False
print(implique(implique(A, B) and implique(B, C), implique(A, C)))
A, B, C = False, False, True
print(implique(implique(A, B) and implique(B, C), implique(A, C)))
A, B, C = False, False, False
print(implique(implique(A, B) and implique(B, C), implique(A, C)))
True
True
True
True
True
True
True
True