COURS D’ALGORITHME 1 BTS IDA - RIT 2019 - 2020 CHAPITRE I : GENERALITES SUR L’A

COURS D’ALGORITHME 1 BTS IDA - RIT 2019 - 2020 CHAPITRE I : GENERALITES SUR L’ALGORITHMIQUE I n tr odu cti o n L’algorithmique est un terme d’origine arabe, en hommage à Al khawarizmi (780-850) auteur d’un ouvrage décrivant des méthodes de calculs algébriques. 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. 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. Un algorithme est donc une suite d’instructions, qui une fois exécutée correctement, conduit à un résultat donné :  Si l’algorithme est juste, le résultat sera celui qu’on attend,  Si l’algorithme est faux, le résultat sera alors aléatoire Pour fonctionner, un algorithme doit donc contenir uniquement des instructions compréhensibles par celui qui devra l’exécuter (l’ordinateur). Les ordinateurs eux-mêmes sont fondamentalement capables d’exécuter que quatre opérations logiques à savoir : 1) L’affectation de variables 2) La Lecture / Ecriture 3) Les tests 4) Les boucles La taille d’un algorithme ne conditionne pas en soi sa complexité : de longs algorithmes peuvent être finalement assez simples, et de petits algorithmes peuvent être très compliqués. L’informatique, étant la science du traitement automatique de l’information, il faudrait pour cela :  modéliser cette information,  définir à l’aide d’un formalisme strict les traitements dont elle fera l’objet.  et enfin traduire ces traitements dans un langage compréhensible par un ordinateur. I. L ’ALGO R IT H M I QU E I.1 Pr i nc i pe Un algorithme peut se définir comme une séquence bien spécifiée d’opérations (calcul, manipulation de données, etc.) permettant d’accomplir une tache en un nombre fini de pas. En principe, un algorithme est indépendant de toute implémentation. Cependant dans la pratique de Page 1 sur 31 COURS D’ALGORITHME 1 BTS IDA - RIT 2019 - 2020 la programmation, il s’avère indispensable de tenir compte des capacités du langage de programmation utilisé. La conception d’un algorithme passe par plusieurs étapes :  L’Analyse : définition du problème en terme de séquences d’opérations de calcul, de stockage de données, etc. ;  La Conception : définition précise des données, des traitements et de leur séquencement ;  L’Implémentation : traduction et réalisation de l’algorithme dans un langage précis ;  Le Test : Vérification du bon fonctionnement de l’algorithme. I.2 Carac t éris t ique s d ’ u n Algori t hm e Un algorithme est une marche à suivre :  dont les opérations sont toutes définies et portent sur des objets appelés informations,  dont l’ordre d’exécution des opérations est défini sans ambiguïté,  qui est réputée résoudre de manière certaine un problème ou une classe de problèmes,  qui s’exprime dans un langage indépendant des langages de programmation, II. L ’ALGO R IT H M I QU E E T L A P R OG R A MM A TI O N Un programme est la traduction d’un algorithme dans un certain langage de programmation. Il faut savoir qu’à chaque instruction d’un programme correspond une action du processeur. II.1 L e bu t d e l a programma t io n  Utiliser l’ordinateur pour traiter des données afin d’obtenir des résultats.  Abstraction par rapport au matériel (indépendance application / plateforme matérielle).  Intermédiaire entre le langage machine (binaire) et le langage humain. II.2 Langage s d e programma t io n Le langage utilisé par le processeur, est appelé langage machine. Il s'agit d'une suite de 0 et de 1 (du binaire). Toutefois le langage machine est extrêmement difficile à comprendre par l’homme. Ainsi il est plus pratique de trouver un langage intermédiaire, compréhensible par l'homme, qui sera ensuite transformé en langage machine pour être exploitable par le processeur. L'assembleur est le premier langage informatique qui a été utilisé. Celui-ci est encore très proche du langage machine mais il permet déjà d'être plus compréhensible. Toutefois un tel langage est tellement proche du langage machine qu'il dépend étroitement du type de processeur utilisé (chaque type de processeur peut avoir son propre langage machine). Ainsi un programme développé pour une machine ne pourra pas être porté sur un autre type de machine (on Page 2 sur 31 COURS D’ALGORITHME 1 BTS IDA - RIT 2019 - 2020 désigne par le terme "portable" un programme qui peut être utilisé sur un grand nombre de machines). Pour pouvoir l'utiliser sur une autre machine il faudra alors parfois réécrire entièrement le programme. Il y a trois catégories de langage de programmations : les langages interprétés et les langages intermédiaires et les langages compilés. II.2.1 Les Langag es in t erpré tés Un langage de programmation est par définition différent du langage machine. Il faut donc le traduire pour le rendre intelligible du point de vue du processeur. Un programme écrit dans un langage interprété a besoin d'un programme auxiliaire (l'interpréteur) pour traduire au fur et à mesure les instructions du programme. Exemples de langages interprétés : Le langage HTML (les pages web), le langage Maple (calcul mathématique), le langage Prolog (Intelligence artificielle), etc. II.2.2 Langag es compil és : Un programme écrit dans un langage dit "compilé" va être traduit une fois pour toutes par un programme annexe (le compilateur) afin de générer un nouveau fichier qui sera autonome, c'est-à-dire qui n'aura plus besoin d'un programme autre que lui pour s'exécuter (on dit par ailleurs que ce fichier est exécutable). Un programme écrit dans un langage compilé a comme avantage de ne plus avoir besoin, une fois compilé, de programme annexe pour s'exécuter. De plus, la traduction étant faite une fois pour toute, il est plus rapide à l'exécution. Toutefois il est moins souple qu'un programme écrit avec un langage interprété car à chaque modification du fichier source il faudra recompiler le programme pour que les modifications prennent effet. D'autre part, un programme compilé a pour avantage de garantir la sécurité du code source. En effet, un langage interprété, étant directement intelligible (lisible), permet à n'importe qui de connaître les secrets de fabrication d'un programme et donc de copier le code voire de le modifier. Il y a donc risque de non-respect des droits d'auteur. De plus, certaines applications sécurisées nécessitent la confidentialité du code pour éviter le piratage (transaction bancaire, paiement en ligne, communications sécurisées, ...). Exemples de langages compilés : Le langage C (Programmation système), le langage C++ (Programmation système objet), le langage Cobol (Gestion) etc. II.2.3 Langage s in t ermédiaire s : Page 3 sur 31 COURS D’ALGORITHME 1 BTS IDA - RIT 2019 - 2020 Certains langages appartiennent en quelque sorte aux deux catégories précédentes (Java, Python, ...) car le programme écrit dans ses langages peut dans certaines conditions subir une phase de compilation intermédiaire vers un fichier écrit dans un langage qui n'est pas intelligible (donc différent du fichier source) et non exécutable (nécessité d'un interpréteur). II.3 L a no t io n d e f ichie r Dans un programme, les instructions et données résident en mémoire centrale pour être exécutées. Les programmes et les données sont sauvegardés dans des fichiers qui portent des extensions spécifiques du langage : - Un fichier est identifié par un nom et une extension (fichier.doc, pgcd.c, calcul.class, etc.) - Un fichier est caractérisé par des attributs (taille, date de création, date de modification, etc.) L’exploitation d’un fichier par une application se fait par l’intermédiaire du système d’exploitation qui accomplit les opérations logiques de base suivantes :  Ouvrir/Fermer un fichier  Lire/Ecrire (dans) un fichier L’utilisateur peut donc créer, détruire (effacer), organiser, lire, modifier et copier des fichiers ou des enregistrements qui les composent II.4 L a démarch e d e programma t io n e t ana l ys e descendan te Page 4 sur 31 COURS D’ALGORITHME 1 BTS IDA - RIT 2019 - 2020 La résolution d'un problème passe par toute une suite d'étapes :  Phase d'analyse et de réflexion (algorithmique)  Phase de programmation qui passe par : - Le choix du langage de programmation - la traduction de l'algorithme en programme - l’édition du programme (ou code source) - la compilation : traduction du code source en code objet - la traduction du code objet en code machine exécutable et compréhensible par l'ordinateur  Phase de test  Phase de diffusion Le travail est ici surtout basé sur l'analyse du problème et l'écriture de l'algorithme. La réalisation d'un programme passe par l'analyse descendante du problème. Cette analyse consiste à décomposer le problème donné en sous-problèmes, et ainsi de suite, jusqu’à descendre au niveau des primitives. Les étapes successives donnent lieu à des sous-algorithmes qui peuvent être considérés comme les primitives de machine intermédiaires (procédures en Pascal, fonction en C). Page 5 sur 31 COURS D’ALGORITHME 1 BTS IDA - RIT 2019 - 2020 Durant l'écriture d'un programme, on peut être confronté à 2 types d'erreur :  Les erreurs syntaxiques : elles se remarquent à la compilation et sont le résultat de uploads/Industriel/ cours-d-x27-algorithme.pdf

  • 24
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager