La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

ALGORITHMIQUE Plan du cours -Généralités -définition -importance -analyse dun problème -représentation arborescente -Algorithmes simples -la séquence -lalternative.

Présentations similaires


Présentation au sujet: "ALGORITHMIQUE Plan du cours -Généralités -définition -importance -analyse dun problème -représentation arborescente -Algorithmes simples -la séquence -lalternative."— Transcription de la présentation:

1 ALGORITHMIQUE Plan du cours -Généralités -définition -importance -analyse dun problème -représentation arborescente -Algorithmes simples -la séquence -lalternative -la répétition (boucle itérative) -la récursivité

2 Plan du cours (suite) -Algorithmes complexes : les tris -tri par sélection -tri par insertion -tri bulle -évaluation de la complexité dun tri -tri rapide (quicksort) -tri par fusion -Structures de données linéaires -les tableaux -les listes chaînées

3 Plan du cours (suite) -Structures de données avec embranchement - les arbres -Méthodes de recherche -séquentielle -dichotomique -par arbre binaire -par table de symboles -par adressage dispersé (hachage)

4 Généralités Algorithme = suite dopérations nécessaires et suffisantes à laccomplissement dune tâche Exemples : -résoudre léquation du second degré -assembler un produit fini -organiser une expédition

5 Etapes pour résoudre un problème sur ordinateur 1.Analyse du problème (langage courant ) 2.Conception de lalgorithme (pseudo-langage ou organigramme ) 3.Ecriture du programme (langage informatique - C, Pascal etc)

6 Schéma des étapes Problème à résoudre Algorithme Programme source saisie (clavier)

7 Analyse du problème à résoudre Analyse descendante : diviser le problème en éléments simples Analyse ascendante : composer le problème à partir déléments simples

8 Etapes de lanalyse descendante - Diviser le problème en sous-problèmes de moindre difficulté -Continuer la division jusquaux opérations élémentaires -Marquer à chaque division la filiation

9 Schéma danalyse descendante

10 Arbre danalyse descendante racine (problème posé)

11 Algorithmes simples : -La séquence -Lalternative (la sélection) -La répétition - litération - la récursivité

12 La séquence Suites détapes parcourues successivement action 1 action 2 action n organigramme énoncés énoncé 1 énoncé 2. énonce n

13 Exemple dalgo séquentiel Afficher le carré dun nombre lire V P V*V écrire P Énoncés: Var V, P : ENTIER Lire V P V*V Écrire P = affectation

14 Etapes de la séquence 1.Étapes traitées une par une. 2.Chaque étape une seule fois (pas de répétitions ou domissions). 3. Lordre dexécution = lordre décriture. 4. La dernière étape finit lalgorithme.

15 Caractéristiques de la séquence Structure algorithmique primitive : -rigide -déroulement fixe -ne permet pas des choix

16 La sélection ou lalternative Algorithme qui permet une ou plusieurs alternatives SI « test » vrai ALORS action 1 SINON action 2 Permet un choix entre les deux actions.

17 La sélection imbriquée Si « test 1 » ALORS « action 1» SINON SI « test 2 » ALORS « action 2 » SINON « action 3 »

18 Exemple : choix du plus grand nombre X > Y ? X > Z ? Y > Z ? Choisir X Choisir ZChoisir Y Choisir Z test si non comparer Y et Z si oui comparer X et Z Arbre de raisonnement

19 Types dalternatives à une branche à deux branches à plusieurs branches test test 1 test énoncé vrai faux énoncé 1 énoncé 2 action test 2test 3

20 Les boucles itératives Algorithme répétitif à boucle du type 1. TANT QUE (while) 2.JUSQUÀ CE QUE (until) 3.POUR (for) 1&2 : répétitions indéfinies (nombre inconnu de rép.) 3 : répétitions définies (nombre connu de répétitions)

21 Représentations graphiques test énoncé faux vrai TANT QUE le test est vrai répéter lénoncé (le test AVANT lénoncé) répéter lénoncé JUSQUÀ ce que la condition soit vraie (le test APRES lénoncé) vrai faux

22 La boucle « pour » (for) Répétition gérée par un compteur Forme générale: REPETER N fois (N donné) un corps de boucle Exemple: calcul de la factorielle var N, F, I, : ENTIER lire N [N >= 0] F 1 Si N > 0 alors pour I variant de 1 à N répéter F F*I écrire F

23 Algorithmes imbriqués (alternative + répétition) EX :Nombre de notes supérieures à dix et supérieures à 18 sur un total connu 1.Ecris: « Quel est le nombre total de notes ? » Lis Nombre En SUP10 RANGE 0 //Initialisation EN SUP18 RANGE 0 //des compteurs 2./*Traitement */ TANT QUE NOMBRE > 0 REPETE (2.1) ECRIS « Tapez une note » LIS NOTE SI NOTE > 10

24 Suite : …ALORS (2.1.1) EN SUP10 RANGE (SUP10 + 1) SI NOTE > 18 ALORS ( ) EN SUP18 RANGE (SUP18 + 1) SINON RIEN EN NOMBRE RANGE NOMBRE – 1 3. /* Edition des résultats */ ECRIS « Le nombre de notes supérieures à 10 est », SUP10 ECRIS « Le nombre de notes supérieures à 18 est », SUP18

25 La récursivité Concept fondamental: -en mathématique: relation de récurrence -en informatique : procédures récursives Algorithme récursif: -qui sappelle lui-même -appels de plus en plus « simples » -le dernier appel a une solution directe (=condition darrêt)

26 Exemple: la factorielle Définition récurrente: N! = N(N – 1)! Pour N>=1 avec 0! = 1 Algorithme récursif: SI N = 0 ALORS réponse = 1 SINON réponse = N*fact(N – 1)

27 Exemple: 3! 3 * Fact (2) 3 * 2 = 6 empiler 2 * Fact (1) 2 * 1 = 2 dépiler 1 * Fact (0) 1 * 1 = 2 = 1 retour dans la Pile Fonctionnement de la pile: LIFO (Last In First Out)

28 Types de stratégies récursives -ascendante -descendante -par divisions successives Exemple: Somme des carrés des nombres de m à n Somme (m, n) = m² + (m+1)² +….+ n² Somme (5, 10) = 5² + 6² + 7² + 8² + 9² + 10²

29 Algo récursif ascendent SI lintervalle m:n comprend plus dun nombre ALORS ajouter m² à la somme des carrés dans lintervalle (m+1): n SINON la solution est m² Somme (5, 10) = 25 + somme (6, 10) 36 + somme (7, 10) empile 49 + somme (8, 10) 64 + somme (9, 10) dépile: 81 + somme (10, 10) =

30 Algo récursif descendant SI lintervalle m:n comprend plus dun nombre ALORS ajouter n² à la somme des carrés dans lintervalle m: (n-1) SINON la solution est n² Somme (5, 10) = somme (5, 9) 81 + somme (5, 8) empile 64 + somme (5, 7) 49 + somme (5, 6) dépile: 36 + somme (5, 5) =355 25

31 Algorithme récursif par divisions SI lintervalle m:n comprend plus dun nombre ALORS relancer la somme sur les intervalles: m:demi et (demi+1):n avec demi = (m+n)/2 SINON la solution est m²

32 Arbre de lalgo par divisions 355 somme (5, 10) somme(5, 7) somme(8,10) somme(5,6) somme(7,7) somme(8,9) somme(10,10) somme(5,5) somme(6,6) somme(8,8) somme(9,9)

33 Inversion de chaîne Exemple: STARRATS Lidée de base: -enlever la première lettre : TAR -inverser le reste du mot : RAT -ajouter la lettre enlevée : RATS Lalgorithme récursif : SI chaîne formée dune seule lettre ALORS lécrire SINON ôter première lettre inverser le reste ajouter la lettre ôtée

34 Etapes de linversion SI « star » contient une lettre ALORS lécrire SINON ôter « s » on empile « s » inverser « tar » SI « TAR » contient une lettre ALORS…. SINON ôter « t » on empile « t » inverser « ar » Dépile (LIFO): SI « ar » contient une lettre ALORS… SINON ôter « a » on empile « a » RATS inverser « r » SI « r » contient une lettre ALORS lécrire on empile « r »

35 Les chaînes de caractères Chaîne = suite de lettres, chiffres ou autres symboles Ex: Lannée 2001 espace blanc = caractère Chaînes constantes: ne peuvent être modifiées (ex: "entrez un nombre" ) Chaînes variables : accepte divers contenus (identificateur précédé de #) Ex: En #SOMME range "5 + 8" identific chaîne non calculable Déclaration : Chaîne Somme(3)

36 Opérations sur les chaînes -La concatenation (symbole | ) en #CH range #CH1 | #CH2 (CH contient CH1 et CH2 mises bout à bout) -Traitement des sous-chaînes en #CH1 range #CH2 (5,3) (CH1 contient la sous-chaîne de longueur 3 qui débute au caractère 5 de CH2) -Comparaison de chaînes (par ordre alphabétique): "beau" < "car" "beau" > "bas"

37 Les tableaux structures de données linéaires 1. Les tableaux à une dimension (vecteurs) Suite déléments de même nature ayant un identificateur commun (nom) vecteur Tab (N) tableau à N éléments (Tab = identificateur) Tab = (Tab(1), Tab(2),….,Tab(N) 1, 2, …,N = indices Exemple: vecteur mois (12) __________________________________________________________ |31|_28_|_31_|_30_|_31_|_30_|_31_|_31_|_30_|_31_|_30_|_31_|_______ ……………………………………….. 12 (indices) mois = (31, 28, 31,……………………31) mois (2) = 28 mois (12) = 31

38 Comptage des éléments nuls dun tableau Analyse 1.Lecture des N éléments du tableau 2.Commencer par le 1er élément du tableau TANT QUE tous les éléments nont pas été examinés Répète (2.1) Si le i-ème élément est nul ALORS (2.1.1) le comptabiliser SINON rien Passer à lélément suivant Algorithme 1.Préparation ECRIS « Donnez le nombre déléments du tableau » LIS N VECTEUR TAB (N) //déclaration du tableau ECRIS « Donnez les éléments du tableau » LIS TAB

39 Suite de lalgorithme 2. COMPTE 0 //initialisation des variables I 1 //I et COMPTE TANT QUE I <= N REPETE (2.1) SI TAB (I) = 0 ALORS (2.1.1 COMPTE COMPTE + 1 SINON rieN I I ECRIS « Il y a », COMPTE, « éléments nuls »

40 Tableaux à deux dimensions ( matrice) Eléments de même nature arrangés en lignes et colonnes matrice Mat (L,C) L = nombre de lignes C = nombre de colonnes Mat (1,1) Mat (1,2) ………….Mat (1,C) Mat (2,1) Mat (2,2)…………..Mat (2,C) Mat (3,1)………... Mat (L, 1)………………………Mat (L,C) Mat (3,5) = élément de la 3ème ligne et 5ème colonne


Télécharger ppt "ALGORITHMIQUE Plan du cours -Généralités -définition -importance -analyse dun problème -représentation arborescente -Algorithmes simples -la séquence -lalternative."

Présentations similaires


Annonces Google