Chapitre I Introduction à la programmation
Objectif du cours Comprendre ce qu est l algorithmique. Fournir des éléments de bases intervenants en programmation quel que soit le langage employé Variables Types Instructions d'affectation Instructions de lecture ou d écriture Structures de contrôles 2
Plan Introduction de la notion d'algorithme Définition de l algorithmique Syntaxe algorithmique 3
L algorithmique INTRODUCTION 4
Introduction Présence importante de l ordinateur dans notre environnement : ( bords Automobile (ordinateurs de ( automatisme ) Robots Jeux vidéo ( GSM ) Routage Rôle fondamental de la programmation qui se cache derrière ces tâches 5
Pourquoi programmer? Programmation existe partout Magnétoscope Réveil Besoin d effectuer des nouvelles tâches : besoin d écrire des programmes nouveaux Par non informaticien : formalisation en français Par informaticien : langage compréhensible par lui et la machine 6
Le processeur comprend quoi? Programme : séquence d'instructions du processeur cc2: 55 cc3: 89 e5 cc5: 53 cc6: 83 ec 14 cc9: e8 fc ff ff ff cce: 81 c3 02 00 00 00 cd4: 8b 45 08 cd7: 89 44 24 04 cdb: 8b 45 08 cde: 89 04 24 CODE MACHINE??? Codage hexadécimal : seul langage compris par le processeur. Instructions quasi inutilisable pour les programmeurs 7
Le processeur comprend quoi? Programme : séquence d'instructions du processeur cc2: 55 cc3: 89 e5 cc5: 53 cc6: 83 ec 14 cc9: e8 fc ff ff ff cce: 81 c3 02 00 00 00 cd4: 8b 45 08 cd7: 89 44 24 04 cdb: 8b 45 08 cde: 89 04 24 CODE MACHINE push mov push sub call add mov mov mov mov %ebp %esp,%ebp %ebx $0x14,%esp cca $0x2,%ebx 0x8(%ebp),%eax ( eax,0x4(%esp % 0x8(%ebp),%eax ( eax,(%esp % ASSEMBLEUR Codage hexadécimal : seul langage compris par le processeur. Instructions quasi inutilisable pour les programmeurs 8
Comment parler à l ordinateur? Dans son langage ou dans le notre? L ordinateur ne sait exécuter qu un nombre limité d opérations élémentaires dictées par des instructions de programmes, codées en binaire L ordinateur ne peut comprendre que le langage machine Il est possible d utiliser des «outils» qui permettront de traduire un langage simple vers le langage machine 9
Le langage de programmation Langage commun entre Le programmeur Le processeur : traduit en code machine Il existe différents types de langage : Langage machine (ou langage symbolique) Les langages dits «évolués» 10
Langage symbolique En langage symbolique : 0101010011011010 pourrait signifier (en langage machine) additionner (0101) les valeurs comprises dans les mots d adresses 010011 et 011010 Il faut disposer d un programme capable de faire la conversion : Add A,B 0101010011011010 11
Langage évolué Nécessité de définir des langages : Utilisables sur n importe quel ordinateur Plus tourné vers le problème à résoudre que vers les caractéristiques particulières à l architecture de la machine Exemples de langages évolués : ( scientifique Fortran (Domaine ( Gestion ) Cobol Pascal, ADA, C, C++, C#, Visual Basic, JAVA 12
Les langages de programmation Avant 1950 Algorithmes et machines à calculer. 1950 1960 Fortran, Lisp, Cobol 1960 1970 Apl, Basic, P1/1, Logo 1970 1980 Pascal, Prolog, SmallTalk, C, Awk, Ada, Rexx. 1980 1990 Dbase, C++, Eiffel, Maple, Perl, Tcl/Tk. 1990 2000 VisualBasic, Java, Php, Mysql. 2000 2010 Java 2, Delphi 7, Php 4.3.3, Perl 5.8.1, C#. 13
De toutes façons, il faut traduire Quel que soit le langage évolué, il faut le traduire en langage machine. Existence de deux techniques différentes : Compilation : consiste à traduire l ensemble du programme (écrit en langage évolué) en langage machine. Ce programme est ensuite exécuté. Interprétation : consiste à traduire chaque instruction du programme avant de l exécuter. 14
Oui mais... Connaître un langage de programmation ne signifie pas savoir programmer même si ça aide. 15
Du problème au programme 1 - Analyse Besoin exprimé en français 2 - Traduction Besoin Langage universel (algorithme) 3 - Traduction Langage universel Langage de programmation 4 - Création de l exécutable Compilation/interprétation. 16
Méthodologie Pour résoudre un problème, il faut suivre les quatre étapes suivantes : comprendre la nature du problème posé préciser les données fournies ("entrées") préciser les résultats que l'on désire obtenir ("sorties") déterminer le processus de transformation des données en résultats Ces quatre étapes ne sont pas indépendantes et leur ordre peut être modifié 17
Exemple tri 18
L algorithmique DÉFINITION 19
Algorithmique / Programme Un algorithme est : Une suite d instructions élémentaires décrites dans un langage universel exécutées de manière séquentielle Indépendant du langage de programmation Un programme est un ensemble d instructions qui: Spécifie les opérations élémentaires à exécuter Définit la façon dont elles s enchaînent Est écrit dans un langage de programmation 20
Définition Un algorithme est une méthode Suffisamment générale pour permettre de traiter toute une classe de problèmes Combinant des opérations suffisamment simples pour être effectuées par une machine Pour un problème donné, il peut y avoir plusieurs algorithmes ou aucun Algorithme : langage abstrait et non ambiguë 21
Propriétés Propriété que doit avoir un algorithme : Solution correcte au problème à résoudre Indépendant de tout langage de programmation Explication aussi courte que possible L éternel dilemme : Solution rapidement trouvée / Complexité en temps Solution utilisant un minimum de place mémoire / Complexité en espace 22