UNIVERSITÉ CHOUAÏB DOUKKALI
FACULTÉ DES SCIENCES
EL JADIDA
RAPPORT DE TRAVAUX PRATIQUES
MODULE
Programmation Python & C++
FILIÈRE
Master : Parcours d'Excellence
Electronique Embarquée et Informatique Industrielle
(2E2I)
RÉALISÉ PAR ENCADRÉ PAR
• Oumma Ayoub • Pr. Khalide El-khadiri
Année Universitaire 2025/2026
Année Universitaire 2025/202
Année Universitaire 2025/2026
TP — Programmation Python & C++ Master 2E2I | 2025/2026
Table des Matières
Introduction .................................................................................................................. 3
Exercices et Corrections................................................................................................. 4
Exercice 1 — Analyse de codes ............................................................................... 4
Exercice 2 — Calcul de sommes.............................................................................. 6
Exercice 3 — Factorielle......................................................................................... 7
Exercice 4 — Diviseurs d'un entier .......................................................................... 7
Exercice 5 — Nombre premier ................................................................................ 8
Exercice 6 — Nombre parfait .................................................................................. 9
Exercice 7 — Table de multiplication ...................................................................... 9
Exercice 8 — Triangle d'étoiles ............................................................................. 10
2
TP — Programmation Python & C++ Master 2E2I | 2025/2026
Introduction
Ce document présente un rapport des travaux pratiques réalisés dans le cadre du module
Programmation Python & C++, sous la supervision du professeur Khalide El-khadiri. Ces
exercices portent sur les structures répétitives et en particulier la boucle for en Python.
3
TP — Programmation Python & C++ Master 2E2I | 2025/2026
Exercices et Corrections
Exercice 1 — Analyse de codes
Quels résultats donnent les codes suivants ?
1. Code 1 :
for n in range(5):
print(n)
2. Code 2 :
for n in range(2, 8, 2):
print(n)
3. Code 3 :
for n in range(10):
if n % 4 == 0:
print(n)
4. Code 4 :
for n in range(10):
if n % 4 == 0:
print(n)
elif n % 2 == 0:
print(2 * n)
5. Code 5 :
for n in range(10):
if n % 2 == 0:
print(2 * n)
elif n % 4 == 0:
print(n)
4
TP — Programmation Python & C++ Master 2E2I | 2025/2026
✓ Correction
1. range(5) génère 0, 1, 2, 3, 4. Sortie : 0 1 2 3 4
2. range(2, 8, 2) : début 2, fin 8 (exclu), pas +2. Sortie : 2 4 6
3. Affiche n uniquement si n % 4 == 0. Sortie : 0 4 8
4. La condition if n%4==0 prime sur elif n%2==0.
0 <- n=0 (0%4==0)
4 <- n=2 (2%4!=0, 2%2==0 -> 2*2)
4 <- n=4 (4%4==0)
12 <- n=6 (6%4!=0, 6%2==0 -> 2*6)
8 <- n=8 (8%4==0)
5. n%2==0 est testé en premier. Tout multiple de 4 étant aussi multiple de 2, le elif
n%4==0 n'est jamais atteint.
0 <- n=0
4 <- n=2
8 <- n=4
12 <- n=6
16 <- n=8
5
TP — Programmation Python & C++ Master 2E2I | 2025/2026
Exercice 2 — Calcul de sommes
À l'aide de boucles for, calculer les sommes suivantes :
6. Σ i (i=0 à 100)
7. Σ i² (i=1 à 20)
8. Σ 2˖i (i=1 à 10)
✓ Correction
1. Σi de 0 à 100 = 100×101/2 = 5050
somme = 0
for i in range(101): # 0, 1, ..., 100
somme += i
print("Somme =", somme) # 5050
2. Σi² de 1 à 20 = 20×21×41/6 = 2870
somme = 0
for i in range(1, 21): # 1, 2, ..., 20
somme += i ** 2
print("Somme =", somme) # 2870
3. Σ 2ˡ de 1 à 10 = 2+4+...+1024 = 2046
somme = 0
for i in range(1, 11): # 1, 2, ..., 10
somme += 2 ** i
print("Somme =", somme) # 2046
6
TP — Programmation Python & C++ Master 2E2I | 2025/2026
Exercice 3 — Factorielle
Calculer la factorielle N! d'un entier naturel N :
N! = 1 × 2 × 3 × ... × (N-1) × N, avec la convention 0! = 1
✓ Correction
On initialise le produit à 1 (cas 0! = 1 automatiquement géré), puis on multiplie par 1, 2, …,
N.
N = int(input("Entrez un entier N >= 0 : "))
factorielle = 1
for i in range(1, N + 1): # 1, 2, ..., N
factorielle *= i
print(N, "! =", factorielle)
Exemple : Pour N=5 : 5! = 1×2×3×4×5 = 120
Exercice 4 — Diviseurs d'un entier
Écrire un programme qui demande à l'utilisateur de saisir un nombre, puis affiche tous ses
diviseurs stricts supérieurs à 1 (1 n'est pas inclus).
✓ Correction
On parcourt tous les entiers d de 2 à n (inclus). Si n % d == 0, alors d est un diviseur de n.
n = int(input("Entrez un entier : "))
print("Diviseurs stricts de", n, "(> 1) :")
for d in range(2, n + 1):
if n % d == 0:
print(d)
Exemple : Pour n=12 : diviseurs = 2, 3, 4, 6, 12
7
TP — Programmation Python & C++ Master 2E2I | 2025/2026
Exercice 5 — Nombre premier
Écrire un programme qui détermine si un entier strictement positif est premier ou non.
Rappel : Un nombre premier admet exactement deux diviseurs distincts positifs (1 et lui-
même).
Nombres premiers < 50 : 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47
✓ Correction
Un entier n > 1 est premier s'il n'admet aucun diviseur entre 2 et √n. On utilise un booléen
mis à False dès qu'un diviseur est trouvé.
import math
n = int(input("Entrez un entier strictement positif : "))
if n <= 1:
print(n, "n'est pas premier.")
else:
est_premier = True
for d in range(2, int([Link](n)) + 1):
if n % d == 0:
est_premier = False
break # inutile de continuer
if est_premier:
print(n, "est un nombre premier.")
else:
print(n, "n'est pas un nombre premier.")
Exemples : 7 → premier ; 12 → non premier (divisible par 2, 3, 4, 6)
8
TP — Programmation Python & C++ Master 2E2I | 2025/2026
Exercice 6 — Nombre parfait
Un nombre est parfait s'il est égal à la somme de ses diviseurs stricts (différents de lui-
même).
Exemple : 6 est parfait car 6 = 1 + 2 + 3.
✓ Correction
On additionne tous les diviseurs de 1 à n-1 et on compare la somme à n.
n = int(input("Entrez un entier naturel : "))
somme_div = 0
for d in range(1, n): # diviseurs stricts : 1 a n-1
if n % d == 0:
somme_div += d
if somme_div == n:
print(n, "est un nombre parfait.")
else:
print(n, "n'est pas un nombre parfait.")
Nombres parfaits : 6 = 1+2+3, 28 = 1+2+4+7+14, 496, 8128
Exercice 7 — Table de multiplication
Afficher la table de multiplication d'un nombre saisi par l'utilisateur, avec l'affichage suivant :
print(a, "x", b, "=", a * b)
✓ Correction
On fait varier b de 1 à 10 et on affiche le produit a × b.
a = int(input("Entrez un nombre : "))
print("Table de multiplication de", a, ":")
for b in range(1, 11): # b de 1 a 10
print(a, "x", b, "=", a * b)
Exemple : Pour a=3 : 3 x 1 = 3, 3 x 2 = 6, ..., 3 x 10 = 30
9
TP — Programmation Python & C++ Master 2E2I | 2025/2026
Exercice 8 — Triangle d'étoiles
Écrire un programme affichant un triangle rempli d'étoiles. Le nombre de lignes N est donné
par l'utilisateur.
Exemple de sortie pour N=5 :
*
**
***
****
*****
✓ Correction
À la ligne i (de 1 à N), on affiche i étoiles via la multiplication de chaîne '*' * i.
N = int(input("Entrez le nombre de lignes N : "))
for i in range(1, N + 1): # i de 1 a N
print('*' * i)
Variante avec boucle imbriquée (sans multiplication de chaîne) :
N = int(input("Entrez le nombre de lignes N : "))
for i in range(1, N + 1):
for j in range(i):
print('*', end='') # pas de retour a la ligne
print() # retour a la ligne
10