INTRODUCTION A L’ALGORITHMIQUE INTRODUCTION A L’ALGORITHMIQUE Sébastien GERGADIER Math Sup TSI L. Richelieu INTRODUCTION A L’ALGORITHMIQUE PLAN DE LA PRESENTATION INTRODUCTION Terminologie et Nécessité. LES VARIABLES Définition d’une variable, Portée d’une variable Les types LES INSTRUCTIONS Lecture, écriture, assignation Les opérateurs Les structures LES FONCTIONS ET PROCEDURES Définitions et Exemples Sébastien GERGADIER Math Sup TSI L. Richelieu Et enfin un exemple : Afficher une pyramide paramétrable de chiffres Annexe : Complexité d’un algorithme INTRODUCTION A L’ALGORITHMIQUE INTRODUCTION 1/4 A QUOI CA SERT L’ALGORITHMIQUE ??? Problème = Son énoncé est sans ambiguïté. Les limites sont bien définies. Ex : Déterminer UN élément de valeur minimum parmi un ensemble d’ ENTIERS. Programme caractérisé par : Un ensemble de données (instance) et un ensemble de résultats. Sébastien GERGADIER Math Sup TSI L. Richelieu Une solution informatique : description d’un ensemble d’actions à exécuter dans un ordre précis et dans un certain langage. INTRODUCTION A L’ALGORITHMIQUE INTRODUCTION 2/4 PRINCIPES METHODOLOGIQUES ABSTRAIRE Retarder le plus possible l’instant du codage; A partir de la spécification du problème, décrire des actions à exécuter dans un langage simple appelé pseudo-code. DECOMPOSER « Diviser chacune des difficultés que j’examinerais en autant de parties qu’il se pourrait et qu’il serait requis pour les mieux résoudre » COMBINER Sébastien GERGADIER Math Sup TSI L. Richelieu Résoudre le problème global par combinaisons successives de solutions de sous problèmes déjà résolus. INTRODUCTION A L’ALGORITHMIQUE INTRODUCTION 3/4 L’ ALGORITHME Description précise du processus de résolution d’un problème bien spécifié. Lisible sans pour autant connaître la syntaxe du langage cible. Séquence ordonnée d’actions qui vont agir sur les données du problème (instance) pour produire le résultat escompté. Quand on additionne 2 entiers, on déroule un algorithme. Sébastien GERGADIER Math Sup TSI L. Richelieu INTRODUCTION A L’ALGORITHMIQUE INTRODUCTION 4/4 Exemple d’algorithme : Saisir des entiers et afficher que les entiers pairs ALGORITHME Sébastien GERGADIER Math Sup TSI L. Richelieu PROGRAMME INTRODUCTION A L’ALGORITHMIQUE LES VARIABLES 1/3 DEFINITION D’UNE VARIABLE Ce sont les objets manipulés et modifiables par l’algorithme. VARIABLES GLOBALES OU LOCALES ? Variables Globales : Ce sont les variables d’entrées et ou de sorties d’une fonction ou procédure. Ces variables ne doivent être utilisées qu’une seule fois. Variables locales : Elles servent à l’intérieur d’une fonction ou d’une procédure. Elles peuvent être réutilisées à volonté, et changent de valeur à chaque utilisation. Sébastien GERGADIER Math Sup TSI L. Richelieu INTRODUCTION A L’ALGORITHMIQUE LES VARIABLES 2/3 Une variable possède nécessairement un nom et un type : Numérique : Type Numérique Plage Codage Byte (octet) 0 à 255 8 bits (octet) Entier simple -32 768 à 32 767 16 bits signé Entier long -2 147 483 648 à 2 147 483 647 32 bits signé -3,40x1038 à -1,40x10-45 pour les valeurs négatives 1,40x10-45 à 3,40x1038 pour les valeurs positives -1,79x10308 à -4,194x10-324 pour valeurs négatives 4,194x10-324 à 1,79x10308 pour les valeurs positives Virgule flottante Réel simple Réel double Virgule flottante Alphanumérique : Egalement appelé caractère ou Chaîne de caractère. En pseudo-code, une chaîne de caractères est toujours notée entre guillemets. Ex : “toto“ Sébastien GERGADIER Math Sup TSI L. Richelieu Booléen : VRAI / FAUX ou TRUE / FALSE ou 0 / 1 INTRODUCTION A L’ALGORITHMIQUE LES VARIABLES 3/3 Le type d’une variable globale doit OBLIGATOIREMENT être définie. En général, avant toute instruction !!!!! Ex : n : Entier L’initialisation n’est pas obligatoire. Ex : x, y = 3 : Réel Il existe beaucoup d’autres types de variables tels que les tableaux, … Sébastien GERGADIER Math Sup TSI L. Richelieu Une variable est un contenant dont le contenu (valeur) va changer au cours de l’algorithme. INTRODUCTION A L’ALGORITHMIQUE LES INSTRUCTIONS 1/2 AFFICHAGE, SAISIE ET ASSIGNATION Affichage : afficher(x+1) Saisie : saisir(n) Assignation : n ← 1 // n prend la valeur 1 i ← i+1 // i prend le valeur précédente incrémenté de 1 y ← x // y prend la valeur de la variable x Remarque : Il va de soi que l’ordre dans lequel les instructions sont écrites va jouer un rôle essentiel dans le résultat final. Considérons les deux algorithmes suivants : Sébastien GERGADIER Math Sup TSI L. Richelieu Variable A en Numérique Début A ← 34 A ← 12 Fin Variable A en Numérique Début A ← 12 A ← 34 Fin INTRODUCTION A L’ALGORITHMIQUE LES INSTRUCTIONS 2/2 LES OPERATEURS : sur des variables numériques : + : addition - : soustraction * : multiplication / : division (ATTENTION !!!!!!!) sur des variables alphanumériques : & : permet de concaténer 2 chaînes de caractères Ex : Sébastien GERGADIER Math Sup TSI L. Richelieu Variables A, B, C en Caractère Début A ← "Mr" C prend la « valeur » B ← "CID" "MrCID" C←A& B Fin sur des variables booléennes : ET , OU, NON, OU EXCUSIF, … INTRODUCTION A L’ALGORITHMIQUE STRUCTURE SEQUENTIELLE Il existe 3 structures de base : Séquentielle; Alternative; Itérative. Remarque : Pour résoudre un « problème complexe », les différentes structures peuvent coexister. Sébastien GERGADIER Math Sup TSI L. Richelieu INTRODUCTION A L’ALGORITHMIQUE STRUCTURE SEQUENTIELLE Sébastien GERGADIER Math Sup TSI L. Richelieu TRES SIMPLE ET PAS BEAUCOUP D’ INTERÊT SEULE INTRODUCTION A L’ALGORITHMIQUE STRUCTURE ALTERNATIVE PERMET D’ EXPRIMER DES DECISIONS ACTION(S) CONDITIONNEE(S) PAR LE TEST D’UNE EXPRESSION BOOLEENNE APPELEE CONDITION CONDITION = COMPARAISON (composée de 3 éléments) - une variable Sébastien GERGADIER Math Sup TSI L. Richelieu - un opérateur de comparaison (=, <>, <, >, =<,=>, …) - une autre variable INTRODUCTION A L’ALGORITHMIQUE STRUCTURE ALTERNATIVE STRUCTURE ALTERNATIVE IMBRIQUEE Variable Temp : Entier Début Ecrire "Entrez la température de l’eau :" Lire Temp Si Temp =< 0 Alors Ecrire "C’est de la glace" Sinon Si Temp < 100 Alors Ecrire "C’est du liquide" Sinon Ecrire "C’est de la vapeur" Finsi Finsi Fin Sébastien GERGADIER Math Sup TSI L. Richelieu INTRODUCTION A L’ALGORITHMIQUE STRUCTURE ALTERNATIVE STRUCTURE ALTERNATIVE GENERALISEE Sébastien GERGADIER Math Sup TSI L. Richelieu INTRODUCTION A L’ALGORITHMIQUE STRUCTURE ITERATIVE 1/3 PERMET DE REPETER UNE ACTION UN CERTAINS NOMBRE DE FOIS Remarque : L’action peut ne jamais être réalisée. Sébastien GERGADIER Math Sup TSI L. Richelieu INTRODUCTION A L’ALGORITHMIQUE STRUCTURE ITERATIVE 2/3 Remarque : L’action est réalisée au moins une fois. Le nombre d’itération n’est pas forcément spécifié à l’avance. Sébastien GERGADIER Math Sup TSI L. Richelieu INTRODUCTION A L’ALGORITHMIQUE STRUCTURE ITERATIVE 3/3 LE SCHEMA ITERATIF « POUR » Exemples 1 : SOMME DES ENTIERS COMPRIS ENTRE 1 ET n Exemples 2 : SOMME DES ENTIERS PAIRS COMPRIS ENTRE 2 ET n Sébastien GERGADIER Math Sup TSI L. Richelieu INTRODUCTION A L’ALGORITHMIQUE LES PROCEDURES ET FONCTIONS DECOMPOSER POUR MIEUX RESOUDRE Sébastien GERGADIER Math Sup TSI L. Richelieu INTRODUCTION A L’ALGORITHMIQUE LES PROCEDURES 1/2 UNE PROCEDURE EST UNE ACTION PARAMETRABLE COMPOSITION : Sébastien GERGADIER Math Sup TSI L. Richelieu INTRODUCTION A L’ALGORITHMIQUE LES PROCEDURES 2/2 Exemple : Sébastien GERGADIER Math Sup TSI L. Richelieu INTRODUCTION A L’ALGORITHMIQUE LES FONCTIONS 1/2 UNE FONCTION EST UNE ACTION PARAMETRABLE QUI PRODUIT UNE VALEUR UNIQUE COMPOSITION : Sébastien GERGADIER Math Sup TSI L. Richelieu INTRODUCTION A L’ALGORITHMIQUE LES FONCTIONS 2/2 Exemple : Sébastien GERGADIER Math Sup TSI L. Richelieu INTRODUCTION A L’ALGORITHMIQUE EXEMPLE 1/4 Sébastien GERGADIER Math Sup TSI L. Richelieu INTRODUCTION A L’ALGORITHMIQUE EXEMPLE 2/4 Sébastien GERGADIER Math Sup TSI L. Richelieu INTRODUCTION A L’ALGORITHMIQUE EXEMPLE 3/4 Sébastien GERGADIER Math Sup TSI L. Richelieu INTRODUCTION A L’ALGORITHMIQUE EXEMPLE 4/4 Sébastien GERGADIER Math Sup TSI L. Richelieu INTRODUCTION A L’ALGORITHMIQUE ANNEXE 1/5 COMPLEXITE D’UN ALGORITHME Machine = Microprocesseur Langage Machine = suite ou série de 0 et de 1 Remarque : On parle souvent du langage assembleur comme langage machine. Ceci est une erreur !!!!! L’assembleur est déjà un langage évolué. Certes moins évolué, que le C, C++, Pascal, TurboPascal, … Sébastien GERGADIER Math Sup TSI L. Richelieu INTRODUCTION A L’ALGORITHMIQUE ANNEXE 2/5 CARACTERISTIQUES D’UN MICROPROCESSEUR Son architecture : RISC ou CISC ? RISC (Reduced Instruction Set Computer) CISC (Complex Instruction Set Computer) Jeu d'instructions Jeu d’instructions réduit Typiquement moins de 100 instructions Typiquement plus de 200 instructions Implémentation des instructions Seules les instructions simples sont gravées sur le silicium. La plupart des instructions sont gravées sur le silicium. Architecture Typiquement une instruction par Vitesse d'exécution cycle d'horloge Typiquement une instruction pour 3 à 10 cycles d'horloge Le nombre d’instructions réalisée par seconde : exprimée en MIPS (Million Instruction Per Second) ou GIPS Sébastien GERGADIER Math Sup TSI L. Richelieu Remarque : Le nombre de MIPS est TRES souvent différent de la fréquence de l’horloge ( environ 2GHz) INTRODUCTION A L’ALGORITHMIQUE ANNEXE 3/5 On définit 3 évaluations de la complexité d’un algorithme : Evaluation au pire : C’est une garantie de performance. Elle est notée O(T(n)); Evaluation en moyenne : RAS, c’est assez clair ! Elle est notée θ(T(n)); Evaluation au mieux : Meilleur algorithme connu ou encore inconnu. Elle est notée (T(n)). Sébastien GERGADIER Math Sup TSI L. Richelieu INTRODUCTION A L’ALGORITHMIQUE ANNEXE 4/5 EXEMPLE DE TEMPS D’ EXECUTION 1GIPS n = nombre de données à traiter T(n) = complexité de l‘algorithme Sébastien GERGADIER Math Sup TSI L. Richelieu INTRODUCTION A L’ALGORITHMIQUE ANNEXE 5/5 EXEMPLE D’ ALGORITHME DE BASE Sébastien GERGADIER Math Sup TSI L. Richelieu