Déroulement Algorithmes et structures de données Cours 1 et 2 Patrick Reuter http://www.labri.fr/~preuter/asd2009 CM mercredi de 8h00 à 9h00 (Amphi Bât. E, 3 ème étage) ED - Groupe 3 : mercredi, 10h30 12h00 (Bât. G, salle 20) - Groupe 1 : mercredi, 13h30 15h00 (DLC LC4) - Groupe 2 : mercredi, 15h15 16h45 (DLC LC4) Jérôme Baril (en alternance: salle TD et salle machine) Evaluation 2 contrôles continu Préambule Définition L'informatique désigne l'automatisation du traitement de l'information par un système, concret (machine) ou abstrait. Définition L'informatique désigne l'automatisation du traitement de l'information par un système, concret (machine) ou abstrait. 1
C est ça? Avant. Maintenant. Définition L'informatique désigne l'automatisation du traitement de l'information par un système, concret (machine) ou abstrait. Automatisation Automatisation Exemple : Une punition genre 2
Automatisation Programmation d un site web Exemple : Une punition genre Automatisation $i = 1; while ($i <= 10) { $i = $i + 1; } Niklaus Wirth, ETH Zuerich, 1976 «Algorithms + Data Structures = Programs» Exemple Structure de données Trouver un numéro dans un annuaire par nom donnée 3
Exemple Trouver un nom dans un annuaire par numéro donnée Définition Structure de données 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. > 1,000,000,000,000 pages Comment ça marche? Structure de donnée: p.ex. fantôme - couleur - position - direction - aggressif ou pas? Algorithmes: Source : http://googleblog.blogspot.com/2008/07/we-knew-web-was-big.html p.ex. mettre a jour le meilleur score Structure de donnée: - tableau a 2 dimension Structure de donnée : File Algorithmes: - surtout I.A. FIFO (First In First Out) Aussi: File à priorité 4
Structure de donnée : Pile LIFO (Last In First Out) Structure de donnée : Arbre (pour l élimination des parties cachées) Structure de donnée : Graphe (pour plannifier des trajets) Définitions Algorithme L'algorithmique est la science des algorithmes, visant à étudier les opérations nécessaires à la réalisation d'un calcul. René Descartes dans le 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.». Algorithme 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. 5
Algorithme L algorithme constitue alors la brique de base d'un programme informatique Programme La mise en œuvre de l'algorithme consiste en l'écriture de ces opérations dans un langage de programmation Algorithme et programmes Algorithme Moyen d atteindre un but en répétant un nombre fini de fois un nombre fini d instructions. Donc, un algorithme se termine en un temps fini. Programme Un programme est la traduction d un algorithme en un langage compilable ou interprétable par un ordinateur. Détailler l'algorithme L'algorithme devra être plus ou moins détaillé selon le niveau d'abstraction du langage utilisé une recette de cuisine doit être plus ou moins détaillée en fonction de l'expérience cuisinier. Les Algorithmes Variables Appel de fonction Structure de contrôle Bloc d'instruction Branchements conditionnels Branchements conditionnels (multiples) Boucles 6
Variables se caractérisent par leur nom et leur type Variables : nom des variables nombre y i patrick x1 Mais non pas : 3x entrée while Variables : type des variabes Nombre entier (p.ex. 5) Nombre à virgule flottant (p.ex. 5.12) Caractère (p.ex. c ) Chaîne de caractères (p.ex. "salut") Vrai/faux (p.ex. TRUE, FALSE) Variables Appel de fonction Structure de contrôle Bloc d'instruction Branchements conditionnels Branchements conditionnels (multiples) Boucles a = 7 points= 0 points= points+ 100 points= points+ 100 fini = FAUX - Note: - Affectation d une seule variable avec une valeur. - La variable à affecter figure à gauche, la valeur à droite Faux: a+b = 6 7 = c Opérateurs Opérateurs numériques : +, -, *, / % : modulo (reste de la division) Multiplication/division prioritaire Parenthèses Opérateurs alphanumériques : concatenation + ex. prenom = "William" nomdefamille = "Simonet" nomcompose = prenom+" "+nomdefamille Opérateurs booléennes : ET, OU, NON, XOR logique 7
a = 10%3 nom = prenom + nom x = a AND b Variables Appel de fonction Structure de contrôle Bloc d'instruction Branchements conditionnels Branchements conditionnels (multiples) Boucles a == 7 absent == FAUX malade == VRAI OU vacances == VRAI score > highscore a = 7 x = (a==7) - Notez: - Le ==!! - Le résultat d une condition/comparaison peut être uniquement soit VRAI, soit FAUX a == 7 absent == FAUX malade == VRAI OU vacances == VRAI score > highscore - Notez: - Le ==!! - Le résultat d une condition/comparaison peut être uniquement soit VRAI, soit FAUX 8