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