Académique Documents
Professionnel Documents
Culture Documents
تنظم
التكوين المعمق في مجال البرمجة
لفائدة أستاذات و أساتذة المعلوميات بالثاـنوي التأهيلي
Objectif opérationnel :
Savoir créer une application en utilisant le langage Java et les outils JDK et
Eclipse.
Objectifs pédagogiques :
À l’issue de la formation Java, vous aurez acquis les connaissances et
compétences nécessaires pour :
•Décrire les différentes technologies Java (Java EE, Java embarqué, etc.)
•Utiliser Eclipse et comprendre les apports d’un IDE (Integrated
Development Environment)
•Maîtriser la syntaxe Java
•Comprendre et savoir appliquer les concepts objets au langage Java
(classes, méthodes, encapsulation, héritage, constructeur, polymorphisme,
classe abstraite, interfaces, relations entre classes, etc.)
•Maîtriser les opérations et les packages de base de Java (Collections, IO,
String, Exception)
•Construire les exécutables et déployer des applications.
2
Plan de formation:
P. Tech
I. Algorithmique
1. Les algorithmes de Tri
2. Les algorithmes de recherches
II. Langage C
1. Les fonctions
2. Les pointeurs
3. Les listes chainés
4. Les piles & les files
III. Python
1. Les instructions de base
2. Les listes, Tuples, Dictionnaires
3
Plan de Cours:
P. Tech
I. Algorithmique
II. Langage C
III.Python
IV. Rur-ple
V. Scratch
4
1. Algorithmes de recherche
P. Tech
• Sur des structures de données usuelles comme les listes, les tables
ou les arbres.
• Il faut cependant savoir retrouver les données dans ces structures.
• Structurer les données est indispensable pour les manipuler dans
les programmes.
• il existe des algorithmes bien connus que l'on peut facilement
mettre en œuvre et qui exploitent les propriétés de la structure de
données
5
1. Algorithmes de recherche
P. Tech
6
1. Algorithmes de recherche
P. Tech
A. Recherche séquentielle B. Recherche du nombre d'occurrences
7
1. Algorithmes de recherche
P. Tech
A. Recherche séquentielle B. Recherche du nombre d'occurrences
7 9 1 2 5 3 8 0 4 6
3 3 3 3 3 3
9
1. Algorithmes de recherche
P. Tech
A. Recherche séquentielle B. Recherche du nombre d'occurrences
10
1. Algorithmes de recherche
P. Tech
B. Recherche du nombre d'occurrences C. Recherche dans un tableau trié
• Optimisation : si le tableau est trié, on peut s'arrêter plus « tôt »
11
1. Algorithmes de recherche
P. Tech
C. Recherche dans un tableau trié D. Divide ut imperes
• Principe diviser pour régner : on découpe les données en
différentes parties qu’on traite séparément.
13
1. Algorithmes de recherche
P. Tech
C. Recherche dans un tableau trié E. Recherche dichotomique
14
1. Algorithmes de recherche
P. Tech
C. Recherche dans un tableau trié E. Recherche dichotomique
15
1. Algorithmes de recherche
P. Tech
E. Recherche dichotomique F. Recherche par interpolation
Supposons que nous ayons un tableau trié A[] contenant n éléments et que nous
voulons trouver un élément donné X.
1. Set lo = 0 , mid= -1 et hi = 8.
2. Calculer mid comme 6 en utilisant la formule :
0 + (18 - 1)*(8 - 0)/(21-1)
3. Ensuite, nous comparons A[6] avec X pour voir qu’il est plus petit et nous
fixons lo comme 7.
4. Calculer mid en utilisant:
7 + (18 - 18)*(8 - 7)/(21 - 18).
5. Ensuite, on compare A[7] avec X pour voir qu’il est égal à 18 et on
obtient l’indice 7.
18
1. Algorithmes de recherche
P. Tech
E. Recherche dichotomique F. Recherche par interpolation
La recherche d'élément parait plus efficace dans les tableaux triés. Il est donc
intéressant de pouvoir tester si un tableau est trié et, si ce n'est pas le cas, de
pouvoir le trier.
Tester si un tableau est trié par ordre croissant : on s'assure que chaque
case(sauf la dernière) a un contenu plus petit que celui de la case
suivante.
20
2. Tableau trié
P. Tech
A. Tableau trié
Optimisation : on peut s'arrêter dès qu'on trouve deux éléments qui ne sont
pas dans le bon ordre.
21
2. Tableau trié
P. Tech
A. Tableau trié
Le problème est de placer les éléments d'une structure linéaire dans l'ordre
• les éléments doivent pouvoir être comparés
• on peut trier par ordre croissant ou décroissant
• si la structure a plusieurs dimensions, on peut trier chaque dimension
22
2. Tableau trié
P. Tech
A. Tableau trié B. Tri en place
23
2. Tableau trié
P. Tech
B. Tri en place C. Stabilité d'un tri
tri stable : L'algorithme ne modifie pas l'ordre initial des éléments égaux
24
2. Tableau trié
P. Tech
C. Stabilité d'un tri D. Tri à bulle
Principe
La stratégie de cet algorithme est :
1. Parcourir le tableau en comparant deux à deux les éléments
successifs, permuter s'ils ne sont pas dans l'ordre
2. Répéter tant que des permutations sont effectuées.
Le plus petit remonte
en surface
1 i n
t
Les i-1 premiers Les éléments
éléments déjà triés Niveau 0 non triés
25
2. Tableau trié
P. Tech
C. Stabilité d'un tri D. Tri à bulle
Exemple
On veut trier les éléments:
42, 20, 17, 13, 28, 14, 23 et 15
i=1 i=2
k=8 k=7 k=6 k=5 k=4 k=3 k=2 k=8 k=7 k=6 k=5 k=4 k=3
42 42 42 42 42 42 42 13 13 13 13 13 13 13
20 20 20 20 20 20 13 42 42 42 42 42 42 14
17 17 17 17 17 13 20 20 20 20 20 20 14 42
13 13 13 13 13 17 17 17 17 17 17 14 20 20
28 28 28 14 14 14 14 14 14 14 14 17 17 17
14 14 14 28 28 28 28 28 28 15 15 15 15 15
23 15 15 15 15 15 15 15 15 28 28 28 28 28
15 23 23 23 23 23 23 23 23 23 23 23 23 23
2. Tableau trié
P. Tech
C. Stabilité d'un triTri D. Tri à bulle
Exemple
Même exemple
i=3 i=4
k=8 k=7 k=6 k=5 k=4 k=8 k=7 k=6 k=5
13 13 13 13 13 13 13 13 13 13 13
14 14 14 14 14 14 14 14 14 14 14
42 42 42 42 42 15 15 15 15 15 15
20 20 20 20 15 42 42 42 42 42 17
17 17 17 15 20 20 20 20 20 17 42
15 15 15 17 17 17 17 17 17 20 20
28 23 23 23 23 23 23 23 23 23 23
23 28 28 28 28 28 28 28 28 28 28
2. Tableau trié
P. Tech
C. Stabilité d'un triTri D. Tri à bulle
Exemple
Même exemple
Implémentation
Principe
Répéter
1. chercher le plus grand (le plus petit) élément => Sélection
2. le mettre à la fin (au début)
1 i n
t
Les i-1 petits Le plus petit
éléments triés élément du reste
2. Tableau trié
P. Tech
D. Tri à bulle E. Tri par Sélection
Exemple
Principe
1 i n
t
Les i-1 premiers Eléments Les éléments
éléments déjà triés à insérer non triés
2. Tableau trié
P. Tech
E. Tri par Sélection F. Tri par insertion
Exemple
L'algorithme de tri par insertion donné ici est en place et stable (il serait
instable si on utilisait ≥ au lieu de >).
Le tri par sélection nécessite en moyenne de l'ordre de n²/2 comparaisons,
n étant la taille du tableau : on fera d'abord n-1 tours de la boucle pour,
puis n-2, et ainsi de suite jusqu'à 1.
Le tri par insertion nécessite en moyenne de l'ordre de n²/4 comparaisons
et déplacements : placer le ième élément demande en moyenne i/2
comparaisons.
Le tri par insertion est donc environ deux fois plus rapide que le tri par
sélection.
2. Tableau trié
P. Tech
Efficacité des tris à bulle, par sélection et par insertion
Principe
Inventé en 1960 par Sir Charles Antony Richard Hoare
Consiste à:
Choisir un élément « pivot »
Diviser l’ensemble à deux sous-ensembles
Répéter la procédure récursivement
pivot
Éléments inférieurs Éléments
1 au pivot supérieurs au pivot n
t
Pivot’ Pivot’’
2. Tableau trié
P. Tech
H. Tri fusion H. Tri Rapide
Exemple
20 17 13 28 14 23 15 42
15 20 17 13 28 14 23
15 20 17 13 28 14 23
15 20 17 13 28 14 23
15 20 17 13 28 14 23
15 20 17 13 28 14 23
15 20 17 13 28 14 23
15 20 17 13 28 14 23 42
2. Tableau trié
P. Tech
H. Tri fusion H. Tri Rapide
Exemple
20 17 13 28 14 23 42 15
20 17 13 28 14 23 42
14 20 17 13 28 23 42
14 17 13 28 20 23 42
14 17 13 28 20 23 42
14 13 17 28 20 23 42
14 13 15 17 28 20 23 42
2. Tableau trié
P. Tech
H. Tri fusion H. Tri Rapide
Exemple
14 13 15 28 20 23 42 17
13 14 15 28 20 23 42
13 14 15 28 20 23 42
13 14 15 17 28 20 23 42
13 14 15 17 20 23 42 28
13 14 15 17 23 20 42
13 14 15 17 23 20 28 42
2. Tableau trié
P. Tech
H. Tri fusion H. Tri Rapide
2. Tableau trié
P. Tech
H. Tri fusion H. Tri Rapide
Implémentation
Fonction indicePivot=partitionner(tableau T, entier premier, entier dernier,
entier pivot)
échanger T[pivot] et T[dernier] // échange le pivot avec le dernier du tableau ,
le pivot devient le dernier du tableau
j := premier
pour i de premier à dernier - 1 // la boucle se termine quand i = (dernier-1).
si T[i] <= T[dernier] alors
échanger T[i] et T[j]
j := j + 1
échanger T[dernier] et T[j]
renvoyer j
51