Algorithmique et Python
Pr. GABLI MOHAMMED
medgabli@yahoo
MIP + Actuariat
FS-Oujda
2023-2024
Algorithmique et Python
PLAN
• Introduction à l'algorithmique
• Instructions élémentaires (Variable, E/S, …)
• Structures conditionnelles
• Structures répétitives
• Tableau
• Algorithmes de tri et de recherche
• Initiation au langage Python
11/10/2023 GABLI - 2023 2
Cours, TD et TP
Voir les deux sites:
1. https://sites.google.com/ump.ac.ma/gabli
2. http://scolarite.ump.ma/login
Instructions répétitives (Les 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 :
1. Les boucles Tant que : on répète des instructions tant
qu'une certaine condition est réalisée.
2. Les boucles Répéter …. jusqu'à : on répète des instructions
jusqu'à ce qu'une certaine condition soit réalisée.
3. Les boucles Pour : on répète des instructions en faisant
évoluer un compteur (variable particulière) entre une valeur
initiale et une valeur finale.
11/10/2023 GABLI - 2023 4
L’instruction TantQue
TantQue condition Faire
Instructions;
Non
FinTantQue Condition
Oui
Instructions
Sortie de la boucle
11/10/2023 GABLI - 2023 5
Exemple
Algorithme: Boucle1
Variables: a: entier
Début
a 0;
TantQue a<10 Faire
Ecrire («entrer un entier »);
Lire (a);
Ecrire(« Le nombre entré est: », a);
FinTantQue
Fin
11/10/2023 GABLI - 2023 6
Exercice
1. Ecrire un algorithme qui demande un nombre
compris entre 10 et 20, jusqu’à ce que la réponse
convienne.
2. Modifier l’algorithme précédent:
En cas de réponse supérieure à 20, on fera
apparaître un message : « Plus petit ! », et
inversement, « Plus grand ! » si le nombre est
inférieur à 10.
11/10/2023 GABLI - 2023 7
Réponse
Algorithme saisir
Variables: N Entier
Debut
N←0
TantQue N < 10 ou N > 20 Faire
Ecrire "Entrez un nombre entre 10 et 20"
Lire N
Si N < 10 Alors
Ecrire "Plus grand !"
SinonSi N > 20 Alors
Ecrire "Plus petit !"
FinSi
FinSi
FinTantQue
Fin
11/10/2023 GABLI - 2023 8
Remarques
• Le nombre d'itérations dans une boucle TantQue
n'est pas connu au moment d'entrée dans la boucle.
• Il faut méfier toujours à ajouter une instruction qui
change absolument la valeur de la condition de vrai à
faux (après un certain nombre d'itérations), sinon le
programme va tourner indéfiniment.
• Exemple …
11/10/2023 GABLI - 2023 9
Remarques
• Exemple …
Algorithme Test1 Algorithme Test2
Variables: N Entier Variables: N Entier
Debut Debut
N←1 N←1
TantQue N > 0 Faire TantQue N < 10 Faire
N ← N+1
N ← N+1
FinTantQue
FinTantQue
Fin
Fin
11/10/2023 GABLI - 2023 10
L’instruction Répéter…Jusqu’à
Répéter
Instructions;
Jusqu’à condition Instructions
Non
Condition
Oui
Sortie de la boucle
11/10/2023 GABLI - 2023 11
L’instruction Répéter…Jusqu’à
• La condition est évaluée après chaque
itération;
• les instructions sont Instructions
exécutées au moins
Non
Une fois. Condition
Oui
Sortie de la boucle
11/10/2023 GABLI - 2023 12
Exemple 1
Algorithme: Boucle2
Variables: a: entier
Début
Répéter
Ecrire («entrer un entier »);
Lire (a);
Ecrire(« Le nombre entré est: », a);
Jusqu’à a<10
Fin
11/10/2023 GABLI - 2023 13
Exemple 2
Algorithme: SommeDe1a20
Variables: i, somme : entier
Début
i ← 1;
somme ← 0 ;
Répéter
somme ← somme + i ;
i←i+1;
Jusqu’à i > 20
Ecrire(« la somme est : », somme);
Fin
11/10/2023 GABLI - 2023 14
L’instruction Pour…
Pour compteur borne1 à borne2 par pas Faire
Instructions;
FinPour
• Pas est par défaut égal à 1
Pour compteur borne1 à borne2 Faire
Instructions;
FinPour
11/10/2023 GABLI - 2023 15
L’instruction Pour…
• Compteur est une variable de type entier (ou
caractère).
• Pas est un entier qui peut être positif ou négatif. Pas
peut ne pas être mentionné, car par défaut sa valeur
est égal à 1.
• borne1 et borne2 peuvent être des valeurs, des
variables définies avant le début de la boucle ou des
expressions de même type que compteur
11/10/2023 GABLI - 2023 16
Exemple
Algorithme: Boucle3
Variables: i, somme: entiers
Début
somme 0;
Pour i 1 à 10 Faire
somme somme + i;
FinPour
Ecrire(« La somme est: », somme);
Fin
11/10/2023 GABLI - 2023 17
Instructions répétitives (Les boucles)
• Si le nombre d’itération n’est pas connu à l’avance
• Utiliser: Tant que
• Utiliser Répéter … Jusqu’à
• la séquence d'instructions est exécutée au moins une
fois dans la boucle Répéter … jusqu'à, alors qu'elle peut
ne pas être exécutée dans le cas du Tant que
• Si le nombre d’itération est connu à l’avance
Utiliser: Pour
11/10/2023 GABLI - 2023 18
Exercice
Ecrire un algorithme qui demande un nombre
de départ, et qui ensuite affiche les dix
nombres suivants. Par exemple, si l'utilisateur
entre le nombre 17, le programme affichera
les nombres de 18 à 27.
11/10/2023 GABLI - 2023 19
Réponse
Algorithme: Exercice1
Variables: N, i : Entiers
Debut
Ecrire "Entrez un nombre : "
Lire N
Pour i ← N + 1 à N + 10 Faire
Ecrire i
FinPour
Fin
11/10/2023 GABLI - 2023 20
Exercice
Ecrire un algorithme qui demande un nombre de
départ, et qui ensuite écrit la table de multiplication
de ce nombre, présentée comme suit (cas où
l'utilisateur entre le nombre 7) :
Table de 7 :
7x1=7
7 x 2 = 14
7 x 3 = 21
…
7 x 10 = 70
11/10/2023 GABLI - 2023 21
Réponse
Algorithme: Table de multiplication
Variables N, i en Entier
Debut
Ecrire "Entrez un nombre : "
Lire N
Pour i ← 1 à 10 Faire
Ecrire (N, " x ", i, " = ", n*i)
FinPour
Fin
11/10/2023 GABLI - 2023 22