Structures conditionnelles en Python
Structures conditionnelles en Python
PYTHON
AU: 2024/2025
I. Algorithmes, instructions et langages informatiques
Pr [Link] 2024/2025
I. Algorithmes, instructions et langages informatiques
Pr [Link] 2024/2025
I. Algorithmes, instructions et langages informatiques
Pr [Link] 2024/2025
I. Algorithmes, instructions et langages informatiques
Pr [Link] 2024/2025
I. Algorithmes, instructions et langages informatiques
❑ La condition (dite condition de contrôle de la boucle) est évaluée avant chaque itération;
❑ Si la condition est vraie, on exécute instructions (corps de la boucle), puis, on retourne
tester la condition. Si elle est encore vraie, on répète l'exécution, …
❑ Si la condition est fausse, on sort de la boucle et on exécute l'instruction qui est après
FinTantQue
Pr [Link] 2024/2025
I. Algorithmes, instructions et langages informatiques
❑ L'instruction à répéter peut être simple ou composée (c'est‐à‐dire formée d'une séquence
d'instructions appelée bloc instructions);
❑ Les instructions du bloc instructions sont répétées tant que l'expression condition reste
vraie. Cette expression est testée avant l'exécution de l'itération : si l'expression est
fausse dès le départ, les instructions ne seront jamais exécutées.
Pr [Link] 2024/2025
I. Algorithmes, instructions et langages informatiques
❑ Le nombre d'itérations dans une boucle TantQue n'est pas connu au moment d'entrée dans
la boucle. Il dépend de l'évolution de la valeur de condition.
❑ Une des instructions du corps de la boucle doit absolument changer la valeur de condition
de vrai à faux (après un certain nombre d'itérations), sinon l’algorithme tourne
indéfiniment.
Pr [Link] 2024/2025
I. Algorithmes, instructions et langages informatiques
Pr [Link] 2024/2025
I. Algorithmes, instructions et langages informatiques
b) Si i est <= à la valeur finale dans le cas d'un pas positif (ou si i est >= à finale pour un
pas négatif), instructions seront exécutées
A. Ensuite, la valeur de i est incrémentée de la valeur du pas si pas est positif (ou
décrémenté si pas est négatif)
Pr [Link] 2024/2025
I. Algorithmes, instructions et langages informatiques
b) Si i est <= à la valeur finale dans le cas d'un pas positif (ou si i est >= à finale pour un
pas négatif), instructions seront exécutées
B. On recommence l'étape 2 : La comparaison entre i et V_finale est de nouveau
effectuée, et ainsi de suite …
Pr [Link] 2024/2025
I. Algorithmes, instructions et langages informatiques
❑ Compteur (la variable i) est une variable de type entier. Elle doit être déclarée
❑ Pas est un entier qui peut être positif ou négatif. Pas peut ne pas être mentionné, car par
défaut sa valeur est égale à 1.
❑ V_initiale et V_finale peuvent être des valeurs, des variables définies avant le début de la
boucle ou des expressions de même type que compteur.
Pr [Link] 2024/2025
I. Algorithmes, instructions et langages informatiques
Vrai
Comme TantQue, cette itération permet de répéter une action tant qu'une condition est vraie. Mais la
condition est cette fois testée en fin d'itération.
❑ Condition est évaluée après chaque itération
❑ les instructions entre Répéter et jusqu’à sont exécutées au moins une fois et leur exécution est
répétée jusqu’à ce que condition soit vrai (tant qu'elle est fausse)
Pr [Link] 2024/2025
I. Algorithmes, instructions et langages informatiques
Exercice 2: Ecrire un programme qui demande un nombre n entier entré au clavier pour
calculer la somme S :
1 1 1
S = 1 + + + ⋯+
2 3 𝑛
Exercice 3:
Ecrire un programme qui lit un entier n au clavier et affiche ses diviseurs.
Exercice 4:
Ecrire un programme qui saisit un entier et qui l’affiche à l’envers. Par exemple l’utilisateur
saisit 123456 et le programme affiche 654321. Pour cela il faudra utiliser la division et le
modulo. Rappel 153%10 = 3 et 153/10=15
Pr [Link] 2024/2025
I. Algorithmes, instructions et langages informatiques
Exercice 5: Écrire un algorithme qui permet de calculer le nombre de chiffres d'un entier N saisi
par l'utilisateur. Exemple N = 84397➔ Le nombre de chiffres est : 5
Exercice6 : Écrire un algorithme permettant d'afficher les nombres pairs compris entre 0 et N, où
N saisi par l'utilisateur.
Exercice 7: Écrire un algorithme qui permet de calculer la somme d’entiers impaires de 1 jusqu'à
un entier N saisi par l'utilisateur. Exemple N=10 Somme = 1 +3+5+7+9= 25
Exercice8 : Écrire un algorithme qui permet de calculer le plus grand diviseur commun entre
deux entiers saisis par l'utilisateur. Par exemple: M= 15 et N=10 PGCD (15 , 10) = 5
Exercice9 : Écrire un algorithme qui demande un nombre et vérifier si le nombre est parfait ou
non. Un nombre parfait est un entier positif qui est égal à la somme de ses diviseurs positifs
appropriés.
Pr [Link] 2024/2025
I. Algorithmes, instructions et langages informatiques
Exercice 5: Écrire un algorithme qui permet de calculer le nombre de chiffres d'un entier N saisi par
l'utilisateur. Exemple N = 84397➔ Le nombre de chiffres est : 5
Algorithme Nb_chiffres # code en python
Variables i,N,n : entiers
Debut N=int(input("Entrer un nombre entier:"))
Ecrire("Enter un entier : ") i=1
Lire(N) while(N>10):
i←1 N=N//10
TantQue (N>10) faire i=i+1
N ← N / 10 print(i)
i ← i+1
FinTantQue
Ecrire("Le nombre de chiffres est",i)
Fin
Pr [Link] 2024/2025
I. Algorithmes, instructions et langages informatiques
Exercice6 : Écrire un algorithme permettant d'afficher les nombres pairs compris entre 0 et N, où N
saisi par l'utilisateur.
Algorithme nombres_paires
Variables i,N : entiers # code en python
Debut
N=int(input("Entrer un nombre entier:"))
Ecrire("Entrer un entier : ") for i in range(N+1):
lire(N) if i%2==0:
pour i allant de 0 à N faire print(i)
si( i % 2 ==0) alors
Ecrire(i)
finsi
finPour
Fin
Pr [Link] 2024/2025
I. Algorithmes, instructions et langages informatiques
Exercice 7: Écrire un algorithme qui permet de calculer la somme d’entiers impaires de 1 jusqu'à un
entier N saisi par l'utilisateur. Exemple N=10 Somme = 1 +3+5+7+9= 25
Algorithme Somme_Impaires
Variables i, N, som : entiers # code en python
Debut S=0
som ← 0 N=int(input("Entrer un nombre
Ecrire("Entrer un entier:") entier:"))
Lire(N) for i in range(N+1):
pour i allant de 1 à N faire if i%2!=0:
Si ( i % 2 != 0) alors S+=i
som ← som + i
FinSi print(S)
FinPour
Ecrire (som)
Fin
Pr [Link] 2024/2025
I. Algorithmes, instructions et langages informatiques
Exercice8 : Écrire un algorithme qui permet de calculer le plus grand diviseur commun entre deux
entiers saisis par l'utilisateur. Par exemple: M= 15 et N=10 PGCD (15 , 10) = 5
Algorithme Diviseur_commun #code en python
Variables i,N,M,Div_com : entiers
Debut N=int(input("Entrer un nombre entier:"))
Ecrire("Entrer deux entiers:") M=int(input("Entrer un nombre entier:"))
Lire(N,M) i=1
i←1 while(i<=N and i<=M):
TantQue(i<=N et i<=M )faire if(N%i==0 and M%i==0):
si( N % i==0 et M% i==0) alors Div_C=i
Div_com ← i i=i+1
FinSi print("le PGCD est:",Div_C)
i←i+1
FinTantQue
Ecrire("le PGCD est:",Div_com)
Fin
Pr [Link] 2024/2025
I. Algorithmes, instructions et langages informatiques
Algorithme NombreParfait
Exercice9 : Écrire un Variables nbre,cpt,i: entier # code en python
algorithme qui demande un Début
nombre et vérifier si le répéter N=int(input("Entrer un nombre entier:"))
Ecrire('Entrez un nombre qui sera testé: ') while (N<0):
nombre est parfait ou non. lire(nbre) N=int(input("Entrer un nombre entier:"))
Un nombre parfait est un jusqu’à(nbre>=0) cpt=0
cpt<-0
entier positif qui est égal à pour i de 1 à (nbre/2)faire for i in range(1,(N//2)+1):
la somme de ses diviseurs si(nbre % i ==0)alors if N%i==0:
positifs appropriés. cpt<-cpt+i cpt+=i
finsi print(i)
➔ Par exemple: 6 est le finpour if cpt==N:
premier nombre si(cpt==nbre)alors print(f"Ce nombre {N} est parfait")
parfait ;Les diviseurs Ecrire('Ce nombre est parfait') else:
sinon print(f"Ce nombre {N} est pas parfait")
appropriés de 6 sont 1, Ecrire('Ce nombre n’est pas parfait')
2, 3. fins
Fin
Pr [Link] 2024/2025
I. Algorithmes, instructions et langages informatiques
❑ FONCTIONS ET PROCÉDURES
▪ Les algorithmes ou les scripts que vous avez écrits jusqu’à présent étaient à chaque fois très
courts, car leur objectif était seulement de vous faire assimiler les premiers éléments du langage.
▪ Dès qu’on commence à écrire des algorithmes importants(longs) pour résoudre des problèmes
complexes ou développer de véritables projets, il devient difficile d’avoir une vision globale sur
son fonctionnement et de traquer les erreurs;
▪ L’approche efficace d’un problème complexe consiste souvent à le décomposer en plusieurs
sous-problèmes plus simples qui seront étudiés séparément et donc on les découpe en des parties
appelées sous-algorithmes (sous-programmes);
▪ Un sous-algorithme peut se présenter sous forme de fonction ou de procédure.
Pr [Link] 2024/2025
I. Algorithmes, instructions et langages informatiques
❑ FONCTIONS ET PROCÉDURES
Les fonctions et les procédures sont des modules (groupe d'instructions) indépendants
définis par un nom. Elles ont plusieurs intérêts :
✓ permettent de "factoriser" les algorithmes, càd de mettre en commun les parties qui
se répètent;
✓ permettent une structuration et une meilleure lisibilité des algorithmes;
✓ facilitent la maintenance du code (il suffit de modifier une seule fois);
✓ ces procédures et fonctions peuvent éventuellement être réutilisées dans d'autres
programme.
Pr [Link] 2024/2025
I. Algorithmes, instructions et langages informatiques
❑ FONCTIONS ET PROCÉDURES
▪ Le rôle d'une fonction en programmation est similaire à celui d'une fonction en
mathématique : elle retourne un résultat à partir des valeurs des paramètres.
▪ Une fonction s'écrit en dehors du programme principal sous la forme :
Fonction nom_fonction (paramètres et leurs types) : type_fonction
Instructions constituant le corps de la fonction
retourner…
FinFonction
✓ Pour le choix d'un nom de fonction il faut respecter les mêmes règles que celles pour les
noms de variables
✓ type_fonction est le type du résultat retourné
✓ L'instruction retourner sert à retourner la valeur du résultat
Pr [Link] 2024/2025
I. Algorithmes, instructions et langages informatiques
❑ FONCTIONS ET PROCÉDURES
▪ Le rôle d'une fonction en programmation est similaire à celui d'une fonction en
mathématique : elle retourne un résultat à partir des valeurs des paramètres
Remarque:
Une fonction est un bloc d’instructions qui retourne obligatoirement une et une seule valeur
résultat à l’algorithme appelant.
Une fonction n’affiche jamais la réponse à l’écran car elle la renvoie simplement à
l’algorithme appelant.
Pr [Link] 2024/2025
I. Algorithmes, instructions et langages informatiques
❑ FONCTIONS ET PROCÉDURES
Exemples: définir et déclarer une fonction
▪ La fonction SommeCarre suivante calcule la somme des carrées de deux réels x et y;
Fonction SommeCarre (x : réel, y: réel ) : réel
variable z : réel
z ←x^2+y^2
retourner (z)
FinFonction
▪ La fonction Pair suivante détermine si un nombre est pair :
Fonction Pair (n : entier ) : booléen
retourner (n%2==0)
FinFonction
Pr [Link] 2024/2025
I. Algorithmes, instructions et langages informatiques
❑ FONCTIONS ET PROCÉDURES
➔Utilisation des fonctions
▪ L'utilisation d'une fonction se fera par simple écriture de son nom dans l’algorithme principal. Le
résultat étant une valeur, devra être affecté ou être utilisé dans une expression, une écriture, ...
▪ Exemple : Algorithme exempleAppelFonction
variables z : réel, b : booléen
Début
b ←Pair(3)
z ←SommeCarre(3,5)
écrire("SommeCarre(3,5)= ", z)
Fin
▪ Lors de l'appel Pair(3) le paramètre formel n est remplacé par le paramètre effectif 3
Pr [Link] 2024/2025
I. Algorithmes, instructions et langages informatiques
❑ FONCTIONS ET PROCÉDURES
▪ Une procédure est un sous-algorithme semblable à une fonction mais qui ne retourne rien
▪ Une procédure s'écrit en dehors de l’algorithme principal sous la forme :
FinProcédure
Pr [Link] 2024/2025
I. Algorithmes, instructions et langages informatiques
❑ FONCTIONS ET PROCÉDURES
➔Appel d'une procédure: se fait dans l’algorithme principal ou dans une autre procédure par une
instruction indiquant le nom de la procédure;
Procédure exemple_proc (…)
…
FinProcédure
Algorithme exepmleAppelProcédure
Début
exemple_proc (…)
…
Fin
Remarque : contrairement à l'appel d'une fonction, on ne peut pas affecter la procédure appelée ou
l'utiliser dans une expression. L'appel d'une procédure est une instruction autonome.
Pr [Link] 2024/2025
I. Algorithmes, instructions et langages informatiques
❑ FONCTIONS ET PROCÉDURES
▪ On peut manipuler 2 types de variables dans un module (procédure ou fonction) : des
variables locales et des variables globales. Elles se distinguent par ce qu'on appelle leur
portée (leur "champ de définition", leur "durée de vie");
▪ Une variable locale n'est connue qu'à l'intérieur du module ou elle a été définie. Elle est
créée à l'appel du module et détruite à la fin de son exécution;
▪ Une variable globale est connue par l'ensemble des modules et l’algorithme principal. Elle
est définie durant toute l’application et peut être utilisée et modifiée par les différents
modules de l’algorithme.
Pr [Link] 2024/2025
I. Algorithmes, instructions et langages informatiques
❑ FONCTIONS ET PROCÉDURES
▪ Les paramètres servent à échanger des données entre l’algorithme principal (ou la procédure
appelante) et la procédure appelée,
▪ Les paramètres placés dans la déclaration d'une procédure(fonction) sont appelés paramètres
formels. Ces paramètres peuvent prendre toutes les valeurs possibles mais ils sont abstraits
(n'existent pas réellement),
▪ Les paramètres placés dans l'appel d'une procédure(fonction) sont appelés paramètres
effectifs. ils contiennent les valeurs pour effectuer le traitement,
▪ Le nombre de paramètres effectifs doit être égal au nombre de paramètres formels. L'ordre et
le type des paramètres doivent correspondre.
Pr [Link] 2024/2025
I. Algorithmes, instructions et langages informatiques
FONCTIONS ET PROCÉDURES
Exercice 1
Ecrire une fonction MIN et une fonction MAX qui déterminent le minimum et le maximum
de deux nombres réels. Ecrire ensuite un algorithme se servant des fonctions MIN et MAX
pour déterminer le minimum et le maximum de quatre nombres réels entrés au clavier.
Exercice 2 :
Ecrire la fonction Impaire qui permet de déterminer si une valeur est impaire. Tester cette
fonction d’un algorithme principale.
Exercice 3 :
Ecrire la fonction Absolue qui retourne la valeur absolue d'un nombre entier.
Pr [Link] 2024/2025
I. Algorithmes, instructions et langages informatiques
Algorithme AppelMax_Min
variables x,y,z,t: réel
Début
Ecrire("Entrez quatre valeurs réelles")
Lire(x,y,z,t)
Ecrire(" le maximum de ",x,y,z,t, "est :",MAX(MAX(x,y),MAX(z,t) )
Ecrire(" le minimum de ",x,y,z,t, "est :",MIN(MIN(x,y),MIN(z,t) )
Fin
Pr [Link] 2024/2025
SECTION II: LANGAGE DE PROGRAMMATION
PYTHON
Section II: Langage de programmation Python
Pr [Link] 2024/2025
Section II: Langage de programmation Python
Pr [Link] 2024/2025
Section II: Langage de programmation Python
Pr [Link] 2024/2025
Section II: Langage de programmation Python
Pr [Link] 2024/2025
Section II: Langage de programmation Python
Pr [Link] 2024/2025
Section II: Langage de programmation Python
Pr [Link] 2024/2025
Section II: Langage de programmation Python
Pr [Link] 2024/2025
Section II: Langage de programmation Python
Pr [Link] 2024/2025
Section II: Langage de programmation Python
Pr [Link] 2024/2025
II. Langage de programmation Python
Pr [Link] 2024/2025
Section II: Langage de programmation Python
Pr [Link] 2024/2025
Section II: Langage de programmation Python
Pr [Link] 2024/2025
Section II: Langage de programmation Python
Pr [Link] 2024/2025
Section II: Langage de programmation Python
Pr [Link] 2024/2025
Section II: Langage de programmation Python
Pr [Link] 2024/2025
Section II: Langage de programmation Python
Pr [Link] 2024/2025
Section II: Langage de programmation Python
Pr [Link] 2024/2025
Section II: Langage de programmation Python
Pr [Link] 2024/2025
Section II: Langage de programmation Python
Pr [Link] 2024/2025
Section II: Langage de programmation Python
Pr [Link] 2024/2025
Section II: Langage de programmation Python
Pr [Link] 2024/2025
Section II: Langage de programmation Python
Pr [Link] 2024/2025
Section II: Langage de programmation Python
Pr [Link] 2024/2025
Section II: Langage de programmation Python
Remarques :
➢ La fonction qui calcul la puissance et celle qui renvoie le factoriel sont des fonctions
itératives (utilise des boucles).
➢ Pourquoi ne pas le faire de manière récursive ... plutôt que d’utiliser des boucles ...?
➔C’est quoi la récursivité?
➔La récursivité est un concept très puissant : décomposer un problème en un ou plusieurs
sous-problèmes qui sont de même nature, mais qui s'appliquent à un nombre d'objets plus
réduit.
Pr [Link] 2024/2025
Section II: Langage de programmation Python
Remarques :
➢ La fonction qui calcul la puissance et celle qui renvoie le factoriel sont des fonctions
itératives (utilise des boucles).
➢ Pourquoi ne pas le faire de manière récursive ... plutôt que d’utiliser des boucles ...?
➔C’est quoi la récursivité?
➔La récursivité est un concept très puissant : décomposer un problème en un ou plusieurs
sous-problèmes qui sont de même nature, mais qui s'appliquent à un nombre d'objets plus
réduit.
▪ n! = n*(n-1)! pour n≥1
▪ Xn = X* Xn-1 pour n≥1
❑ Récursivité :Définition
✓ Lorsqu'un sous-programme appelle lui-même on parle d'appel récursif.
✓ La récursivité est la capacité d'un sous-programme (fonction ou procédure) à s'appeler lui-
même.
✓ La récursivité permet de résoudre beaucoup de problèmes contenant des itérations
complexes.
✓ Toute méthode récursive peut-être convertie en méthode non-récursive (itérative).
✓ Tout algorithme récursif devra contenir une condition qui assure la fin du nombre
d'appels
Pr [Link] 2024/2025
Section II: Langage de programmation Python
❑ Récursivité :Définition
✓ La récursivité permet de résoudre des problèmes complexes en les décomposant en
problèmes plus petits
✓ Une procédure (ou fonction) est dite récursive lorsqu’elle fait appel à elle même.
✓ La programmation récursive sert à remplacer les boucles (while, for, etc). Il faut vérifier si
le processus ne boucle pas indéfiniment.
✓ Une Procédure (ou Fonction) est dite récursive si son exécution peut provoquer un ou
plusieurs appels (dits récursif ) à :
1. Récursivité Simple , 2. Récursivité Multiple, ……
Pr [Link] 2024/2025
Section II: Langage de programmation Python
❑ Récursivité simple:
Une récursivité simple contient un seul appel récursif à la fonction F dans le corps de la
fonction récursive F.
➔ Fonction qui s’invoque elle-même
Exemple1: Calcul de la factorielle
❑ Récursivité Simple:
➔Exemple1: Algorithme de calcul de la factorielle
La version itérative: La version récursive:
❑ Récursivité Simple:
➔Exemple1: programme en python de calcul de la factorielle
def factorielle(n):
if n==0:
return 1
else:
return n*factorielle(n-1)
❑ Récursivité Simple:
➔Exemple 2: Écrire une fonction récursive qui calcule la puissance d’un nombre entier
❑ Récursivité Simple:
➔Exemple 2: Écrire une fonction récursive qui calcule la puissance d’un nombre entier
Le code de la fonction puissance:
Pr [Link] 2024/2025
Section II: Langage de programmation Python
❑ Récursivité multiple :
➔ récursivité est multiple si il y a plusieurs appels récursifs à la fonction F dans le corps
de la fonction récursive F.
➔ Fonction qui s’invoque elle-même plusieurs fois
➔Exemple: Suite de Fibonacci
❑ La suite de Fibonacci est définie par (entier naturel) :
F(0) = 0
F(1) = 1
F(n) = F(n -1) + F (n -2) , si n > 1
Pr [Link] 2024/2025
Section II: Langage de programmation Python
❑ Récursivité multiple :
Pr [Link] 2024/2025
Section II: Langage de programmation Python
❑ Récursivité multiple :
➔Le code de fonction Fibonacci en langage Python:
Pr [Link] 2024/2025