Telechargé par Hassan Essadik

Cours -Algo3

publicité
Introduction
Tableaux à une dimension
Tableaux à deux dimensions
Algorithmes de recherche
Algorithmes de tri
Introduction
Tableaux à une dimension
Tableaux à deux dimensions
Algorithmes de recherche
Algorithmes de tri
Problème:
Solutions (algorithmes de tri):
Opérations de bases:
Dans ce cours
nous allons
étudier ces 3
algorithmes de tri.
69
Introduction
Tableaux à une dimension
Tableaux à deux dimensions
Algorithmes de recherche
Algorithmes de tri
70
Introduction
Exemple:
Tableaux à une dimension
Tableau de départ
Tableaux à deux dimensions
Algorithmes de recherche
Algorithmes de tri
0
1
2
3
4
5
6
7
8
9
16
3
11
20
19
1
8
5
2
17
1
3
11
16
8
5
2
17
8
5
3
17
8
5
11
17
16
17
19
20
Echange
Fonctionnement:
Le plus petit c’est N[5], on l’échange avec N[0]
20
19
Echange
Le plus petit c’est N[8],on l’échange avec N[1]
1
2
11
20
19
16
Echange
Le plus petit c’est N[8],on l’échange avec N[2]
1
2
3
20
19
16
Echange
On reprend ces même opérations …
Résultat
71
1
2
3
5
8
11
72
18
Introduction
Tableaux à une dimension
Tableaux à deux dimensions
Algorithmes de recherche
Algorithmes de tri
Introduction
73
Tableaux à une dimension
Tableaux à deux dimensions
Algorithmes de recherche
Algorithmes de tri
Tableaux à deux dimensions
Algorithmes de recherche
Algorithmes de tri
Algorithme TriParInsertion
Variables
dim,i,j: Entier
Deplacer: Booléen
Tmp, N[]: Réels
Début
….
Pour i ← 1 A dim-1
Deplacer←Vrai
j←i
TantQue ((j >0) AND (Deplacer))
Si(N[j] < N[j-1]) Alors
Tmp ←N[j]
N[j] ←N[j-1]
N[j-1] ←Tmp
Sinon Deplacer ←Faux
FinSI
j-FinTantQue
FinPour
Fin
Algorithme TriSelection
Variables
dim,i,j,indicePetit : Entier
Tmp, N[]: Réels
Début
….
Pour i ← 0 A dim-2
indicePetit ← i
Pour j ← i+1 A dim-1
Si(N[j] < N[indicePetit]) Alors
indicePetit← j
FinSI
FinPour
Tmp ←N[indicePetit]
N[indicePetit] ←N[i]
N[i] ←Tmp
FinPour
Fin
Introduction
Tableaux à une dimension
Introduction
Tableaux à une dimension
Tableaux à deux dimensions
Exemple:
Tableau de départ
74
Algorithmes de recherche
Algorithmes de tri
0
1
2
3
4
5
16
3
11
20
19
18
3
16
11
20
19
18
3
11
16
20
19
18
3
11
16
20
19
18
3
11
16
19
20
18
3
11
16
19
18
20
Si ([0] > N[1]) Alors Permute et indice++
Fonctionnement:
Si (N[1] > N[2]) Alors Permute et indice++
Sinon (N[2] < N[3]) indice++ sans Permute
Si (N[3] > N[4]) Alors Permute et indice++
Si (N[3] > N[4]) Alors Permute et indice++
Il y a des permutations effectuées, alors on reprend ces opérations à partir du
75
1er
indice
76
19
Introduction
Tableaux à une dimension
Tableaux à deux dimensions
Algorithmes de recherche
Algorithmes de tri
Introduction
Tableaux à deux dimensions
Algorithmes de recherche
0
1
2
3
4
5
0
1
2
3
4
5
11
16
19
18
20
3
11
16
18
19
20
3
11
16
19
18
20
3
11
16
18
19
20
3
11
16
18
19
20
3
11
16
18
19
20
3
11
16
18
19
20
3
11
16
18
19
20
3
11
16
18
19
20
Sinon (N[0] < N[1]) indice++ sans Permute
Sinon (N[1] < N[2]) indice++ sans Permute
Sinon (N[1] < N[2]) indice++ sans Permute
3
11
16
19
18
20
3
11
16
19
18
20
3
11
16
18
19
20
Sinon (N[2] < N[3]) indice++ sans Permute
Sinon (N[3] < N[4]) indice++ sans Permute
Si (N[3] > N[4]) Alors Permute et indice++
Sinon (N[4] < N[5]) indice++ sans Permute
Sinon (N[4] < N[5]) indice++ sans Permute
3
11
16
18
19
20
Pas de permutation, alors le tableau est trié, on arrête
Il y a une permutation effectuée, alors on reprend ces opérations à partir du 1er indice
77
Introduction
Tableaux à une dimension
Tableaux à deux dimensions
Algorithmes de tri
3
Sinon (N[0] < N[1]) indice++ sans Permute
Sinon (N[2] < N[3]) indice++ sans Permute
Tableaux à une dimension
Algorithmes de recherche
78
Algorithmes de tri
Les sous-algorithmes
 Introduction
 Définition
Les Fonctions
 Paramètres formels et effectifs
Les Procédures
 Paramètres formels et effectifs
Variables locales et globales
Passage des paramètres
Algorithme TriBulles
Variables
dim,i: Entier
EstTrie: Booléen
Tmp, N[]: Réels
Début
….
EstTrie ←Vrai
TantQue (EstTrie )
EstTrie ←Faux
Pour i ← 0 A dim-1
Si(N[i] > N[i+1]) Alors
Tmp ←N[i]
N[i] ←N[i+1]
N[i+1] ←Tmp
EstTrie ←Vrai
FinSI
FinPour
FinTantQue
Fin
79
20
Les sous-algorithmes
Les Fonctions
Les Procédures
Variables locales et globales
Passage des paramètres
Les sous-algorithmes
Les Fonctions
Les Procédures
Variables locales et globales
Passage des paramètres
Principe de la programmation modulaire:
Pourquoi les sous-programmes?
81
Les sous-algorithmes
Les Fonctions
Les Procédures
Variables locales et globales
Passage des paramètres
82
Les sous-algorithmes
Les Fonctions
Les Procédures
Variables locales et globales
Paramètres
Syntaxe :
Passage des paramètres
Type de retour du résultat
FONCTION NomFonction(Parametre_1 :Type, …, Parametre_n :Type) : Type
Variables
Var1: type_Var1
…
VarN: type_VarN
Variables locales de la fonction
Instructions1
…
InstructionsN
Corps de la fonction
DEBUT
Retourner (valeur)
Résultat retourné
FinFonction
83
84
21
Les sous-algorithmes
Les Fonctions
Les Procédures
Variables locales et globales
Passage des paramètres
Les sous-algorithmes
Exemple:
Il existe deux types de paramètres :
Les Fonctions
Les Procédures
Variables locales et globales
Passage des paramètres
Les Procédures
Variables locales et globales
Passage des paramètres
FONCTION max (x : réel, y: réel ) : réel
Variable
Paramètres formels
z : réel
DÉBUT
Si (x>y) Alors
z ←x
Sinon z ←y
FinSi
Retourner (z)
FinFonction
Lors de l'appel de la fonction
Algorithme MaxDeuxVariables
max les paramètres formels
Variables
seront remplacés par les
a,b: réels
paramètres effectifs.
Début
Ecrire(‘’Saisir deux valeurs’’)
Lire (a,b)
Ecrire (‘’ la plus grande valeur est :’’, max(a,b))
Fin
Paramètres effectifs
85
Les sous-algorithmes
Les Fonctions
Les sous-algorithmes
Les Fonctions
Les Procédures
Variables locales et globales
86
Passage des paramètres
Exercice 1:
A. Écrire une fonction qui retourne le factoriel d'un nombre passé en paramètre;
B. Écrire l'algorithme principal qui demande à l'utilisateur de saisir un nombre Nb puis
calcule et affiche la somme des factoriels entre 0 et Nb en utilisant la fonction de la
question A.
!
Exercice 2:
A. Écrire une fonction qui retourne Vrai si le nombre passé en paramètre est paire sinon
retourne Faux.
B. Écrire l'algorithme principal qui demande à l'utilisateur de saisir un nombre puis affiche s’il
est paire ou impaire en utilisant la fonction de la question A.
87
88
22
Téléchargement