Vous êtes sur la page 1sur 27

Algorithmique et Python

Pr. GABLI MOHAMMED


medgabli@yahoo

MIP
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
22/11/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
Instruction répétitive: for
• On utilise la boucle FOR souvent avec des listes (des tableaux,
on les étudiera dans le prochain chapitre);
• Python possède la fonction range() qui est aussi bien
commode pour faire une boucle sur les entiers.

22/11/2023 GABLI - 2023 4


Instruction répétitive: for

• L’instruction for se termine par deux-points :, suivie d’un bloc


indenté qui constitue le corps de la boucle.
• Dans l’en-tête de la boucle, on précise après le mot-clé for le
nom d’une variable (i dans l’exemple ci-dessus) qui prendra
successivement toutes les valeurs qui sont données après le
mot-clé in.

22/11/2023 GABLI - 2023 5


Instruction répétitive: for

• La variable i est appelé un compteur car elle sert à numéroter


les itérations de la boucle;
• La fonction range() permet de définir le nombre de fois
(d’itérations) qu’une boucle FOR va être répétée;
• Le pas de la boucle for ici est 1.

22/11/2023 GABLI - 2023 6


Instruction répétitive: for
Si on veut utiliser la boucle for avec un pas différent de 1, on aura
besoin de la fonction range(start,stop,step) avec :
• Start (facultative) par défaut = 0 , La position de départ de
range();
• Stop (obligatoire), la boucle doit s'arrêter avant cette position;
• Step (facultative) par défaut = 1 , c’est le pas de la boucle.

22/11/2023 GABLI - 2023 7


Instruction répétitive: for
On peut utiliser la boucle for pour parcourir une chaine de
caractères comme suit

22/11/2023 GABLI - 2023 8


Les listes
• Une liste est une structure de données qui contient une série
de valeurs de types différents (par exemple entier et chaîne de
caractères), ce qui leur donne une grande flexibilité.
• Une liste est déclarée par une série de valeurs séparées par
des virgules, et le tout est encadré par des crochets.

22/11/2023 GABLI - 2023 9


Les listes
• On peut appeler un élément d’une liste par un numéro
indiquant sa position, nommé indice (ou index) de la liste.
• les indices d'une liste de n éléments commencent à 0 et se
terminent à n-1.

22/11/2023 GABLI - 2023 10


Les listes
• La liste peut également être indexée avec des nombres négatifs
• On accède au dernier élément d'une liste à l'aide de l'indice -1,
l'avant-dernier élément par l'indice -2, etc.

22/11/2023 GABLI - 2023 11


Les listes
• La longueur d'une liste, c'est-à-dire le nombre d'éléments que
contient la liste est obtenue par la fonction len().

22/11/2023 GABLI - 2023 12


Opération sur les listes
• On utilise l'opérateur + pour la concaténation et l'opérateur *
pour la duplication.

22/11/2023 GABLI - 2023 13


Opération sur les listes
• On peut utiliser la méthode .append() pour ajouter un seul
élément à la fin d'une liste.

En utilisant + En utilisant .append()

22/11/2023 GABLI - 2023 14


Les listes
• L'instruction range() génère des nombres entiers compris dans
un intervalle.
• Lorsqu’on utilise la fonction list() en combinaison avec range(),
on obtient une liste d'entiers.

22/11/2023 GABLI - 2023 15


Les listes
• Pour avoir le minimum, le maximum et la somme d'une liste,
on utilise respectivement les fonctions min(), max() et sum().

22/11/2023 GABLI - 2023 16


Tri d’une liste

• Nous avons vu dans les chapitres précédents le tri d’un


tableau;
• Dans cette partie, nous allons programmer le tri par sélection;
• Puis nous allons utiliser quelques fonctions de tri telle que
.sort()

22/11/2023 GABLI - 2023 17


Tri par sélection
Algorithme: Tri par sélection
Variables: i, j, indmin : Entier
Tableau T[n]: entier
Debut
Pour i de 0 à n – 2 Faire
indmin ← i
Pour j de i + 1 à n - 1 Faire
Si t[j] < t[indmin] Alors
indmin ← j
FinSi
FinPour
Si indmin ≠ i, Alors
échanger t[i] et t[indmin]
FinSi
FinPour
Fin
GABLI - 2011 18
Tri par sélection
Algorithme: Tri par sélection
Variables: i, j, indmin : Entier
Tableau T[n]: entier
Debut
Pour i de 0 à n – 2 Faire
indmin ← i
Pour j de i + 1 à n - 1 Faire
Si t[j] < t[indmin]
Alors

indmin ← j
FinSi
FinPour
Si indmin ≠ i, Alors
échanger t[i] et
t[indmin]
FinSi
FinPour
Fin

GABLI - 2011 19
Tri d’une liste
• La méthode .sort() trie les éléments d'une liste du plus petit au
plus grand;
• L'argument reverse=True spécifie le tri inverse, c'est-à-dire du
plus grand au plus petit.

22/11/2023 GABLI - 2023 20


Inverser une liste
• La méthode .reverse() inverse une liste.

22/11/2023 GABLI - 2023 21


Nombre d’occurrence dans une liste
• Code pour compter le nombre d’occurrence d’un élément dans
une liste.

• Exécution

22/11/2023 GABLI - 2023 22


Nombre d’occurrence dans une liste
• Il existe dans Python une méthode qui compte le nombre
d'éléments (passés en argument) dans une liste, c’est la
méthode .count()

22/11/2023 GABLI - 2023 23


Boucle FOR sur une liste
• Nous avons appliqué la boucle For avec la fonction range();
• La boucle For est souvent utilisée avec des listes.

22/11/2023 GABLI - 2023 24


Boucle FOR sur une liste
• On peut itérer sur les indices d’une liste comme suit:

• Ou bien

22/11/2023 GABLI - 2023 25


Exercice
• Ecrivez les codes Python qui dessinent les deux triangles
suivants:

22/11/2023 GABLI - 2023 26


Solution
for i in range(7): for i in range(8,0,-1):
print("*" * (i+1)) print("*" * i)

22/11/2023 GABLI - 2023 27

Vous aimerez peut-être aussi