Algorithmique DIONE Mamadou Mbaye Version 2021 PLAN • Introduction • Définition
Algorithmique DIONE Mamadou Mbaye Version 2021 PLAN • Introduction • Définition • Importance des algorithmes en programmation • La réflexion algorithmique • Notions de base • Les types élémentaires de données • Les variables et opérateurs • Structures algorithmiques • Structures conditionnelles simples a :: Les branchements • Structures conditionnelles itératives b :: Les Boucles • Les tableaux • Les routines (Fonctions, Procédures) • La récursivité • Introduction au Le Langage C • Les structures linéaires E • Les listes – Pile – File • Les Arbres binaires Introduction Qu’ estcequ’unalgorithme? Importancedesalgorithmesenprogrammation Laréflexionalgorithmique QU’EST-CE QU’UN ALGORITHME ? • Ensemble de règles ET • Suite d’instructions exécutées dans un ordre bien défini en vue de résoudre un problème donné. • Les instructions Compréhensibles, algorithmes doivent d’être Structurées pour permettre une Claires, bonne implémentation en langage de programmation par la suite. • La maîtrise de l’algorithme requiert : • La connaissance des règles fondamentales (objet de ce cours) • Une bonne méthodologie • De la rigueur • Une bonne intuition « Tout problème nécessite une solution, pour le résoudre. » QU’EST-CE QU’UN ALGORITHME ? IMPORTANCE DES ALGORITHMES • Un algorithme est donc une solution à un problème posé en d’autres termes un cheminement vers la résolution d’un problème. • Un bon algorithme propose une solution optimisée, réutilisable. • Ecrire un programme informatique en passant par la réflexion algorithmique réduit considérablement la durée de réalisation de notre travail et nous garantit une solution optimale. LA REFLEXION ALGORITHMIQUE • La réflexion algorithmique répond aux questions permettant d’identifier les outils appropriés à la résolution d’un problème : • Qu’est ce qu’on me demande ? • Prendre connaissance du problème (Lecture/relecture) • Quel/s est/sont le/les résultat/s attendus ? Et Sous quel/s forme/s ? • Comment y parvenir ? Avec quel/s outil/s ? • L’enchaînement des instructions. Les structures de contrôles etc … Notions fondamentales LesTypesdedonnées Lesvariables Lesinstructionsd’Entrées/Sorties(E/S) LES TYPES DE DONNEES • Les types de base du langage algorithmique • ENTIER • C’est le type nombre entier correspondant à l’ensemble des entiers relatifs. • REEL • C’est le type réel correspondant à l’ensemble IR. • CHAR (ou BYTE) • C’est le type caractère. Tout caractère dispose de son code ASCII (valeur entière permettant de le coder en mémoire). LES VARIABLES • Un conteneur d’informations dont le contenu est susceptible d’évoluer, de changer, de varier tout le long de l’algorithme. • Dans le jargon informatique • C’est une zone mémoire allouée au niveau de la mémoire vive du système lors du lancement du programme pour recevoir des informations d’un type bien défini et manipulées durant l’exécution du programme. • Caractéristiques Principales • Toujours déclarer une variable avant son utilisation. Elle permet de savoir quel TYPE d’informations elle devra contenir tout le long du programme. • Le TYPE d’une variable définit implicitement la taille de la zone allouée pour celle-ci dans la mémoire vive. LES VARIABLES • Syntaxe de la déclaration • VARIABLE <nom_de_la_variable> : TYPE • Exemple • VARIABLE age : ENTIER • { Ceci est une déclaration d’une variable age de type ENTIER, Elle ne devra contenir que des données de type ENTIER } LES VARIABLES • L’affectation • Affecter une valeur à une variable c’est écrire dans la zone mémoire référencée par le nom de la variable. • Important !! • « On ne doit affecter à une variable qu’une valeur correspondant au type défini pour la variable lors de sa déclaration. » • Syntaxe de l’affectation • <nom_de_la_variable> = <valeur> • <valeur> peut être une constante, une autre variable ou encore le résultat d’une opération arithmétique. • Exemple • age = 12 x = y x = y - 1 LES INSTRUCTIONS D’E/S a besoin • En algorithme, pour effectuer certaines tâches on d’informations qui doivent être fournies par l’utilisateur. • Pour récupérer ces données on dispose de fonctions particulières et prédéfinies dites d’entrées/sorties qui permettent au système de lire ces valeurs externes. • La fonction LIRE permet de récupérer les informations venant de l’extérieur (clavier, fichiers, etc…) et de les stocker dans une variable passée en paramètre. • Exemple • LIRE ( age ) LES INSTRUCTIONS D’E/S • De même il existe des fonctions d’entrées/sorties permettant de restituer un résultat à l’écran ou d’afficher une simple information. • La fonction ECRIRE permet d’écrire aussi bien le contenu d’une variable qu’une simple information ou les deux à la fois sur une sortie standard (écran, fichiers, etc…). • Exemple • ECRIRE ( age ) • ECRIRE (" Salut la compagnie ") • ECRIRE (" Vous avez ", age, " ans ") • Notez la présence des " " pour signaler qu’il s’agit d’écrire sur l’écran une chaîne de caractères constante. LES OPERATEURS • Les opérateurs arithmétiques et logiques sont très souvent utilisés en algorithme pour manipuler / évaluer les variables. • Les opérateurs arithmétiques • + : Addition • - : Soustraction • * : Multiplication • / : Division Euclidienne • % : Modulo Les opérateurs logiques ET : Et logique OU : Ou logique >= : Supérieur ou égal à <= : Inférieur ou égal à == : Egal != : Différent de > : Supérieur à < : Inférieur à ! : Non UN PEU DE LOGIQUE • Une proposition est un énoncé qui peut être vrai ou faux. on dit alors que les deux valeurs de vérité d’une proposition sont « vrai » et « faux ». • A partir d’une ou plusieurs propositions, on peut en construire d’autres. • Négation d’une proposition • Si P est une proposition on définit sa négation, notée !P en algorithmique, à partir de la table de vérité suivante : P !P V F F V UN PEU DE LOGIQUE • Les connecteurs logiques communément appelés : opérateurs logiques • Si P et Q sont deux propositions, on peut définir les propositions « P OU Q », et « P ET Q » par les tables de vérités suivantes : • On peut noter que P OU Q est fausse si et seulement si P est fausse et Q fausse alors que P ET Q est vraie si et seulement P est vraie et Q vraie. P Q P OU Q V V V V F V F V V F F F P Q P ET Q V V V V F F F V F F F F Les Structures de contrôle Les structures conditionnelles simples Les structures conditionnelles en boucle LES STRUCTURES CONDITIONNELLES SIMPLES • Les structures conditionnelles permettent, dans l’algorithme de poser des conditions sur l’exécution de certaines instructions. • La particularité des structures de contrôles dites SIMPLES est qu’elles exécutent une et UNE seule fois le bloc d’instructions lorsque la condition est remplie. • Il en existe deux • SI ALORS SINON FINSI • SELON CAS DEFAUT FINSELON SI ALORS SINON FINSI SI ( A > B ) ALORS Max SINON = A Max = B FINSI • Syntaxe d’utilisation de SI ALORS SINON FINSI SI ( <condition> ) ALORS { <condition> est VRAIE } <instructions A> [SINON { <condition> est FAUSSE} <instructions B>] FINSI • Exemple Ou encore … Max = B SI ( Max < A ) ALORS Max = A FINSI {Le bloc SINON est facultatif} SELON CAS DEFAUT FINSELON • Syntaxe d’utilisation de SELON CAS DEFAUT FINSELON SELON ( <variable_a_evaluer> ) CAS <valeur_1> : <instructions_1> CAS <valeur_2> : <instructions_2> … CAS <valeur_n> : <instructions_n> : DEFAUT <instructions_par_defaut> FINSELON NB: Cette structure est appropriée pour l’évaluation des valeurs discrètes. SELON CAS DEFAUT FINSELON • Exemple SELON ( numero_du_jour ) CAS 1 : ECRIRE (" Lundi ") CAS 2 : ECRIRE (" Mardi ") CAS 3 : ECRIRE (" Mercredi ") CAS 4 : ECRIRE (" Jeudi ") CAS 5 : ECRIRE (" Vendredi ") CAS 6 : ECRIRE (" Samedi ") CAS 7 : ECRIRE (" Dimanche ") DEFAUT : ECRIRE (" Jour inconnu ") FINSELON LES STRUCTURES CONDITIONNELLES EN BOUCLE • La particularité des structures conditionnelles en boucle est qu’elle exécute le bloc d’instructions autant de fois que la condition évaluée est VRAIE. • Il en existe trois (3) • TANT QUE FAIRE FINTQ • FAIRE TANTQUE • POUR FINPR TANTQUE FAIRE FINTQ TANTQUE ( <condition> ) FAIRE <instructions> FINTQ <instructions> est exécuté tant que <condition> est vérifiée Exemple {Contrôle effectué avant l’entrée dans la boucle} I = 0 TANTQUE ( I < 10 ) FAIRE ECRIRE ( I ) I = I + 1 {instruction modifiant la condition pour la rendre FAUSSE à un certain moment} FINTQ NB : S’assurer que le bloc d’instructions propose une instruction modifiant la condition au risque de se retrouver enfermé dans une boucle infinie. FAIRE TANTQUE FAIRE <instructions> TANTQUE (<condition>) <instructions> exécutée au moins une fois et ensuite est répété tant que <condition> est vérifiée Exemple I = 0 FAIRE ECRIRE ( I ) I = I + 1 {instruction modifiant la condition pour la rendre FAUSSE à un certain moment} TANTQUE ( I < 10 ) {Contrôle effectué après la première exécution} NB : S’assurer que le bloc uploads/Ingenierie_Lourd/ algo-imc-21-complet-1-51.pdf
Documents similaires










-
37
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Mai 30, 2021
- Catégorie Heavy Engineering/...
- Langue French
- Taille du fichier 1.2188MB