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

Algorithmes et structures de données Patrick Reuter maître de conférences

Présentations similaires


Présentation au sujet: "Algorithmes et structures de données Patrick Reuter maître de conférences"— Transcription de la présentation:

1 Algorithmes et structures de données Patrick Reuter maître de conférences

2 Déroulement CM mardi de 11h15 à 12h15 TD/TP en alternance - Groupe YB (Yonel Blanc) le mardi de 16h15 à 17h45 - Groupe PR (Patrick Reuter) le mercredi de 18h30 à 20h00

3 Motivation Niklaus Wirth, ETH Zuerich, 1976 « Algorithms + Data Structures = Programs »

4 Motivation pages Comment ça marche ?

5 Motivation Structure de donnée: p.ex. fantôme - couleur - position - direction - aggressif ou pas ? Algorithmes: p.ex. mettre a jour le meilleur score

6 Motivation Structure de donnée: - tableau a 2 dimension Algorithmes: - surtout I.A.

7 Motivation Structure de donnée : File FIFO (First In First Out) Aussi: File à priorité

8 Motivation Structure de donnée : Pile LIFO (Last In First Out)

9 Motivation Structure de donnée : Arbre (pour lélimination des parties cachées)

10 Motivation Structure de donnée : Graphe (pour plannifier des trajets)

11 Algorithme Définition Wikipedia (12/9/2005) L'algorithmique est la science des algorithmes, visant à étudier les opérations nécessaires à la réalisation d'un calcul. René DescartesRené Descartes dans le Discours de la Méthode :Discours de la Méthode « diviser chacune des difficultés que j'examinerois, en autant de parcelles qu'il se pourroit, et qu'il seroit requis pour les mieux résoudre. ». Un algorithme est une méthode de résolution de problème énoncée sous la forme d'une série d'opérations à effectuer.méthode La mise en œuvre de l'algorithme consiste en l'écriture de ces opérations dans un langage de programmation et constitue alors la brique de base d'un programme informatique (implémentation, « codage »)langage de programmation L'algorithme devra être plus ou moins détaillé selon le niveau d'abstraction du langage utilisé ; autrement dit, une recette de cuisine doit être plus ou moins détaillée en fonction de l'expérience du cuisinier.

12 Structure de données Définition Wikipedia (12/9/2005) une structure logique destinée à contenir des données afin de leur donner une organisation permettant de simplifier leur traitement. Exemple : On peut présenter des numéros de téléphone * - par département, - par nom - par profession (pages jaunes), - par numéro téléphonique (annuaires destinés au télémarketing), - par rue et/ou - une combinaison quelconque de ces classements. À chaque usage correspondra une structure d'annuaire appropriée.

13 Ingrédients dalgorithmes Variables : nombre y i patrick x1 Mais non pas : 3x entrée

14 Ingrédients dalgorithmes Affectation Condition/Comparaison Appel de fonction Structure de contrôle –Branchements conditionnels (multiples) –Boucles Bloc dinstruction

15 Ingrédients dalgorithmes Affectation a := 7; score := 0; score := score + 100; gameover := FAUX; -Note: -Affectation dune seule variable avec un valeur. -La variable à affecter figure à gauche, la valeur à droite Faux: a+b := 6; 7 := c;

16 Ingrédients dalgorithmes Condition/Comparaison a = 7 absent = FAUX malade = VRAI OU vacances = VRAI score > highscore; … -Note: -Le résultat dune condition/comparaison peut être uniquement soit VRAI, soit FAUX

17 Ingrédients dalgorithmes Appel de fonction, p.ex. afficher(« Bonjour tout le monde »); resultat := racine_carre(16);

18 Ingrédients dalgorithmes Structure de contrôle –Branchements conditionnels SI ALORS SINON

19 Ingrédients dalgorithmes Structure de contrôle –Branchements conditionnels SI ALORS SINON Exemple: SI (score>meilleur_score) ALORS meilleur_score := score;

20 Ingrédients dalgorithmes Structure de contrôle –Branchements conditionnels SI ALORS SINON Exemple: SI (score>meilleur_score) ALORS meilleur_score := score; En PASCAL : IF (score>meilleur_score) THEN meilleur_score := score;

21 Ingrédients dalgorithmes Structure de contrôle –Branchements conditionnels multiples –CAS mois DE 1': nom := « Janvier » ; 2': nom := « Février » ; 3': nom := « Mars » ; 4': nom := « Avril » ; 5': nom := « Mai » ; …. 12': nom := « Décembre » ; AUTREMENT afficher('Erreur dans le mois') ; FIN CAS;

22 Ingrédients dalgorithmes Structure de contrôle –Boucle Définition : Suite dinstructions qui peut être exécuté plusieurs fois (itération)

23 Ingrédients dalgorithmes Structure de contrôle –Boucle TANT QUE FAIRE FIN TANT QUE ou FAIRE TANT QUE

24 Ingrédients dalgorithmes Structure de contrôle –Boucle TANT QUE FAIRE FIN TANT QUE Exemple : Afficher les nombres entiers dont le carré est inférieur à 100. nombre := 1; TANT QUE (nombre*nombre<100) FAIRE afficher(nombre); nombre := nombre + 1; FIN TANT QUE

25 Faire tourner un algorithme

26 nombre := 1; nombrecarre := nombre * nombre; TANT QUE (nombrecarre<100) FAIRE afficher(nombre); nombre := nombre + 1; nombrecarre := nombre * nombre; FIN TANT QUE nombre nombrecarre Chaque variable une colonne

27 nombre := 1; nombrecarre = nombre * nombre; TANT QUE (nombrecarre<100) FAIRE afficher(nombre); nombre := nombre + 1; nombrecarre := nombre * nombre; FIN TANT QUE nombre 1 nombrecarre Chaque instruction une ligne

28 nombre = 1; nombrecarre = nombre * nombre; TANT QUE (nombrecarre<100) FAIRE afficher(nombre); nombre = nombre + 1; nombrecarre = nombre * nombre; FIN TANT QUE nombre 1 nombrecarre 1

29 nombre = 1; nombrecarre = nombre * nombre; TANT QUE (nombrecarre<100) FAIRE afficher(nombre); nombre = nombre + 1; nombrecarre = nombre * nombre; FIN TANT QUE nombre 1 nombrecarre 1

30 nombre = 1; nombrecarre = nombre * nombre; TANT QUE (nombrecarre<100) FAIRE afficher(nombre); nombre = nombre + 1; nombrecarre = nombre * nombre; FIN TANT QUE nombre 1 nombrecarre 1 1

31 nombre = 1; nombrecarre = nombre * nombre; TANT QUE (nombrecarre<100) FAIRE afficher(nombre); nombre = nombre + 1; nombrecarre = nombre * nombre; FIN TANT QUE nombre 1 2 nombrecarre 1 1

32 nombre = 1; nombrecarre = nombre * nombre; TANT QUE (nombrecarre<100) FAIRE afficher(nombre); nombre = nombre + 1; nombrecarre = nombre * nombre; FIN TANT QUE nombre 1 2 nombrecarre 1 4 1

33 nombre = 1; nombrecarre = nombre * nombre; TANT QUE (nombrecarre<100) FAIRE afficher(nombre); nombre = nombre + 1; nombrecarre = nombre * nombre; FIN TANT QUE nombre 1 2 nombrecarre 1 4 1

34 nombre = 1; nombrecarre = nombre * nombre; TANT QUE (nombrecarre<100) FAIRE afficher(nombre); nombre = nombre + 1; nombrecarre = nombre * nombre; FIN TANT QUE nombre nombrecarre

35 nombre = 1; nombrecarre = nombre * nombre; TANT QUE (nombrecarre<100) FAIRE afficher(nombre); nombre = nombre + 1; nombrecarre = nombre * nombre; FIN TANT QUE nombre nombrecarre

36 nombre = 1; nombrecarre = nombre * nombre; TANT QUE (nombrecarre<100) FAIRE afficher(nombre); nombre = nombre + 1; nombrecarre = nombre * nombre; FIN TANT QUE nombre nombrecarre

37 Ingrédients dalgorithmes Structure de contrôle –Boucle FAIRE TANT QUE

38 Ingrédients dalgorithmes Structure de contrôle –Boucle FAIRE jouer(); afficher(« Voulez vous rejouer (O/N) ? »); prendreDuClavier(charactere); TANT QUE (caractere= "O" OU caractere = "o");

39 Ingrédients dalgorithmes Structure de contrôle –Boucle POUR POUR variable de valeur à valeur FAIRE FIN POUR

40 Ingrédients dalgorithmes Structure de contrôle –Boucle POUR POUR variable de valeur à valeur FAIRE FIN POUR Exemple POUR i:=1 à 10 FAIRE afficher(i); afficher(i*i); FIN POUR

41 « FAIRE TOURNER » un algorithme Exemple: Tester si un nombre est premier Stratégie: Supposer que le nombre est premier jusquà on a trouvé un diviseur. FONCTION estPremier(nombre) estPremier := VRAI; Diviseur := 2; TANT QUE diviseur

42 FONCTION testSiPremier(nombre) : boolean; estPremier : = VRAI; Diviseur : = 2; TANT QUE diviseur

43 FONCTION testSiPremier(nombre) : boolean; estPremier : = VRAI; Diviseur : = 2; TANT QUE diviseur

44 FONCTION testSiPremier(nombre) : boolean; estPremier : = VRAI; Diviseur : = 2; TANT QUE diviseur

45 FONCTION testSiPremier(nombre) : boolean; estPremier : = VRAI; Diviseur : = 2; TANT QUE diviseur

46 FONCTION testSiPremier(nombre) : boolean; estPremier : = VRAI; Diviseur : = 2; TANT QUE diviseur

47 FONCTION testSiPremier(nombre) : boolean; estPremier : = VRAI; Diviseur : = 2; TANT QUE diviseur

48 FONCTION testSiPremier(nombre) : boolean; estPremier : = VRAI; Diviseur : = 2; TANT QUE diviseur

49 FONCTION testSiPremier(nombre) : boolean; estPremier : = VRAI; Diviseur : = 2; TANT QUE diviseur

50 FONCTION testSiPremier(nombre) : boolean; estPremier : = VRAI; Diviseur : = 2; TANT QUE diviseur

51 FONCTION testSiPremier(nombre) : boolean; estPremier : = VRAI; Diviseur : = 2; TANT QUE diviseur

52 FONCTION testSiPremier(nombre) : boolean; estPremier : = VRAI; Diviseur : = 2; TANT QUE diviseur

53 FONCTION testSiPremier(nombre) : boolean; estPremier : = VRAI; Diviseur : = 2; TANT QUE diviseur

54 FONCTION testSiPremier(nombre) : boolean; estPremier : = VRAI; Diviseur : = 2; TANT QUE diviseur

55 FONCTION testSiPremier(nombre) estPremier : = VRAI; Diviseur : = 2; TANT QUE diviseur

56 FONCTION testSiPremier(nombre) estPremier = VRAI; Diviseur = 2; TANT QUE diviseur


Télécharger ppt "Algorithmes et structures de données Patrick Reuter maître de conférences"

Présentations similaires


Annonces Google