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

Structures conditionnelles en Python

Le document traite des structures algorithmiques en programmation, en se concentrant sur les structures alternatives et répétitives en Python. Il explique les structures conditionnelles, les boucles 'tant que' et 'pour', ainsi que des exemples d'algorithmes. Des exercices pratiques sont également proposés pour illustrer ces concepts.

Transféré par

Jayaa
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)
60 vues85 pages

Structures conditionnelles en Python

Le document traite des structures algorithmiques en programmation, en se concentrant sur les structures alternatives et répétitives en Python. Il explique les structures conditionnelles, les boucles 'tant que' et 'pour', ainsi que des exemples d'algorithmes. Des exercices pratiques sont également proposés pour illustrer ces concepts.

Transféré par

Jayaa
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

L'ALGORITHMIQUE ET LA PROGRAMMATION

PYTHON

ENCG, Université Ibn Tofaïl. Kenitra


Pr. [Link]
[Link]@[Link]
Semestre Printemps
S6(G3 et G7)

AU: 2024/2025
I. Algorithmes, instructions et langages informatiques

❑ LES STRUCTURES ALTERNATIVES ET RÉPÉTITIVES


➔ Les structures alternatives
Contrairement au traitement séquentiel, la structure alternative ou conditionnelle
permet d’exécuter ou non une série d’instructions selon la valeur d’une condition.
✓ La structure Si condition alors … sinon …… fin si ou Si condition alors … fin si

Pr [Link] 2024/2025
I. Algorithmes, instructions et langages informatiques

❑ LES STRUCTURES ALTERNATIVES ET RÉPÉTITIVES


➔ Les structures alternatives
Contrairement au traitement séquentiel, la structure alternative ou conditionnelle
permet d’exécuter ou non une série d’instructions selon la valeur d’une condition.
✓ La structure Si condition alors … sinon …… fin si ou Si condition alors … fin si
✓ Structure conditionnelle à choix multiples
➔Le si – alors- sinon – fsi permet d’envisager deux choix différents.
➔Pour permettre plusieurs choix possibles, il faut alors utiliser des si-alors-sinon-fsi
imbriqués.
➔Certains langages de programmation offrent une solution plus simple(exemple switch)
Pr [Link] 2024/2025
I. Algorithmes, instructions et langages informatiques

❑ LES STRUCTURES ALTERNATIVES ET RÉPÉTITIVES


➔ Les structures alternatives
EXERCICE 1:

1. Ecrire un algorithme permettant de résoudre une équation du second degré:


aX2+bX+c=0 avec a, b et c ∈ ℛ
2. Ecrire un algorithme qui demande un nombre entier à l'utilisateur, puis qui teste et affiche
s'il est divisible par 3.
3. Ecrire un algorithme qui permet de dire si un entier X est pair ou impair

Pr [Link] 2024/2025
I. Algorithmes, instructions et langages informatiques

❑ LES STRUCTURES ALTERNATIVES ET RÉPÉTITIVES


➔Les structures(Instructions) répétitives :Boucles
❑ Les boucles servent à répéter l'exécution d'un groupe d'instructions un certain nombre de
fois.
❑ On distingue trois sortes de boucles en algorithmique :
➢ La boucle tant que : on y répète des instructions tant qu'une certaine condition est
réalisée
➢ La boucle répète……jusqu'à : on y répète des instructions jusqu'à ce qu'une certaine
condition soit réalisée
➢ La boucle pour ou avec compteur : on y répète des instructions en faisant évoluer un
compteur entre une valeur initiale et une valeur finale.

Pr [Link] 2024/2025
I. Algorithmes, instructions et langages informatiques

❑ LES STRUCTURES ALTERNATIVES ET RÉPÉTITIVES


➔Les structures(Instructions) répétitives :Boucles
❑ Les boucles servent à répéter l'exécution d'un groupe d'instructions un certain nombre de
fois.
▪ Répéter une action (c‐à‐d une suite d'instructions) un certain nombre de fois. Deux cas se
présentent :
➢ le nombre de répétitions est prévisible; on utilise alors de préférence
l'instruction Pour;
➢ la répétition de l'action doit avoir lieu tant qu'une condition est vraie; on utilise alors de
préférence les instructions TantQue et répète……jusqu'à.

Pr [Link] 2024/2025
I. Algorithmes, instructions et langages informatiques

❑ LES STRUCTURES ALTERNATIVES ET RÉPÉTITIVES


➔Les structures(Instructions) répétitives :Boucles
A. La boucle Tant que:
TantQue (condition) condition
Vrai Instructions
instructions
FinTantQue Faux

❑ 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

❑ LES STRUCTURES ALTERNATIVES ET RÉPÉTITIVES


➔Les structures(Instructions) répétitives :Boucles
A. La boucle Tant que:
TantQue (condition) condition
Vrai Instructions
instructions
FinTantQue Faux

❑ 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

❑ LES STRUCTURES ALTERNATIVES ET RÉPÉTITIVES


➔Les structures(Instructions) répétitives :Boucles
A. La boucle Tant que:
TantQue (condition) condition
Vrai Instructions
instructions
FinTantQue Faux

❑ 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

❑ LES STRUCTURES ALTERNATIVES ET RÉPÉTITIVES


➔Les structures(Instructions) répétitives :Boucles
A. La boucle Tant que:
TantQue (condition) condition
Vrai Instructions
instructions
FinTantQue Faux

➔Attention aux boucles infinies(exemple)


i ←2
TantQue (i > 0)
i ← i+1 (attention aux erreurs de frappe : + au lieu de -)
FinTantQue
Pr [Link] 2024/2025
I. Algorithmes, instructions et langages informatiques

❑ LES STRUCTURES ALTERNATIVES ET RÉPÉTITIVES


➔Les structures(Instructions) répétitives :Boucles
A. La boucle Tant que: Exemple
Un algorithme qui détermine le premier nombre entier N tel que la somme de 1 à N dépasse
strictement 100. Algorithme version 1: Algorithme version 2:
Variables som, i : entier Variables som, i : entier
Debut Debut
i←0 som ← 0
som← 0 i←1
TantQue (som <=100) TantQue (som <=100)
i ← i+1 som ← som + i
som ← som+i i ← i+1
FinTantQue FinTantQue
Ecrire (" La valeur cherchée est N= ", i) Ecrire (" La valeur cherchée est N= ", i-1)
Fin Fin

Pr [Link] 2024/2025
I. Algorithmes, instructions et langages informatiques

❑ LES STRUCTURES ALTERNATIVES ET RÉPÉTITIVES


➔Les structures(Instructions) répétitives :Boucles
i ←V_initiale
B. La boucle Pour:
Pour compteur allant de V_i à V_f par pas valeur_pas
instructions
Vrai
FinPour i n'a pas atteint
V_finale
instructions i ← i + pas

➔ Déroulement de la boucle Pour Faux

1. La valeur initiale est affectée à la variable i


2. On compare la valeur de i et la valeur de finale :
a) Si la valeur de i est > à la valeur finale dans le cas d'un pas positif (ou si i est < à finale
pour un pas négatif), on sort de la boucle et on continue avec l'instruction qui suit FinPour
Pr [Link] 2024/2025
I. Algorithmes, instructions et langages informatiques

❑ LES STRUCTURES ALTERNATIVES ET RÉPÉTITIVES


➔Les structures(Instructions) répétitives :Boucles
i ←V_initiale
B. La boucle Pour:
Pour compteur allant de V_i à V_f par pas valeur_pas
instructions
Vrai
FinPour i n'a pas atteint
V_finale
instructions i ← i + pas

➔ Déroulement de la boucle Pour Faux

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

❑ LES STRUCTURES ALTERNATIVES ET RÉPÉTITIVES


➔Les structures(Instructions) répétitives :Boucles
i ←V_initiale
B. La boucle Pour:
Pour compteur allant de V_i à V_f par pas valeur_pas
instructions
Vrai
FinPour i n'a pas atteint
V_finale
instructions i ← i + pas

➔ Déroulement de la boucle Pour Faux

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

❑ LES STRUCTURES ALTERNATIVES ET RÉPÉTITIVES


➔Les structures(Instructions) répétitives :Boucles
B. La boucle Pour:
Pour compteur allant de V_i à V_f par pas valeur_pas
instructions
FinPour

❑ 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

❑ LES STRUCTURES ALTERNATIVES ET RÉPÉTITIVES


➔Les structures(Instructions) répétitives :Boucles
B. La boucle Pour: Exemple; Calcul de x à la puissance n où x est un réel non nul et n un entier positif ou nul.
Algorithme puissance_n_réel
Variables x, puiss : réel
n, i : entier
Debut
Ecrire (" Entrez la valeur de x ")
Lire (x)
Ecrire (" Entrez la valeur de n ")
Lire (n)
puiss ← 1
Pour i allant de 1 à n faire
puiss← puiss*x
FinPour
Ecrire (x, " à la puissance ", n, " est égal à ", puiss)
Fin
Pr [Link] 2024/2025
I. Algorithmes, instructions et langages informatiques

❑ LES STRUCTURES ALTERNATIVES ET RÉPÉTITIVES


➔Les structures(Instructions) répétitives :Boucles
B. La boucle Pour: Exemple; Calcul de x à la puissance n où x est un réel non nul et n un entier positif ou nul.
Algorithme puissance_n_réel
Variables x, puiss : réel
n, i : entier
Debut
Ecrire (" Entrez respectivement les valeurs de x et n ")
Lire (x, n)
puiss ← 1
Pour i allant de n à 1 par pas -1 faire
puiss← puiss*x
FinPour
Ecrire (x, " à la puissance ", n, " est égal à ", puiss)
Fin
Pr [Link] 2024/2025
I. Algorithmes, instructions et langages informatiques

❑ LES STRUCTURES ALTERNATIVES ET RÉPÉTITIVES


➔Les structures(Instructions) répétitives :Boucles
Lien entre Pour et TantQue:
La boucle Pour est un cas particulier de Tant Que (cas où le nombre d'itérations est connu et fixé) .
Tout ce qu'on peut écrire avec Pour peut être remplacé avec TantQue (la réciproque est fausse).
Pour compteur allant de initiale à finale par pas valeur du pas
instructions
FinPour
peut être remplacé par : compteur ← initiale
TantQue compteur <= finale
instructions
compteur ← compteur+pas
FinTantQue
Pr [Link] 2024/2025
I. Algorithmes, instructions et langages informatiques

❑ LES STRUCTURES ALTERNATIVES ET RÉPÉTITIVES


➔Les structures(Instructions) répétitives :Boucles
Calcul de x à la puissance n où x est un réel non nul et n un entier positif ou nul.
Algorithme puissance_n_réel
Variables x, puiss : réel
n, i : entier
Debut

Ecrire (" Entrez respectivement les valeurs de x et n ")


Lire (x, n)
puiss ← 1
Pour i allant de 1 à n faire
puiss← puiss*x
FinPour
Ecrire (x, " à la puissance ", n, " est égal à ", puiss)
Fin
Pr [Link] 2024/2025
I. Algorithmes, instructions et langages informatiques

❑ LES STRUCTURES ALTERNATIVES ET RÉPÉTITIVES


➔Les structures(Instructions) répétitives :Boucles
Calcul de x à la puissance n où x est un réel non nul et n un entier positif ou nul.
Algorithme puissance_n_réel
Variables x, puiss : réel
n, i : entier
Debut

Ecrire (" Entrez respectivement les valeurs de x et n ")


Lire (x, n)
puiss ← 1
i←1
TantQue (i<=n)
puiss← puiss*x
i ← i+1
FinTantQue
Ecrire (x, " à la puissance ", n, " est égal à ", puiss)
Fin
Pr [Link] 2024/2025
I. Algorithmes, instructions et langages informatiques

❑ LES STRUCTURES ALTERNATIVES ET RÉPÉTITIVES


➔Les structures(Instructions) répétitives :Boucles
➔ Boucles imbriquées
Les instructions d'une boucle peuvent être des instructions itératives. Dans ce cas, on aboutit à
des boucles imbriquées
Exemple:
Pour i allant de 1 à 5 faire
Pour j allant de 1 à i faire
écrire("O")
FinPour
écrire("X")
FinPour
Pr [Link] 2024/2025
I. Algorithmes, instructions et langages informatiques

❑ LES STRUCTURES ALTERNATIVES ET RÉPÉTITIVES


➔Les structures(Instructions) répétitives :Boucles
C. La boucle Répéter … jusqu’à … instructions
Répéter
instructions
Faux
Jusqu'à condition condition

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

❑ LES STRUCTURES ALTERNATIVES ET RÉPÉTITIVES


➔Les structures(Instructions) répétitives :Boucles
Exemple: Un algorithme qui détermine le premier nombre entier N tel que la somme de 1 à N
dépasse strictement 100 (version avec répéter jusqu'à)
Algorithme
Variables som, i : entier
Debut
som ← 0
i←0
Répéter
i ← i+1
som ← som+i
Jusqu'à ( som > 100)
Ecrire (" La valeur cherchée est N= ", i)
Fin
Pr [Link] 2024/2025
I. Algorithmes, instructions et langages informatiques

❑ LES STRUCTURES ALTERNATIVES ET RÉPÉTITIVES


➔Choix d'un type de boucle
❑ Si on peut déterminer le nombre d'itérations avant l'exécution de la boucle, il est plus
naturel d'utiliser la boucle Pour
❑ S'il n'est pas possible de connaître le nombre d'itérations avant l'exécution de la boucle, on
fera appel à l'une des boucles TantQue ou répéter jusqu'à
❑ Pour le choix entre TantQue et jusqu'à :
➢ Si on doit tester la condition de contrôle avant de commencer les instructions de la
boucle, on utilisera TantQue
➢ Si la valeur de la condition de contrôle dépend d'une première exécution des
instructions de la boucle, on utilisera répéter jusqu'à.
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 :

Procédure nom_procédure (paramètres et leurs types)

Instructions constituant le corps de la procédure

FinProcédure

▪ Remarque : une procédure peut ne pas avoir de paramètres

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

/* Définition de la fonction MAX */ /* Définition de la fonction MIN */


fonction MAX(N1:réel , N2:réel ): réel fonction MIN(N1:réel , N2:réel ):réel
si (N1>N2) si (N1>N2)
retourner N1 retourner N2
sinon sinon
retourner N2 retourner N1
fin si fin si
finfonction finfonction

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

❑ Contrôle du flux d’exécution: Les instructions conditionnelles


➔ Ecrire un programme demandant à l'utilisateur de donner sa moyenne au bac et
affichant s'il est admis, ainsi que sa mention.
[12-14] mention AB note = int(input ("Entrez votre moyenne obtenue au bac "))
if note >= 10 :
[14-16] mention B
print ("Vous êtes admis")
[16 - >16 ] mention A if note >= 12 and note <14 :
print ("Mention AB")
elif note >= 14 and note<16 :
print ("Mention B")
elif note >=16 :
print ("Mention TB")
else:
print ("Vous n’êtes pas admis")

Pr [Link] 2024/2025
Section II: Langage de programmation Python

❑ Contrôle du flux d’exécution: Les instructions conditionnelles

Exercice6: Écrire un algorithme qui permet à un commerçant


d’analyser et de classifier sa marge bénéficiaire.
• La marge (%) = 100x(Bénéfice / Chiffre d’affaires)
• Marge ≥ 50% : "Excellente rentabilité"
• 30% ≤ Marge < 50% : "Bonne rentabilité"
• 10% ≤ Marge < 30% : "Rentabilité moyenne"
• Marge < 10% : "Rentabilité faible"
Traduire cet Algorithme en Langage Python

Pr [Link] 2024/2025
Section II: Langage de programmation Python

❑ Contrôle du flux d’exécution: Les instructions conditionnelles


Bf = float(input("Entrer le montant du Bénéfice:"))
CA=float(input("Entre le chiffre d'affaires"))
Marge=100*(Bf/CA)
print(" avec une marge=",Marge)
if Marge<10 :
print("Rentabilité faible")
elif Marge<30 :
print("Rentabilité moyenne")
elif Marge<50 :
print("Bonne rentabilité ")
else :
print("Excellente rentabilité ")
Pr [Link] 2024/2025
II. Langage de programmation Python

1. Premiers pas avec Python


2. Variables, données et opérateurs
3. Fonctions prédéfinies
4. Contrôle du flux d’exécution
5. Instructions répétitives
6. Fonctions
7. Structures de données Python(listes)
8. Fichiers
9. Modules

Pr [Link] 2024/2025
Section II: Langage de programmation Python

❑ Instructions répétitives: les boucles


Exemple:
▪ L’instruction While
i=0
while condition :
while i<6 :
Instruction(s)
print(i)
i+=1
▪ L’instruction For:
for i in range(6):
for i in range(n):
print(i)
instruction(s)

Pr [Link] 2024/2025
Section II: Langage de programmation Python

❑ Instructions répétitives: les boucles

▪ L’instruction For: for i in range(n):


instruction(s)
➔Remarque : L’instruction range fournit une liste de valeurs.
➔ Exemples:
✓ range(6) représente la liste des valeurs: 0,1,2, 3, 4, 5
✓ range(1,6) représente la liste des valeurs: 1,2, 3, 4, 5
✓ range(1,6,1) représente la liste des valeurs: 1,2, 3, 4, 5
✓ range(1,6,2) représente la liste des valeurs: 1, 3, 5
✓ range(6,5,1) représente la valeur suivante: 6
Pr [Link] 2024/2025
Section II: Langage de programmation Python

❑ Instructions répétitives: les boucles


➔ L’imbrication des boucles
▪ L’instruction while
while condition1:
instruction(s)
while condition2:
instruction(s)
▪ L’instruction For
for i in range(n):
instruction1
for j in range(m):
instruction2
Pr [Link] 2024/2025
Section II: Langage de programmation Python

❑ Instructions répétitives: les boucles


Exercice8 : Algorithme Factoriel
En utilisant la boucle Pour, écrire un algorithme qui demande à l’utilisateur de taper un
nombre entier N≥0 pour calculer et afficher son factoriel N ! = 1x2x3x…x(N-1)xN

Pr [Link] 2024/2025
Section II: Langage de programmation Python

❑ Instructions répétitives: les boucles


Exercice8 : Algorithme Factoriel
En utilisant la boucle TantQue, écrire un algorithme qui demande à l’utilisateur de taper un
nombre entier N≥0 pour calculer et afficher son factoriel N ! = 1x2x3x…x(N-1)xN

Pr [Link] 2024/2025
Section II: Langage de programmation Python

❑ Instructions répétitives: les boucles


Exercice8 : Algorithme Factoriel
En utilisant la boucle TantQue, écrire un algorithme qui demande à l’utilisateur de taper un
nombre entier N≥0 pour calculer et afficher son factoriel N ! = 1x2x3x…x(N-1)xN

Pr [Link] 2024/2025
Section II: Langage de programmation Python

❑ Instructions répétitives: les boucles


Exercice 2: Ecrire un programme qui demande un nombre n entier entré au clavier pour
1 1 1
calculer la somme S : S = 1 + + + ⋯+
2 3 𝑛

Pr [Link] 2024/2025
Section II: Langage de programmation Python

❑ Instructions répétitives: les boucles


Exercice 3: Ecrire un programme qui lit un entier n au clavier et affiche ses diviseurs.

Pr [Link] 2024/2025
II. Langage de programmation Python

1. Premiers pas avec Python


2. Variables, données et opérateurs
3. Fonctions prédéfinies
4. Contrôle du flux d’exécution
5. Instructions répétitives
6. Fonctions
7. Structures de données Python(listes)
8. Fichiers
9. Modules

Pr [Link] 2024/2025
Section II: Langage de programmation Python

❑ Fonctions et les fonctions en algorithmique:

Pr [Link] 2024/2025
Section II: Langage de programmation Python

❑ Fonctions et les fonctions prédéfinies


▪ les fonctions prédéfinies:
➔L’un des concepts les plus importants en programmation est celui de fonction. Les fonctions
permettent en effet de décomposer un programme complexe en une série de sous-
programmes plus simples, lesquels peuvent à leur tour être décomposés en fragments plus
petits, et ainsi de suite.
➔D’autre part, les fonctions sont réutilisables : si nous disposons, par exemple, d’une fonction
capable de calculer une racine carrée, nous pouvons l’utiliser un peu partout dans nos
programmes sans avoir à la ré-écrire à chaque fois.
Pr [Link] 2024/2025
Section II: Langage de programmation Python

❑ Fonctions et les fonctions prédéfinies


▪ les fonctions prédéfinies:
✓ La fonction input(): interaction avec l’utilisateur
➔ Soulignons que la fonction input() renvoie toujours une chaîne de caractères. Si vous souhaitez que
l’utilisateur entre une valeur numérique, vous devrez donc convertir la valeur entrée en une valeur
numérique du type qui vous convient, par l’intermédiaire des fonctions intégrées int() (si vous
attendez un entier) ou float() (si vous attendez un réel)

Pr [Link] 2024/2025
Section II: Langage de programmation Python

❑ Fonctions et les fonctions prédéfinies


▪ les fonctions prédéfinies:
✓ La fonction input(): interaction avec l’utilisateur
✓ La fonction print(): affiche n’importe quel nombre de valeurs fournies en arguments;
➔ Vous pouvez remplacer le séparateur par défaut (l’espace) par un autre caractère quelconque (ou
même par aucun caractère), grâce à l’argument sep.
➔ De même, vous pouvez remplacer le saut à la ligne par l’argument end

Pr [Link] 2024/2025
Section II: Langage de programmation Python

❑ Fonctions et les fonctions prédéfinies


▪ les fonctions prédéfinies:
✓ La fonction input(): interaction avec l’utilisateur
✓ La fonction print(): affiche n’importe quel nombre de valeurs fournies en arguments;
✓ La fonction type(): affiche le type nombre de valeurs fournies en arguments;
✓ La fonction range():permet de générer une liste d'entiers. L'appel de fonction range(n)
renvoie la liste des entiers de 0 inclus à n exclu
✓ La fonction len(): permet de déterminer le nombre d'éléments présents dans votre structure
de données

Pr [Link] 2024/2025
Section II: Langage de programmation Python

❑ Fonctions et les fonctions prédéfinies


▪ les fonctions prédéfinies:
➔ Importer un module de fonctions:
Les modules sont des fichiers qui regroupent des ensembles de fonctions.
Exemple:
from math import* # Ou from math import sqrt,sin
➔Cette ligne indique à Python qu’il lui faut inclure dans le programme courant toutes les
fonctions (*) du module math, lequel contient une bibliothèque de fonctions
mathématiques pré-programmées.
➔ Dans le corps du script lui-même, vous écrirez par exemple :
racine = sqrt(nombre) pour assigner à la variable racine la racine carrée de nombre,
sinusx = sin(angle) pour assigner à la variable sinusx le sinus de angle.
Pr [Link] 2024/2025
Section II: Langage de programmation Python

❑ Fonctions et les fonctions prédéfinies


▪ les fonctions :Définir une fonction
➔La syntaxe Python pour la définition d’une fonction est la suivante :

➔Appel d’une fonction:


L’appel de la fonction prend la forme:

Pr [Link] 2024/2025
Section II: Langage de programmation Python

❑ Fonctions et les fonctions prédéfinies


▪ les fonctions :
▪ Exemple: la somme des carrés

➔ Appel d’une fonction

Pr [Link] 2024/2025
Section II: Langage de programmation Python

❑ Fonctions et les fonctions prédéfinies


▪ les fonctions :
▪ En Python, on peut utiliser les tuples pour renvoyer plusieurs valeurs. Par exemple:

➔ Appel d’une fonction

Pr [Link] 2024/2025
Section II: Langage de programmation Python

❑ Fonctions et les fonctions prédéfinies


▪ les fonctions : Variables globales et locales
➔Les variables définies à l’extérieur d’une fonction sont des variables globales. Leur contenu
est visible de l’intérieur d’une fonction.
➔Si l’on veut accéder à une variable globale à l’intérieur d’une fonction, on utilise le mot-clé
global en Python.
Exemple:

Pr [Link] 2024/2025
Section II: Langage de programmation Python

❑ Fonctions et les fonctions prédéfinies


▪ les fonctions : Fonction anonyme(lambda function)
➔Le mot-clé lambda en Python permet la création de fonctions anonymes(sans nom et donc
non définie par def)

➔On peut également préciser plusieurs arguments,


voire même des valeurs par défaut:

Pr [Link] 2024/2025
Section II: Langage de programmation Python

❑ Fonctions et les fonctions prédéfinies: Exercices d’application


➔Ecrire un algorithme qui calcul le factoriel d’un nombre entier en utilisant une fonction qui
renvoie le factoriel d’un nombre entier : . F(N=)N! = N*(N-1)*(N-2)* ... * 1 (pour N>0) et 0! = 1
Algorithme factoriel
Variable n, f : Entier
Début
Fonction fact(n:entier):entier
Ecrire ("Entrez un nombre entier x")
Variable R, i: entier
Lire(x)
Début
f ← fact(x)
R 1
pour i de 1 à n faire
Ecrire ("Le factoriel de x ", x, " est: ", f)
R=R * i
Fin
finpour
retourner R
Finfonction

Pr [Link] 2024/2025
Section II: Langage de programmation Python

❑ Fonctions et les fonctions prédéfinies: Exercices d’application


➔Ecrire un algorithme qui calcul le factoriel d’un nombre entier en utilisant une fonction qui
renvoie le factoriel d’un nombre entier :

X= int(input("Entrez un nombre entier X"))


def fact(n):
R= 1
f =fact(X)
for i in range(1, n+1) :
R=R * i
print ("Le factoriel de x ", X, " est: ", f)
return R

Pr [Link] 2024/2025
Section II: Langage de programmation Python

❑ Fonctions et les fonctions prédéfinies: Exercices d’application


➔Ecrire un algorithme qui fait appel à une fonction qui permet de renvoyer la puissance
Algorithme Puissance d’un nombre entier : f(x)=xn
Variable X, n, Pu : Entier
Fonction Puissance (x: Entier, n : Entier) : Entier Début
Variable R, i : Entier Ecrire ("Entrez un nombre entier X")
Début
Lire(X)
Si n==0 alors
retourner 1
Ecrire ("Entrez un exposant n")
Sinon Lire(n)
R1 Pu ← Puissance(x,n)
Pour i allant de 1 à n faire Ecrire ("La puissance =", Pu)
RR*x Fin
retourner R
finPour
finsi
fin fonction

Pr [Link] 2024/2025
Section II: Langage de programmation Python

❑ Fonctions et les fonctions prédéfinies: Exercices d’application


➔Ecrire un algorithme qui fait appel à une fonction qui permet de renvoyer la puissance
d’un nombre entier : f(x)=xn

X= int(input("Entrez un nombre entier x"))


def Puissance (x,n) : n= int(input("Entrez un exposant n") )
if n==0 :
return 1
else: Pu =Puissance (X, n )
R=1
for i in range(1, n) : print ("La puissance = ", Pu)
R*=x
return R

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

➔La programmation récursive sert à remplacer les boucles.


Pr [Link] 2024/2025
Section II: Langage de programmation Python

❑ 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

N.B : La condition d’arrêt est x=0 ou x=1


Pr [Link] 2024/2025
Section II: Langage de programmation Python

❑ Récursivité Simple:
➔Exemple1: Algorithme de calcul de la factorielle
La version itérative: La version récursive:

N.B : La condition d’arrêt est x=0 ou x=1


Pr [Link] 2024/2025
Section II: Langage de programmation Python

❑ 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)

N.B : La condition d’arrêt est x=0 ou x=1


Pr [Link] 2024/2025
Section II: Langage de programmation Python

❑ Récursivité Simple:
➔Exemple 2: Écrire une fonction récursive qui calcule la puissance d’un nombre entier

Fonction puissance ( x:entier, n:entier ) : entier


Début
Si n=0 alors
retourner 1
Si n=1 alors
retourner x
Si n > 1 alors
retourner x* puissance(x, n-1)
Finfonction
Pr [Link] 2024/2025
Section II: Langage de programmation Python

❑ Récursivité Simple:
➔Exemple 2: Écrire une fonction récursive qui calcule la puissance d’un nombre entier
Le code de la fonction puissance:

L’appel de cette fonction:

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:

➔L’appel de cette fonction:

Pr [Link] 2024/2025

Vous aimerez peut-être aussi