Introduction à l’algorithmique SMAHI Zakaria smahi@mail.com Maitre de Conférenc

Introduction à l’algorithmique SMAHI Zakaria smahi@mail.com Maitre de Conférence Dépt de Génie Physique Faculté de Physique USTOMB 1ère année ST1 2019/2020, Semestre 2 SMAHI Zakaria (2020) 1 Un algorithme est une suite finie de règles à appliquer dans un ordre déterminé à un nombre fini de données pour arriver, en un nombre fini d‘étapes, à un certain résultat, et cela indépendamment des données. Introduction à l’algorithmique SMAHI Zakaria (2020) 2 1. Définition d’un Algorithme 1.1. Son origine: Le mot algorithme provient du nom d'un célèbre mathématicien musulman de la première moitié du IXe siècle: Muhammad ibn Musa al Khawarizmi (Khiva (Xiva en ouzbek est une ville d'Ouzbekistan), son ancien nom, Khwarezm ou Khorezm). SMAHI Zakaria (2020) 3 1.2. Son Rôle: Le rôle de l'algorithme est fondamental. En effet, sans algorithme, il n'y aurait pas de programme (qui n'est jamais que sa traduction dans un langage compréhensible par l'ordinateur). De plus, les algorithmes sont fondamentaux en un autre sens: ils sont indépendants à la fois de l'ordinateur et des langages de programmation dans lesquels ils sont énoncés et traduits. SMAHI Zakaria (2020) 4 « Ecrire un algorithme », c’est : Analyser et comprendre le problème : étudier les données fournies et les résultats attendus Résoudre le problème, c’est trouver les structures de données adaptées ainsi que l’enchaînement des actions à réaliser pour passer des données aux résultats Comment exécuter un algorithme sur un ordinateur ? Il faut traduire cet algorithme à l’aide d’un langage de programmation connu par l’ordinateur. SMAHI Zakaria (2020) 5 En Résumé : Un Algorithme consiste à retranscrire un processus logique à l’aide d’un langage naturel. Un Algorithme est la description d’un traitement qui consiste à transformer des données, appelées « entrées » , afin de produire d’autres données appelées « sorties ». Les entrées et les sorties représentent les variables manipulées par l’algorithme. Processus de Principe : Entrées -> Traitement -> Sorties SMAHI Zakaria (2020) 6 2.Représentation d’un algorithme 2.1. Le langage Naturel (Exp : Français). Exemple : comment formuler l’algorithme qui calcule la surface d’un disque ? Réponse : Pour calculer la surface d’un disque, on prend d’abord connaissance de son rayon. La surface est égale au produit de la constante π par le carré du rayon. Historiquement, trois façons pour représenter un algorithme: SMAHI Zakaria (2020) 7 2. 2. L’Organigramme: L’Organigramme: Représentation graphique avec des symboles (carrés, losanges, etc.) Avantage : offre une vue d’ensemble de l’algorithme Inconvénient : représentation quasiment abandonnée aujourd’hui 2. Représentation d’un algorithme SMAHI Zakaria (2020) 8 L’ellipse : indique le début de l’algorithme Le parallélogramme : représente une opération de Lecture ou Ecriture Le rectangle : représente le contenu de chaque étape de traitement, il définit l’opération à exécuter. La flèche : sert à indiquer l’ordre d’exécution des différentes taches. L’Hexagone : sert à indiquer l’initialisation de certains paramètres. Le losange : il représente l’existence d’un choix logique : la proposition logique est indiquée à l’intérieur du losange. Le cercle : indique la poursuite d’une étape précédente. Le triangle renversé : symbolise la fin de l’algorithme. Symboles Signification Représentation graphique d’un Organigramme SMAHI Zakaria (2020) 9 Exemple : Calcul de surface d’un disque Pi=3.141592 Rayon Sur  Pi* Rayon² Sur Sortie: Ecran Entrée: Clavier SMAHI Zakaria (2020) 10 2. 3. Le pseudo-code ou Langage de Description d’Algorithme (LDA): 2. 3. Le pseudo-code ou Langage de Description d’Algorithme (LDA): C’est une représentation textuelle avec une série de conventions ressemblant à un langage de programmation (sans les problèmes de syntaxe) plus pratique pour écrire un algorithme représentation largement utilisée SMAHI Zakaria (2020) 11 Exemple précédent devient: Algorithme surf_Disq ; CONST Pi = 3.141592 : Réel ; VAR Sur, Rayon: Réel ; DEBUT LIRE(Rayon) ; Sur Pi* Rayon**2 ; Ecrire(Sur) ; FIN SMAHI Zakaria (2020) 12 3. Structure générale d’un Algorithme : En générale, l’algorithme comprend les étapes suivantes : 3.1. En tête : Algo Nom de l’algorithme; 3. 2. Déclaration : (Constante, Variable, Structure) 3. 2.1. Type de variable Une variable correspond à un type de variable. Les principaux types sont : Byte (codé sur 1 octet: de 0 à 255) Caractère (codé sur 1 octet: de 0 à 255) Chaîne de caractères (toute suite de caractères ) Entier (codé sur 2 octets: de -32768 à 32767) Réel (codé sur 4 octets: de 0 à 255) Booléen (vraie ou fausse 0 ou 1, codé sur 1 octet SMAHI Zakaria (2020) 13 3. 2.2. Déclaration d’une variable Rappel: toute variable utilisée dans un programme doit avoir fait l’objet d’une déclaration préalable En pseudo-code, on va adopter la forme suivante pour la déclaration de variables Var liste d'identificateurs : type; Var liste d'identificateurs : type; Exemple: Var i, j,k : Entier; x, y : Réel; OK: Booléen; ch1, ch2 : Chaîne; SMAHI Zakaria (2020) 14 3.3. Corps de l’Algo: Début Lecture de données; Initialisation des paramètres; Transformation des données en résultats; Ecriture des résultats; Fin. SMAHI Zakaria (2020) 15 4.1. L’instruction d’affectation Affecter une variable consiste à lui donner une valeur. Cette valeur peut être soit une constante, soit une valeur d’une autre variable, soit le résultat d’un calcul. L’affectation est représentée par une flèche orientée à gauche  Exemple Exemple : Si A,B sont deux variables de type Byte (valeur comprise entre 0 et 255), alors on peut écrire : B  15, A  B+ 4, A  A + 1 1/ Le terme de droite (15) est affecté au terme de gauche (variable A) 2/ " " (valeur de la variable B + 4) affecté au terme gauche (variable A) 3/ " "" (valeur de A (avant instruction) + 1) affecté (variable A. Dans ce dernier cas la nouvelle valeur de A remplace l'ancienne. Si une variable est numérique A  0 Si une variable est chaîne de caractères A  "0", ou A  " Lettres " 4. Les instructions Algorithmiques SMAHI Zakaria (2020) 16 Quelques remarques : Beaucoup de langages de programmation (C, Fortran, pascal, …) utilisent le signe égal = pour l’affectation ←. Attention aux confusions: l'affectation n'est pas commutative : A=B est différente de B=A l'affectation est différente d'une équation mathématique : A=A+1 a un sens en langages de programmation A+1=2 n'est pas possible en langages de programmation et n'est pas équivalente à A=1 4.1. L’instruction d’affectation SMAHI Zakaria (2020) 17 4.2. L’entrée d’information La primitive d’entrée ou saisir (entrée clavier) et lire (lecture en provenant du disque dur). Le but de ces primitives est de permettre à l’ordinateur d’affecter une variable extérieure à une autre variable. Le nom de cette variable symbolise une adresse en mémoire centrale. A cette adresse se trouve la valeur, à un moment donné de la variable. La primitive de sortie : écrire, afficher, imprimer. Le but est de permettre à l’ordinateur de sortir la valeur d’une variable vers les périphériques extérieurs (écran, imprimante, etc…) SMAHI Zakaria (2020) 18 Les instructions de lecture et d'écriture permettent à la machine de communiquer avec l'utilisateur 4.2.1.1. Entrées (Lecture) La lecture permet d'entrer des données à partir du clavier Synthaxe: Lire (A) Lire (A) l la machine met la valeur entrée au clavier dans la zone mémoire nommée A Remarque: Le programme s'arrête lorsqu'il rencontre une instruction Lire et ne se poursuit qu'après la frappe d’une valeur au clavier et de la touche Entrée 4.2.1. Instructions d'entrées-sorties: (Lecture et Ecriture) SMAHI Zakaria (2020) 19 L'écriture permet d'afficher des résultats à l'écran (ou de les écrire dans un fichier) Synthaxe: Ecrire (A) Ecrire (A) la machine affiche le contenu de la zone mémoire A Conseil: Avant de lire une variable, il est fortement conseillé d’écrire des messages à l’écran, afin de prévenir l’utilisateur de ce qu’il doit frapper 4.2.1. Instructions d'entrées-sorties (Lecture et Ecriture) 4.2.2. Sorties (Ecriture) SMAHI Zakaria (2020) 20 4.2.2. Méthode de construction d’un algorithme simple Exemple : Écrire un algorithme qui consiste à calculer l’air S d’un cercle selon la formule S = Pi * R2 Rappel : Pi = 3.14159 et R le rayon du cercle SMAHI Zakaria (2020) 21 Méthodologie à suivre : Constantes : Pi = 3.14159 Variables : Rayon, Surface Types : Rayon, Surface : réel Expressions et affectation : Surface <- Pi * (Rayon)2 Opérations d’entrée-sortie : Lire (Rayon), Écrire (Surface) 4.2.2. Méthode de construction d’un algorithme simple SMAHI Zakaria (2020) 22 Algo Calcul_Aire; Const Pi = 3,14159 : Réels; Var Rayon, Surface : Réels; Début Lire (Rayon); Surface <- Pi * (Rayon)^2; Ecrire (Surface); Fin. 4.2.2. Méthode de construction d’un algorithme simple SMAHI Zakaria (2020) 23 4.3.Instruction de branchement (SAUT): Cette instruction permet de sauter à un endroit précis de l’algorithme repéré par une étiquette. Syntaxe générale : ALLER A <étiquette> SMAHI Zakaria (2020) 24 4.3.Instruction de branchement (SAUT): Exemple: Algo Exemple; Var x : Entier; Début Lire (x); Aller à 1; x <- x + 1; 1: x <- x +2; Ecrire(x); Fin. SMAHI Zakaria (2020) 25 4.4.1. Instruction de CHOIX Rôle : permet d’exécuter une séquence d’instructions plutôt qu’une autre selon les conséquences. On distingue quatre formes de structures de choix (alternative): 4.4.Les structures Conditionnelles uploads/Management/ cours-algo-smahi.pdf

  • 17
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager
  • Détails
  • Publié le Mar 21, 2022
  • Catégorie Management
  • Langue French
  • Taille du fichier 0.3109MB