0% ont trouvé ce document utile (0 vote)
0 vues4 pages

Algo Python 02 Structures Controle

Transféré par

hamza.mbarki2002
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
0 vues4 pages

Algo Python 02 Structures Controle

Transféré par

hamza.mbarki2002
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Algorithmique &

Python — Structures de
Controle
Conditionnelles & Iteratives — Cours & Niveau : 4eme Annee | Prof :
Exercices Corriges FENNI-S | 2024-2025

1. Structures Conditionnelles

Les structures conditionnelles permettent d'executer un


traitement selon une condition. En Python, l'indentation . Python
est obligatoire (4 espaces). Il existe trois formes : simple . :
(if), complete (if/else) et generalisee (if/elif/else). (if) (if/else) (if/elif/else).

1.1 Structure simple |

Algorithmique Python

Si Condition if Condition: Le bloc n'est execute que si la condition est vraie.


Alors Traitement Traitement ■■■■■■ ■■■■■■■ ■■■ ■■■ ■■■ ■■■■■ ■■■■■
FinSi

1.2 Structure complete |


# Algorithmique : # Python :
Si age >= 18 if age >= 18:
Alors Ecrire("Majeur") print("Majeur")
Sinon Ecrire("Mineur") else:
FinSi print("Mineur")

1.3 Structure generalisee (elif) |


# Algorithmique : # Python :
Si note >= 15 if note >= 15:
Alors Ecrire("Tres Bien") print("Tres Bien")
Sinon Si note >= 12 elif note >= 12:
Alors Ecrire("Bien") print("Bien")
Sinon Si note >= 10 elif note >= 10:
Alors Ecrire("Passable") print("Passable")
Sinon Ecrire("Echec") else:
FinSi print("Echec")

1.4 Structure a choix multiples (match/case) — Python >= 3.10


# Algorithmique : # Python (v3.10+) :
Selon jour match jour:
1 : Ecrire("Lundi") case 1: print("Lundi")
2 : Ecrire("Mardi") case 2: print("Mardi")
6,7 : Ecrire("WE") case 6|7: print("Week-end")
Sinon Ecrire("?") case _: print("Autre")
FinSelon

2. Structures Iteratives (Boucles)

Une boucle repete un traitement plusieurs fois. Il existe .


trois types : :
1. POUR : nombre de repetitions connu a l'avance. 1. POUR: .
2. TANT QUE : repetition conditionnelle (peut ne pas 2. TANT QUE: ( ).
s'executer). 3. REPETER...JUSQU'A:
3. REPETER...JUSQU'A : s'execute au moins une fois. .

2.1 Boucle POUR | POUR

Algorithmique : Python :
Pour i de Debut a Fin [Pas=p] Faire for i in range(Debut, Fin+1 [, pas]):
Traitement Traitement
FinPour
range(5) → 0,1,2,3,4
Nombre de repetitions = |Fin - Debut| + 1 range(1,9,2) → 1,3,5,7
Le pas peut etre positif ou negatif. range(5,0,-1) → 5,4,3,2,1

Exemples POUR |
# Afficher les cubes de 1 a 5
for i in range(1, 6):
print(f"{i}^3 = {i**3}")

# Calculer la somme 1+2+...+N


N = int(input("N = "))
som = 0
for i in range(1, N+1):
som += i
print("Somme =", som)

2.2 Boucle TANT QUE | TANT QUE


# Algo : # Python :
som <- 0 som = 0
Tant que som < 100 Faire while som < 100:
Lire(x) x = int(input("x ? "))
som <- som + x som = som + x
FinTantQue # Arrete quand som >= 100

2.3 Boucle REPETER...JUSQU'A |


# Algo : # Python (simulation) :
Repeter valide = False
Lire(x) while not valide:
Jusqu'a x > 0 x = int(input("x ? "))
valide = x > 0
# Le traitement se fait AU MOINS UNE FOIS ( )

2.4 Comparaison des trois boucles |

Critere POUR TANT QUE REPETER

Nb repetitions connu? Oui / ■■■ Non / ■■ Non / ■■

Execution minimale 0 fois (si debut > fin) 0 fois 1 fois ■■■ ■■■■■

Quand utiliser Parcours de tableau Saisie valide Menu


Compte exact Recherche Saisie robuste

Exercices Corriges

Question : Ecrire un programme Python qui affiche la table de multiplication de N (saisi par l'utilisateur).

Reponse Corrigee :

N = int(input("Entrer N : "))
for i in range(1, 11):
print(f"{N} x {i} = {N*i}")

Explication : La boucle POUR est ideale ici car le nombre de repetitions est fixe (10 fois, de 1 a 10).

Question : Saisir un entier N positif (faire une saisie valide), puis compter le nombre de chiffres de N.

Reponse Corrigee :

# Saisie valide
valide = False
while not valide:
N = int(input("N > 0 : "))
valide = N > 0

# Compter les chiffres


compteur = 0
n_temp = N
while n_temp > 0:
compteur += 1
n_temp = n_temp // 10
print("Nombre de chiffres :", compteur)

Explication : La saisie valide utilise REPETER (while not valide). Le comptage utilise TANT QUE car on ne sait pas combien
de chiffres N contient. N_temp // 10 supprime le dernier chiffre.

Question : Calculer la somme S = 1 - 1/2 + 1/3 - 1/4 + ... + (-1)^(n+1) * 1/n pour n saisi.

Reponse Corrigee :
n = int(input("n = "))
S = 0
signe = 1
for i in range(1, n+1):
S += signe * (1/i)
signe = -signe
print(f"S = {round(S, 6)}")

Explication : Le signe alterne a chaque iteration grace a signe = -signe. Commencer avec signe=1 (terme positif).

Question : Afficher tous les diviseurs d'un entier N et leur nombre.

Reponse Corrigee :

N = int(input("N = "))
nb_div = 0
print(f"Diviseurs de {N} :")
for i in range(1, N+1):
if N % i == 0:
print(i, end=" ")
nb_div += 1
print(f"\nNombre de diviseurs : {nb_div}")

Explication : On parcourt tous les entiers de 1 a N et on verifie si i divise N (reste = 0). Si nb_div == 2, alors N est premier.

Vous aimerez peut-être aussi