127
Les bases de la programmation Par Eric Thirion Date de publication : 16 décembre 2013 Dernière mise à jour : 5 mars 2014 Ce cours peut être utile à toute personne désirant s'initier à la programmation et aux bases de données. Il s'adresse donc à des débutants et ne demande aucune connaissance préalable dans ces deux domaines. Depuis 2008, je le remets continuellement à jour en corrigeant les inévitables erreurs et en le rendant plus complet et surtout, plus pédagogique. Je l'utilise pour enseigner la partie développement d'applications du programme de BTS informatique (formation Bac+2). Il s'agit donc d'un cours « vécu sur le terrain », qui tient compte des difficultés rencontrées par les étudiants.

Eric Thirion Bases Programmation

  • Upload
    ta9

  • View
    37

  • Download
    3

Embed Size (px)

Citation preview

  • Les bases de la programmation

    Par Eric Thirion

    Date de publication : 16 dcembre 2013

    Dernire mise jour : 5 mars 2014

    Ce cours peut tre utile toute personnedsirant s'initier la programmation etaux bases de donnes. Il s'adresse donc des dbutants et ne demande aucuneconnaissance pralable dans ces deuxdomaines.

    Depuis 2008, je le remets continuellement jour en corrigeant les invitables erreurs eten le rendant plus complet et surtout, pluspdagogique.

    Je l'utilise pour enseigner la partiedveloppement d'applications du programmede BTS informatique (formation Bac+2). Il s'agitdonc d'un cours vcu sur le terrain , quitient compte des difficults rencontres par lestudiants.

  • Les bases de la programmation par Eric Thirion

    - 2 -Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de

    prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2014 Eric Thirion. Aucune reproduction,mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisationexpresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.

    http://lazarus.developpez.com/cours/eric-thirion/bases-programmation/

    propos de l'auteur.................................................................................................................................................... 7Note de la rdaction de Developpez.com..............................................................................................................7

    Premires notions de programmation......................................................................................................................... 7But de ce chapitre.................................................................................................................................................. 7Un peu d'histoire.................................................................................................................................................... 8L'ordinateur............................................................................................................................................................. 8

    Codage binaire.................................................................................................................................................. 8Le bit............................................................................................................................................................ 8Le transistor................................................................................................................................................. 8L'octet et autres units.............................................................................................................................. 10

    Le codage des nombres entiers en base 2.........................................................................................10Le codage du texte en ASCII.............................................................................................................. 11

    Mmoire vive et adresse................................................................................................................................ 12Langage machine et programme excutable............................................................................................12

    Processus........................................................................................................................................................ 14Les entres-sorties..........................................................................................................................................15Les interruptions..............................................................................................................................................16

    Les Interfaces graphiques.................................................................................................................................... 17Historique.........................................................................................................................................................17Interface du systme.......................................................................................................................................19

    Le curseur.................................................................................................................................................. 20Gestion du clic........................................................................................................................................... 20

    Fentre d'une application................................................................................................................................20Les vnements.............................................................................................................................................. 21Les zones de texte......................................................................................................................................... 22

    La programmation.................................................................................................................................................22Notion de programme..................................................................................................................................... 23Notion de langage...........................................................................................................................................23Fichiers sources.............................................................................................................................................. 24Compilation......................................................................................................................................................24

    Notion de compilateur................................................................................................................................24Exemple de compilation............................................................................................................................ 25

    Interprtation.........................................................................................................................................26Les EDI............................................................................................................................................................27La programmation vnementielle..................................................................................................................28

    Lazarus................................................................................................................................................................. 29Notion de formulaire........................................................................................................................................29Gnration automatique de code................................................................................................................... 30Programmation vnementielle.......................................................................................................................34

    Ordre d'excution des instructions............................................................................................................ 35Notice d'utilisation........................................................................................................................................... 35

    Les variables.........................................................................................................................................................36La notion de variable...................................................................................................................................... 36

    Les noms de variables en Pascal.............................................................................................................36La notion de type............................................................................................................................................ 37Dclaration d'une variable...............................................................................................................................38

    Dclaration d'une variable en Pascal........................................................................................................38Syntaxe gnrale..................................................................................................................................38Dclaration d'un entier......................................................................................................................... 38Le type double......................................................................................................................................38Dclaration d'une chane de caractres.............................................................................................. 38Regroupement des dclarations.......................................................................................................... 38O faut-il dclarer les variables ?........................................................................................................ 39

    Lecture et affichage..............................................................................................................................................39Donnes et rsultats d'un traitement..............................................................................................................39

    L'image du sourd-muet qui ne sait pas additionner..................................................................................39Pour un ordinateur.....................................................................................................................................39Exemple du programme d'addition............................................................................................................40

  • Les bases de la programmation par Eric Thirion

    - 3 -Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de

    prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2014 Eric Thirion. Aucune reproduction,mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisationexpresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.

    http://lazarus.developpez.com/cours/eric-thirion/bases-programmation/

    Historique.........................................................................................................................................................41La procdure writeln.................................................................................................................................. 42La procdure readln.................................................................................................................................. 43

    ETBib............................................................................................................................................................... 43Exemple d'utilisation des procdures de ETBib........................................................................................43

    Lecture des variables........................................................................................................................... 44Affichage des variables........................................................................................................................ 44Effacement des zones de texte........................................................................................................... 45

    Argumentation pdagogique......................................................................................................................45Les expressions....................................................................................................................................................46

    Les littraux..................................................................................................................................................... 46Les littraux numriques........................................................................................................................... 47Les littraux chanes de caractres.......................................................................................................... 47

    Les constantes................................................................................................................................................ 47Dclaration d'une constante en Pascal.....................................................................................................47

    Oprateur.........................................................................................................................................................48La concatnation........................................................................................................................................48

    Validit d'une expression................................................................................................................................ 49Expressions valides de type chane de caractres...................................................................................49Expressions valides de type numrique................................................................................................... 50

    Affichage d'expression.................................................................................................................................... 51Expression de type chane de caractres.................................................................................................51Expression numrique............................................................................................................................... 51Traitement sans variables-rsultats...........................................................................................................52

    L'affectation........................................................................................................................................................... 52criture d'une instruction d'affectation en Pascal...........................................................................................53

    Exemple de code Pascal avec des affectations....................................................................................... 53Affectation rcursive........................................................................................................................................54Traitement itratif.............................................................................................................................................54

    Exemple et conseils............................................................................................................................................. 56Exemple de programme et conseil.................................................................................................................57

    Cahier des charges................................................................................................................................... 57Dclaration des constantes....................................................................................................................... 57Conception de l'interface graphique..........................................................................................................57Lecture et dclaration des donnes..........................................................................................................58Traitement, rsultats intermdiaires et finals.............................................................................................59Le code de la procdure en entier............................................................................................................59

    Synthse..........................................................................................................................................................60Exercices...............................................................................................................................................................60

    Sous-programmes...................................................................................................................................................... 61But de ce chapitre................................................................................................................................................ 61Introduction........................................................................................................................................................... 61

    Dcoupage d'un programme en sous-programmes....................................................................................... 61Sous-programmes non vnementiels........................................................................................................... 61Les units........................................................................................................................................................ 62Procdures et fonctions.................................................................................................................................. 63

    Porte des variables.............................................................................................................................................64Exemple 1 (fichier : Global/ProjetGlobal.lpi)................................................................................................... 64Exemple 2 (fichier : Local0/ProjetLocal0.lpi)...................................................................................................65Exemple 3 (fichier : Local1/ProjetLocal1.lpi)...................................................................................................66Exemple 4 (fichier : Local2/ProjetLocal2.lpi)...................................................................................................67Synthse..........................................................................................................................................................68

    Dfinition.................................................................................................................................................... 68Porte.........................................................................................................................................................68Dure de vie.............................................................................................................................................. 68Dclarations locales multiples................................................................................................................... 68Dclaration simultane en local et en global............................................................................................ 69

    Exemple d'utilisation de sous-programmes..........................................................................................................69

  • Les bases de la programmation par Eric Thirion

    - 4 -Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de

    prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2014 Eric Thirion. Aucune reproduction,mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisationexpresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.

    http://lazarus.developpez.com/cours/eric-thirion/bases-programmation/

    Utilisation des procdures...............................................................................................................................69Exemple 1.................................................................................................................................................. 69Programmation descendante.....................................................................................................................71Retour d'un sous-programme....................................................................................................................71Exemple 2.................................................................................................................................................. 72

    Dtail technique....................................................................................................................................73Exemple d'utilisation de fonctions...................................................................................................................74

    Ancienne version du projet........................................................................................................................74Nouvelle version : appel des fonctions..................................................................................................... 75Nouvelle version : dclaration des fonctions.............................................................................................76Retour du rsultat...................................................................................................................................... 76

    Principes gnraux et complments....................................................................................................................78Dclaration et appel de procdures............................................................................................................... 78

    Dclaration d'une procdure......................................................................................................................78Entte....................................................................................................................................................78Variables locales...................................................................................................................................79

    criture d'un appel de procdure..............................................................................................................79Excution d'un appel de procdure...........................................................................................................80

    Principe du retour la procdure appelante....................................................................................... 80Passage des paramtres et excution de l'appel................................................................................80

    Dclaration et appel de fonctions................................................................................................................... 81Dclaration d'une fonction......................................................................................................................... 81Appel de fonction.......................................................................................................................................81

    Diffrences avec un appel de procdure.............................................................................................82Les fonctions prdfinies...........................................................................................................................82Expressions et appels de fonctions.......................................................................................................... 84

    Exercices...............................................................................................................................................................84Les tableaux...............................................................................................................................................................85

    But de ce chapitre................................................................................................................................................ 85Les tableaux une dimension.............................................................................................................................85

    Exemple introductif..........................................................................................................................................85Le cas gnral................................................................................................................................................ 87Utilisation de constantes pour dfinir la dimension d'un tableau................................................................... 88

    Tableaux remplis partiellement.............................................................................................................................89Reprsentation................................................................................................................................................ 89Adjonction d'une valeur...................................................................................................................................90

    Adjonction la fin......................................................................................................................................90Insertion......................................................................................................................................................90

    Suppression d'un lment...............................................................................................................................91Suppression du dernier lment............................................................................................................... 91Suppression d'un lment quelconque (diffrent du dernier)................................................................... 91

    Notion de pile.................................................................................................................................................. 92Les tableaux deux dimensions......................................................................................................................... 92

    Dclaration en Pascal..................................................................................................................................... 92Traitement de tous les lments.................................................................................................................... 93Traitement d'une ligne.....................................................................................................................................93Traitement d'une colonne................................................................................................................................93

    Exercices...............................................................................................................................................................94Structures de contrle................................................................................................................................................94

    But de ce chapitre................................................................................................................................................ 94Les expressions logiques..................................................................................................................................... 95

    Variable boolenne..........................................................................................................................................95Oprateurs logiques........................................................................................................................................ 95

    La ngation................................................................................................................................................ 96La conjonction............................................................................................................................................96La disjonction............................................................................................................................................. 97

    Expressions logiques...................................................................................................................................... 97Les variables boolennes..........................................................................................................................97

  • Les bases de la programmation par Eric Thirion

    - 5 -Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de

    prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2014 Eric Thirion. Aucune reproduction,mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisationexpresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.

    http://lazarus.developpez.com/cours/eric-thirion/bases-programmation/

    Utilisation des oprateurs logiques........................................................................................................... 98Utilisation des oprateurs de comparaison...............................................................................................98

    Les six oprateurs................................................................................................................................98Comparaison d'expressions numriques............................................................................................. 98Comparaison de chanes de caractres..............................................................................................99

    Exercices......................................................................................................................................................... 99La conditionnelle...................................................................................................................................................99

    Le If................................................................................................................................................................. 99Le If Then............................................................................................................................................. 99Le If Then Else.............................................................................................................................. 100If imbriqus.............................................................................................................................................. 101L'instruction Exit.......................................................................................................................................101

    Case.............................................................................................................................................................. 102Exercices....................................................................................................................................................... 103

    Les boucles.........................................................................................................................................................103Les boucles While.........................................................................................................................................103

    Vocabulaire associ aux boucles............................................................................................................ 103Droulement de la boucle....................................................................................................................... 104

    Les boucles Repeat...................................................................................................................................... 105Les boucles For............................................................................................................................................ 105Exercices....................................................................................................................................................... 106

    Corrigs des exercices.......................................................................................................................................106Les types structurs.................................................................................................................................................107

    Introduction......................................................................................................................................................... 107Les types structurs........................................................................................................................................... 107

    Gnralits indpendantes du langage de programmation..........................................................................107Dclaration.....................................................................................................................................................107

    Dclaration d'un type structur................................................................................................................107Dclaration de variables de type structur............................................................................................. 107

    Manipulation des champs d'une structure.................................................................................................... 108Dfinition de types complexes par combinaison.......................................................................................... 108

    Tableaux de structures : les tables..........................................................................................................108Structure avec champs de type structur............................................................................................... 108

    Les pointeurs...................................................................................................................................................... 109Dclaration d'un pointeur.............................................................................................................................. 109Allocation dynamique de mmoire................................................................................................................110

    Listes simplement chanes............................................................................................................................... 111Reprsentation.............................................................................................................................................. 111Parcours........................................................................................................................................................ 112Adjonction d'un lment................................................................................................................................112

    En dbut de liste..................................................................................................................................... 112Insertion aprs un lment......................................................................................................................113

    Suppression d'un lment.............................................................................................................................113Suppression du premier lment............................................................................................................ 113Suppression du suivant........................................................................................................................... 114

    Listes doublement chanes...............................................................................................................................114Reprsentation.............................................................................................................................................. 114Adjonction d'un lment................................................................................................................................115

    En dbut de liste..................................................................................................................................... 115Insertion aprs un lment......................................................................................................................115

    Exercices.............................................................................................................................................................115Les fichiers............................................................................................................................................................... 116

    But de ce chapitre.............................................................................................................................................. 116Notion de fichier................................................................................................................................................. 116

    Qu'est-ce qu'un fichier ?............................................................................................................................... 116Nom de fichier...............................................................................................................................................116Chemin d'accs.............................................................................................................................................117Identification d'un fichier par son nom complet............................................................................................ 117

  • Les bases de la programmation par Eric Thirion

    - 6 -Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de

    prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2014 Eric Thirion. Aucune reproduction,mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisationexpresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.

    http://lazarus.developpez.com/cours/eric-thirion/bases-programmation/

    Format........................................................................................................................................................... 117Les fichiers texte........................................................................................................................................... 118Les fichiers structurs................................................................................................................................... 118

    Oprations sur les fichiers................................................................................................................................. 118Les erreurs d'accs.......................................................................................................................................118Ouverture et fermeture d'un fichier...............................................................................................................119

    quoi sert l'ouverture d'un fichier ?........................................................................................................119 quoi sert la fermeture d'un fichier ?.....................................................................................................119

    Accs direct et accs squentiel.................................................................................................................. 120Accs direct............................................................................................................................................. 120Accs squentiel......................................................................................................................................120

    Manipulation des fichiers texte..................................................................................................................... 121Ouverture d'un fichier texte..................................................................................................................... 121Oprations sur les lignes.........................................................................................................................122

    Manipulation des fichiers structurs............................................................................................................. 122Ouverture d'un fichier structur............................................................................................................... 122Accs squentiel......................................................................................................................................122Accs direct............................................................................................................................................. 122

    Manipulation de fichiers texte en Pascal........................................................................................................... 122Dclaration.....................................................................................................................................................122Assignation.................................................................................................................................................... 122Cration d'un fichier texte............................................................................................................................. 123

    Ouverture en criture...............................................................................................................................123criture d'une ligne..................................................................................................................................123

    Lecture d'un fichier texte...............................................................................................................................123Ouverture d'un fichier texte en lecture....................................................................................................123Lecture d'une ligne et test de fin de fichier.............................................................................................124

    Les fichier structurs en Pascal.........................................................................................................................124Dclaration.....................................................................................................................................................124Assignation.................................................................................................................................................... 125Ouverture et fermeture..................................................................................................................................125criture squentielle......................................................................................................................................125Lecture squentielle...................................................................................................................................... 126

    Lecture jusqu'en fin de fichier................................................................................................................. 127Exercices.............................................................................................................................................................127

  • Les bases de la programmation par Eric Thirion

    - 7 -Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de

    prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2014 Eric Thirion. Aucune reproduction,mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisationexpresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.

    http://lazarus.developpez.com/cours/eric-thirion/bases-programmation/

    propos de l'auteur

    Eric Thirion, titulaire d'un doctorat en informatique et d'un Capes de mathmatiques, a pass plusieurs annes l'tranger (de 1990 1994 l'Universit Heriot-Watt d'dimbourg, puis de 1994 1996 l'universit de Leuven enBelgique) dans le cadre de contrats de recherche en vision par ordinateur.

    Auteur d'une vingtaine de publications, il a enseign la programmation l'cole des Mines de Nancy, l'IUT de Nancyet l'universit Louis Pasteur de Strasbourg.

    Actuellement, il est professeur d'informatique en BTS-SIO l'cole Estudia de Strasbourg.

    Note de la rdaction de Developpez.com

    La relecture des diffrentes parties du cours a t ralise par Cdric DUPREZ, Claude Leloup, f-leb et PhilippeDUVAL.

    Premires notions de programmation

    But de ce chapitre

    Dans ce cours, j'ai tout d'abord rassembl les notions qui m'ont sembl utiles introduire avant de commencerproprement dit le cours de programmation.

    En particulier, comme la programmation est conditionne par la manire dont fonctionne un ordinateur, il m'a sembllogique de commencer par une prsentation trs sommaire de cette machine : sa structure, son fonctionnement, etdu seul langage qu'elle est capable de comprendre : le langage machine.

    J'aborde ensuite les principes d'interaction homme-machine via une souris, un clavier et un cran graphique. Cela mepermet d'introduire la programmation vnementielle, avant de parler de l'environnement de dveloppement intgrLazarus, spcialement conu pour ce type de programmation.

  • Les bases de la programmation par Eric Thirion

    - 8 -Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de

    prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2014 Eric Thirion. Aucune reproduction,mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisationexpresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.

    http://lazarus.developpez.com/cours/eric-thirion/bases-programmation/

    Le cours de programmation proprement dit porte sur les instructions permettant de rentrer des donnes dans lammoire d'un ordinateur (la lecture, l'affectation) ou d'afficher des informations l'cran, ce qui demande au pralabled'introduire les notions de variables, de type et d'expressions.

    Un peu d'histoire

    De la machine de Turing UML, retrouvez les moments-cls de l'histoire de l'informatique dans cette srie de slides :

    tlchargez le document Projo-Histoire.pdf.

    L'ordinateur

    Un ordinateur est une machine utilisant et produisant de l'information. Il reoit de l'information (de l'utilisateur, parinternet), donne de l'information (informations affiches l'cran, imprimes), mmorise de l'information (enmmoire vive, sur disque dur, cl USB, CD, DVD) et traite de l'information (calcul mathmatique, raisonnement logique).

    Nous allons donc commencer par parler de l'information et plus exactement de la manire dont elle est reprsentedans un ordinateur.

    Codage binaire

    Le bit

    Toute information traite par un ordinateur est code en binaire, c'est--dire par une suite de bits valant zro ou un.

    La reprsentation physique du zro et du un dpend du type de support utilis : mmoire vive, disque dur, cl USB,CD, etc. Mais, quel que soit le type de support utilis, il s'agit toujours d'un point de vue logique, d'une suite de zroset de uns.

    Le transistor

    Pour prendre un exemple, la reprsentation physique actuelle d'un bit en mmoire vive est un transistor composde silicium. La reprsentation du zro et du un est base sur la rpartition des charges ngative et positive dansle transistor.

    Voici par exemple le zro :

  • Les bases de la programmation par Eric Thirion

    - 9 -Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de

    prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2014 Eric Thirion. Aucune reproduction,mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisationexpresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.

    http://lazarus.developpez.com/cours/eric-thirion/bases-programmation/

    Et voici le un :

    De 1970 2008, le nombre de transistors sur une puce lectronique a augment de manire vertigineuse en suivantla loi de Moore : le nombre de transistors par puce double tous les deux ans pour le mme prix de fabrication. Lestransistors deviennent donc de plus en plus petits.

  • Les bases de la programmation par Eric Thirion

    - 10 -Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de

    prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2014 Eric Thirion. Aucune reproduction,mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisationexpresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.

    http://lazarus.developpez.com/cours/eric-thirion/bases-programmation/

    Comme un signal lectrique met moins de temps parcourir une distance plus courte, cette progression a desrpercussions directes sur la vitesse des processeurs (elle double tous les 18 mois). Elle entrane galement uneaugmentation constante de la capacit des mmoires vives (la RAM des PC double tous les deux ans environ).

    En 2008, la taille minimale d'un transistor tait de l'ordre de 45 milliardimes de mtre.

    L'octet et autres units

    Une suite de huit bits est appele un octet (ou byte en anglais). C'est l'unit de base permettant de dfinir la dimensiond'un espace de stockage. Il en drive des units plus grandes comme :

    le kilooctet (ko = 210 octets = 1 024 octets) ; le mgaoctet (Mo = 1 024 Ko, soit environ un million d'octets) ; le gigaoctet (1 024 Mo, soit environ un milliard d'octets) ; le traoctet (1 024 Go, soit environ mille milliards d'octets).

    La mmoire vive des ordinateurs actuels (2013) est de l'ordre de plusieurs gigaoctets alors que la capacit desdisques durs se compte en traoctets.

    La manire de coder une information en binaire dpend du type d'information. Les informations numriques, parexemple, ne sont pas codes de la mme manire que le texte ou que les images ou le son.

    Pour fixer les ides, voyons deux exemples de codage.

    Le codage des nombres entiers en base 2

    Le codage binaire des nombres entiers est bas sur l'criture des nombres en base 2 (en utilisant uniquement leschiffres 0 et 1).

  • Les bases de la programmation par Eric Thirion

    - 11 -Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de

    prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2014 Eric Thirion. Aucune reproduction,mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisationexpresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.

    http://lazarus.developpez.com/cours/eric-thirion/bases-programmation/

    Le principe est le mme que celui de l'criture d'un nombre entier en base 10. c'est--dire l'criture habituelle d'unnombre utilisant les 10 chiffres de 0 9. Rappelons que dans ce systme, chaque chiffre est associ une puissancede 10. Il y a un chiffre pour les units (100), un chiffre pour les dizaines (101), un pour les centaines (102), un pourles milliers (103), etc. Par exemple, 2013 signifie : 2 103 + 0 102 + 1 101 + 3 100.

    L'criture d'un nombre entier en base 2 utilise le mme principe, sauf que les puissances de 10 sont remplaces pardes puissances de 2. Le nombre 40, s'crira par exemple : 101000. Car 40 = 32 + 8 ou autrement dit 25 + 23 et donc40 = 1 25 + 0 24 + 1 23 + 0 22 + 0 21 + 0 20.

    Comme 40 n'a que six chiffres en base 2, on peut reprsenter ce nombre sur un octet comme suit :

    Ce codage permet de coder de grands nombres en utilisant trs peu de bits :

    jusqu' 64 000 environ avec 2 octets pour les entiers non signs (32 000 avec signe) ; jusqu' 4 milliards environ avec 4 octets pour les entiers non signs (2 milliards avec signe).

    Le codage du texte en ASCII

    Les informations textuelles (suite de caractres) sont souvent codes en ASCII. Dans ce codage, chaque caractreest reprsent par un octet de valeur prdfinie dans une table de correspondance.

    La valeur est en fait l'interprtation du codage binaire de l'octet en nombre entier, comme nous l'avons vu auparagraphe prcdent.

    Prenons par exemple, le caractre ( . Dans la table de correspondance ASCII, on voit que sa valeur est 40.Autrement dit, le codage binaire du caractre ( est :

    c'est--dire le mme codage que celui du nombre 40 sur un octet !

    Mais alors comment un ordinateur peut-il distinguer un nombre d'un caractre ?

    Il ne le peut pas !

    En effet, la simple connaissance d'une suite de 0 et de 1 ne permet pas de savoir ce que reprsente cette suite. Toutdpend de la manire dont elle est interprte.

    Si on donne l'octet prcdent un ordinateur, il y verra le nombre 40, si ce moment-l il s'attend un nombre etil y verra le caractre ( , si ce moment-l, il s'attend un caractre.

  • Les bases de la programmation par Eric Thirion

    - 12 -Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de

    prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2014 Eric Thirion. Aucune reproduction,mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisationexpresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.

    http://lazarus.developpez.com/cours/eric-thirion/bases-programmation/

    Mmoire vive et adresse

    Barrette de RAM DDR3 de 4 Go

    La mmoire vive (ou RAM pour Random Access Memory) d'un ordinateur peut tre vue comme une suite continued'octets.

    Chaque octet possde un numro. Le numro du premier est 0, du deuxime 1, etc. Ce numro s'appelle l'adressede l'octet.

    Une plage mmoire est une suite d'octets conscutifs. Elle peut donc tre dfinie par une plage d'adresses (adressesminimale et maximale) ou bien par l'adresse de dbut (ou autrement dit, l'adresse minimale) de la zone et du nombred'octets qu'elle contient.

    Voici, par exemple, une plage mmoire de trois octets, dmarrant l'adresse 2 :

    Langage machine et programme excutable

    Processeur Intel 80486DX2 (taille: 12 6,75 mm)

    Le processeur d'un ordinateur excute en permanence des instructions que l'on appelle instructions machine. Ilcontient (en outre) des mmoires de petite taille (quelques octets), appeles registres, qui servent transfrer desdonnes de la mmoire vers le processeur (ou inversement) en vue d'effectuer des oprations sur ces donnes.

    Une instruction machine est un ordre donn au processeur.

  • Les bases de la programmation par Eric Thirion

    - 13 -Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de

    prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2014 Eric Thirion. Aucune reproduction,mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisationexpresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.

    http://lazarus.developpez.com/cours/eric-thirion/bases-programmation/

    Par exemple :

    copier une plage mmoire d'adresse donne dans un registre ; copier le contenu d'un registre dans une plage mmoire d'adresse donne ; additionner, soustraire, diviser ou multiplier les nombres contenus dans deux registres et enregistrer le

    rsultat dans un troisime registre.

    Nous avons vu plus haut que toute information traite par un ordinateur est code en binaire. Il en de mme desinstructions machine. Une instruction machine est code en binaire sur quelques octets (4 ou 8 dans les machinesactuelles). Une partie du codage dfinit le type d'opration effectuer et une autre, les objets (les registres, parexemple) sur lesquels cette opration doit agir.

    La manire de coder les instructions machine dpend du type de processeur.

    On appelle langage machine l'ensemble de conventions dfinissant le codage binaire desinstructions machine d'un type particulier de processeur.

    Une suite d'instructions machine constitue un programme ou plus prcisment un programmeexcutable.

    Il est important de noter que le langage machine est le seul langage directement excutable par un ordinateur. Leslangages de programmation (comme C, Java, PHP) ne le sont pas !

    Les programmes excutables peuvent se trouver en mmoire (on dit qu'ils sont rsidents) ou sur le disque, sousla forme de fichiers (reconnaissables sous Windows par leur extension .exe). Mais pour pouvoir tre excuts, ilsdoivent forcment tre chargs en mmoire :

  • Les bases de la programmation par Eric Thirion

    - 14 -Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de

    prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2014 Eric Thirion. Aucune reproduction,mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisationexpresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.

    http://lazarus.developpez.com/cours/eric-thirion/bases-programmation/

    Nous avons dit plus haut qu'un programme excutable est une suite d'instructions.

    En fait, pour tre plus exact, il faudrait dfinir un programme excutable comme un mlange de zones de codecontenant des instructions machine et de zones de donnes servant stocker provisoirement les informationstraites (donnes ou rsultats).

    Processus

    La mmoire d'un ordinateur contient plusieurs programmes que le processeur excute tour de rle une tellevitesse que l'on a l'impression qu'ils sont excuts en mme temps.

    Chacun de ces programmes rsidents possde donc ses propres zones d'instructions et de donnes.

  • Les bases de la programmation par Eric Thirion

    - 15 -Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de

    prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2014 Eric Thirion. Aucune reproduction,mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisationexpresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.

    http://lazarus.developpez.com/cours/eric-thirion/bases-programmation/

    L'excution d'un programme particulier par un ordinateur s'appelle un processus.

    Notez qu'un mme programme peut donner lieu plusieurs processus.

    Parmi les processus rsidents figurent ncessairement les processus systme, qui servent (entre autres) grerles priphriques (clavier, souris, cran, disque, lecteur de CD, imprimantes, etc.) et les fichiers.

    Les entres-sorties

    Jusqu' prsent, nous avons essentiellement dcrit l'ordinateur du point de vue du processeur et de la mmoire vive.Le processeur excute en permanence des programmes chargs en mmoire. Ces programmes sont des suitesd'instructions machine et de plages mmoire rserves aux donnes.

    Mais si les instructions excutes par le processeur ne font que transfrer des informations entre la mmoire vive etles registres, comment peut-il communiquer avec le clavier ? Avec la souris ? Avec l'cran ?

    Comment les plages mmoire rserves aux donnes peuvent-elles recevoir les donnes de l'utilisateur ?

    Comment peuvent-elles s'afficher l'cran ?

    Pour rpondre ces questions, il nous faut tout d'abord complter notre vision d'un ordinateur et considrer leslments externes l'unit centrale que l'on appelle les priphriques (cran, clavier, souris, disque, lecteur de CD,cl USB, imprimante, etc.).

    Les priphriques ont leurs propres circuits spcialiss appels interfaces d'entres-sorties. Pour l'cran, parexemple, il s'agit de la carte graphique. Ces circuits peuvent avoir leurs propres registres, leur propre mmoire etmme leurs propres processeurs.

    Ils communiquent avec le processeur et la mmoire par un ensemble de fils que l'on appelle le bus de donnes.

  • Les bases de la programmation par Eric Thirion

    - 16 -Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de

    prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2014 Eric Thirion. Aucune reproduction,mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisationexpresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.

    http://lazarus.developpez.com/cours/eric-thirion/bases-programmation/

    En ralit, les instructions excutes par le processeur ne se limitent pas la mmoire centrale. Certainesinstructions spciales, appeles instructions d'entre-sortie, permettent de transfrer des donnes entre lesinterfaces d'entre-sortie et les registres du processeur ou directement avec la mmoire vive.

    Ceci explique trs sommairement comment se fait la communication entre le processeur et les priphriqueset indirectement, comment un programme peut envoyer des informations vers un priphrique ou recevoir desinformations provenant d'un priphrique.

    Mais cela n'explique pas l'interaction avec l'utilisateur. En effet, vous remarquerez que votre ordinateur ragitinstantanment (ou quasiment) lorsque vous jectez un CD, introduisez une cl USB, bougez la souris, appuyez surune touche du clavier, etc.

    Ces actions physiques de l'utilisateur sur l'ordinateur peuvent se produire n'importe quel moment, alors que leprocesseur est occup excuter les instructions machine d'un programme quelconque. Or c'est ncessairementle processeur qui doit ragir ces actions.

    Il faut donc qu'il soit capable d'interrompre l'excution du programme en cours pour ragir immdiatement n'importequelle action de l'utilisateur.

    Comment cela est-il possible ?

    Les interruptions

    La rponse cette question se trouve dans le mcanisme d'interruption.

    Une interruption (physique) est un signal envoy au processeur par un dispositif externe l'unit centrale.

    Le clavier va par exemple envoyer un signal d'interruption au processeur chaque fois qu'une touche est appuye. Lasouris envoie une interruption chaque fois qu'elle est dplace ou que l'utilisateur effectue un clic.

    Le processeur possde des entres spcialement prvues pour recevoir ces signaux.

    Lorsqu'il reoit une interruption, il interrompt provisoirement le programme qu'il est en train d'excuter pour excuterdes instructions du systme d'exploitation prvues, pour traiter ce type d'interruption. Il existe par exemple desinstructions prvues pour traiter les interruptions clavier, d'autres pour traiter des interruptions souris, etc.

  • Les bases de la programmation par Eric Thirion

    - 17 -Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de

    prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2014 Eric Thirion. Aucune reproduction,mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisationexpresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.

    http://lazarus.developpez.com/cours/eric-thirion/bases-programmation/

    Le systme ne gre pas entirement les interruptions ; elles sont sous-traites par les pilotes (drivers en anglais)des priphriques. Un pilote est un programme spcialis dans la gestion d'un priphrique spcifique. Il ne fait paspartie du systme d'exploitation, car il est gnralement produit par le fabricant du priphrique.

    Une fois l'interruption traite, le processeur reprendra ce qu'il tait en train de faire l'endroit exact o il s'tait arrt.

    Pour donner une image, on pourrait comparer ce mcanisme au rflexe humain. Prenons par exemple une personnelisant un livre. Le cerveau de cette personne joue le rle du processeur. Le programme excut est la lecture dulivre. Soudain, une abeille pique la personne. La douleur perue est le signal d'interruption envoy au cerveau (leprocesseur). Par rflexe, la personne lche le livre. C'est une raction prprogramme dans l'inconscient (le systmed'exploitation). Aprs avoir soign la piqre (traitement de l'interruption), la personne reprend la lecture du livre l'endroit o elle s'tait arrte.

    Les Interfaces graphiques

    Historique

    Les premires interfaces graphiques sont apparues avec l'invention de la souris (1967) et des crans graphiques,c'est--dire capables d'afficher des images.

    Avant cela, les crans d'ordinateur n'affichaient que du texte et ressemblaient plutt ceci :

  • Les bases de la programmation par Eric Thirion

    - 18 -Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de

    prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2014 Eric Thirion. Aucune reproduction,mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisationexpresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.

    http://lazarus.developpez.com/cours/eric-thirion/bases-programmation/

    En 1973 apparat le premier ordinateur avec interface graphique : la station graphique Xerox Alto fabrique enCalifornie, Palo Alto, par la socit Xerox (par ailleurs l'origine de la machine photocopier).

    La station Xerox Alto

  • Les bases de la programmation par Eric Thirion

    - 19 -Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de

    prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2014 Eric Thirion. Aucune reproduction,mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisationexpresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.

    http://lazarus.developpez.com/cours/eric-thirion/bases-programmation/

    En 1983, cet ordinateur a inspir le premier PC de Apple, le LISA, anctre des Macintosh puis en 1985, le premiersystme Windows (Windows 1.0) de Microsoft.

    Le Lisa

    C'est ainsi que sont apparus les premiers systmes d'exploitation munis d'interfaces graphiques, dans lesquelles lesapplications apparaissent sous forme de fentres ou d'icnes sur lesquelles on peut agir grce la souris.

    Interface du systme

    De manire gnrale, l'interface graphique d'un programme est la manire dont il se prsente visuellement l'cranlorsqu'il s'excute.

    Dans cette partie, nous dcrivons plus particulirement l'interface graphique du systme qui apparat au dmarraged'un ordinateur. Dans Windows, par exemple, elle est constitue du bureau et d'une barre de tches.

    Le bureau contient des icnes de diffrents programmes. La barre des tches donne accs (entre autres) au menuDmarrer, par l'intermdiaire duquel on peut accder diffrents composants du systme, configurer l'ordinateur,arrter l'ordinateur, etc.

    Tout ceci constitue l'interface graphique du systme d'exploitation.

  • Les bases de la programmation par Eric Thirion

    - 20 -Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de

    prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2014 Eric Thirion. Aucune reproduction,mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisationexpresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.

    http://lazarus.developpez.com/cours/eric-thirion/bases-programmation/

    Le curseur

    On voit galement apparatre le curseur, qui se prsente gnralement sous la forme d'une petite flche. Le curseurpermet d'indiquer sur quel lment de l'interface graphique on veut agir.

    Lorsque l'utilisateur dplace la souris, il provoque une interruption gre par le systme d'exploitation. Le traitementpar dfaut de cette interruption consiste dplacer le curseur.

    Gestion du clic

    Comme nous l'avons vu, un clic provoque une interruption, qui est tout d'abord intercepte par le systmed'exploitation. Le traitement de cette interruption dpendra de la position du curseur. Nous reviendrons l-dessusplus en dtail un peu plus loin.

    Lorsque l'on clique sur l'icne d'un programme, par exemple, le systme le charge en mmoire et lance son excution.L'interface graphique de ce programme s'affiche alors l'cran.

    Fentre d'une application

    L'interface graphique d'un programme se prsente gnralement sous la forme d'un rectangle, appel fentre, danslequel apparaissent des composants ou contrles. Les composants sont par exemple des menus, des barresd'outils, des zones de texte

    Voici par exemple une partie de l'interface graphique d'Excel 2003 :

    Les zones de texte sont des zones rectangulaires de l'cran dans lesquelles il est possible de taper du texte sur uneligne. Nous reviendrons plus en dtail sur ce composant graphique.

    un moment donn, l'cran contient une (ou plusieurs) fentre(s) pour chaque application ouverte. Par exemple,une fentre pour Internet Explorer, une fentre pour Word, une autre pour Photoshop, etc. Mais parmi toutes cesfentres, il y a une seule fentre active : c'est la fentre qui apparat au premier plan et qui contient le curseur.

  • Les bases de la programmation par Eric Thirion

    - 21 -Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de

    prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2014 Eric Thirion. Aucune reproduction,mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisationexpresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.

    http://lazarus.developpez.com/cours/eric-thirion/bases-programmation/

    Les vnements

    Lorsqu'il se produit une interruption souris (dplacement de la souris ou clic) ou clavier (touche appuye ou relche),il y a deux possibilits :

    1 Il n'y a aucune fentre active. Dans ce cas, l'interruption est directement gre par le systme. SousWindows, c'est par exemple le cas lorsque vous cliquez sur le bureau ;

    2 Il y a une fentre active. Dans ce cas, le systme intercepte tout d'abord l'interruption, mais il ne la gre pasforcment entirement. Une partie de la gestion de l'interruption est sous-traite l'application associe cette fentre. Pour cela, il communique toutes les informations utiles l'application sous la forme d'unvnement. Les parties d'une l'application qui interceptent les vnements et les grent sont appels desgestionnaires d'vnements.

    Un vnement est li un composant particulier de la fentre, que l'on pourrait appeler le composant actif : c'estle composant contenant le curseur au moment de l'vnement.

  • Les bases de la programmation par Eric Thirion

    - 22 -Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de

    prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2014 Eric Thirion. Aucune reproduction,mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisationexpresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.

    http://lazarus.developpez.com/cours/eric-thirion/bases-programmation/

    Une application pourra ainsi savoir sur quel composant l'utilisateur a cliqu ou quel tait le composant actif lorsqu'ila appuy sur telle touche du clavier.

    Les zones de texte

    Les interfaces graphiques sont gnralement conues pour viter au maximum de taper du texte. Mais il arrive quece soit invitable. Par exemple, pour donner le nom d'un fichier, une adresse web, une recherche par mots-cls, etc.

    Dans une interface graphique, la saisie de texte se fait par l'intermdiaire des zones de texte, zones rectangulairesdans lesquelles il est possible de rentrer du texte.

    Pour cela, l'utilisateur doit tout d'abord activer la zone de texte en cliquant dedans. Le curseur change alors de forme.En gnral, il se transforme en une barre verticale clignotante, ce qui signifie que la zone de texte est active et prte recevoir du texte.

    Lorsqu'une zone de texte est active, les caractres frapps au clavier viennent s'afficher l'cran l'intrieur decelle-ci. On a ainsi l'impression que les caractres sont directement transfrs du clavier vers l'cran. En ralit, ilssont tout d'abord transfrs en mmoire par le systme d'exploitation.

    En effet, chaque zone de texte est associe une plage mmoire, appele buffer, destine mmoriser lescaractres frapps.

    Supposons qu'une zone de texte soit active et que l'utilisateur appuie sur la touche s . Le systme va alorstransfrer le caractre s dans le buffer associ cette zone de texte, puis dans un deuxime temps, afficher lecontenu du buffer l'cran l'intrieur de la zone de texte.

    S'il appuie ensuite sur la touche t , le caractre t va tre rajout dans le buffer aprs le s , puis le bufferva tre raffich.

    Ce mcanisme est trs important, car c'est essentiellement de cette manire que des donnes sont communiques un programme. Nous reviendrons l-dessus lorsque nous parlerons de la lecture des donnes.

    La programmation

    Les langages de programmation ont t introduits pour viter l'criture directe de programmes en langage machine(tche extrmement fastidieuse, pour ne pas dire impossible !).

  • Les bases de la programmation par Eric Thirion

    - 23 -Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de

    prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2014 Eric Thirion. Aucune reproduction,mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisationexpresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.

    http://lazarus.developpez.com/cours/eric-thirion/bases-programmation/

    Mais tout d'abord, qu'est-ce qu'un programme ?

    Notion de programme

    Un programme crit dans un langage de programmation se prsente sous la forme d'un textedans lequel figurent les instructions excuter. Dans ce texte, les plages mmoire contenantdes donnes portent un nom. Ce sont les variables du programme.

    Voici par exemple une instruction crite en Pascal :

    somme := x + y;

    Cette instruction signifie : additionner les nombres contenus dans les variables x et y et stocker le rsultat dans lavariable somme.

    Dans les cours de programmation, un programme est souvent dfini comme une suite d'instructions. Cette dfinitionn'est pas tout fait exacte, car les programmes contiennent galement des dclarations. Une dclaration permet(entre autres) de dfinir la nature des variables sur lesquelles le programme doit travailler.

    Voici par exemple une dclaration de variable crite en Pascal :

    var x, y , somme : integer;

    Ici le programmeur a dclar que les variables x, y et somme doivent contenir des nombres entiers.

    Notion de langage

    Un langage de programmation est un ensemble de conventions dfinissant la manire d'crireun programme sous la forme d'un texte.

    Ces conventions comprennent des conventions syntaxiques (comparables la grammaire d'une langue naturelle) etlexicales (comparables l'orthographe d'une langue naturelle).

    Elles sont videmment diffrentes d'un langage l'autre. Voici par exemple l'instruction d'addition vue plus hauttraduite dans diffrents langages de programmation :

  • Les bases de la programmation par Eric Thirion

    - 24 -Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de

    prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2014 Eric Thirion. Aucune reproduction,mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisationexpresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.

    http://lazarus.developpez.com/cours/eric-thirion/bases-programmation/

    On constate que dans certains langages (comme PHP et LISP), les dclarations de variables ne sont pas obligatoires.Ces langages sont dits non typs.

    Tous les langages de programmation possdent des mots spciaux, que l'on appelle des mots-cls (dans l'exempleci-dessus, ces mots figurent en gras). Les mots-cls ont une signification particulire prdfinie dans le langage deprogrammation. Ils ne peuvent donc pas tre utiliss par le programmeur pour signifier autre chose.

    En Pascal, par exemple, le mot-cl Integer signifie nombre entier.

    Fichiers sources

    Un programme crit dans un langage de programmation se prsente sous la forme d'un ou plusieurs fichiers appelsfichiers sources (par opposition aux fichiers excutables).

    Ces fichiers contiennent les programmes tels qu'ils ont t initialement crits par les dveloppeurs. Ce sont des textescrits en un langage de programmation particulier, que l'on peut visualiser l'aide d'un diteur de texte (WordPad,par exemple).

    Mais, comme nous l'avons dj dit plus haut, le seul langage de programmation directement excutable par unordinateur est le langage machine adapt son processeur.

    Les fichiers sources doivent donc tre traduits en langage machine avant de pouvoir tre excuts. On appelle celala compilation. Mais nous verrons plus loin que la compilation n'est pas la seule approche possible : il en existeune autre appele interprtation.

    Compilation

    Notion de compilateur

    Certains langages, le C par exemple, ne peuvent tre que compils. Les langages de ce type sont appels langagescompils. Pour pouvoir les utiliser, vous devez avoir install sur votre ordinateur un compilateur spcifique celangage.

    Le compilateur est un programme excutable qui permet de traduire un programme crit dansun langage de programmation en langage machine.

    Par exemple, pour pouvoir programmer en C, vous devez ncessairement avoir install un compilateur C sur votremachine.

  • Les bases de la programmation par Eric Thirion

    - 25 -Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de

    prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2014 Eric Thirion. Aucune reproduction,mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisationexpresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.

    http://lazarus.developpez.com/cours/eric-thirion/bases-programmation/

    Aprs avoir t compil, le programme peut tre excut en chargeant sa version excutable en mmoire :

    Exemple de compilation

    Pour fixer un peu les ides, reprenons le programme d'addition en Pascal et voyons comment il pourrait tre traduiten langage machine.

    Les variables dclares sont tout d'abord associes des plages mmoires :

  • Les bases de la programmation par Eric Thirion

    - 26 -Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de

    prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2014 Eric Thirion. Aucune reproduction,mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisationexpresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.

    http://lazarus.developpez.com/cours/eric-thirion/bases-programmation/

    Les instructions sont ensuite traduites en instructions machine portant sur les registres et les plages mmoireassocies aux variables :

    Dans cet exemple, nous n'avons pas donn le code binaire des instructions machine, car il serait sans intrt. Onvoit qu'une simple instruction crite en langage de programmation peut correspondre de nombreuses instructionsmachine.

    Interprtation

    Les programmes crits en langages interprts (Java, Visual Basic, PHP) peuvent tre excuts sans avoir tauparavant entirement traduits en langage machine.

    Ils font appel un interprteur.

    Tout comme un compilateur, un interprteur est spcifique un langage donn.

    Il existe, par exemple, un interprteur Java, un interprteur Visual Basic, un interprteur PHP

    Contrairement aux programmes compils, les programmes interprts ne sont pas directement excuts parl'ordinateur, mais par l'interprteur (qui, lui, est excut par la machine !).

    Pour excuter un programme interprt, il faut tout d'abord lancer l'interprteur, puis charger le code source duprogramme en mmoire. Ce code source peut ensuite tre excut par l'interprteur :

  • Les bases de la programmation par Eric Thirion

    - 27 -Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de

    prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2014 Eric Thirion. Aucune reproduction,mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisationexpresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.

    http://lazarus.developpez.com/cours/eric-thirion/bases-programmation/

    L'interprteur s'excute donc toujours en mme temps que le programme interprt.

    Notez que certains interprteurs (comme Visual Basic) peuvent galement fonctionner en tant que compilateur. Celapermet d'obtenir une version plus rapide et commercialisable du programme, lorsque la mise au point est termine.En effet :

    l'excution d'un programme compil est beaucoup plus rapide que son interprtation ; sous sa forme excutable, un programme peut tre vendu sans divulguer les fichiers sources, ainsi qu' des

    utilisateurs ne possdant pas l'interprteur sur leur machine.

    Les EDI

    Le dveloppement d'application (ou si vous prfrez la programmation) se fait aujourd'hui grce des logicielsappels EDI (pour Environnement de Dveloppement Intgr) ou IDE en anglais. Un EDI peut tre adapt unlangage de programmation particulier (Delphi, Lazarus pour le langage Pascal, Visual C++ pour le langage C++) ou plusieurs langages (Eclipse pour Java, PHP, JavaScript).

    Un EDI comprend en gnral un diteur de texte spcialement adapt au langage, un compilateur et/ou uninterprteur, un dbogueur (outil de mise au point) et, surtout, un outil de dveloppement d'interface graphique.

  • Les bases de la programmation par Eric Thirion

    - 28 -Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de

    prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2014 Eric Thirion. Aucune reproduction,mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisationexpresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.

    http://lazarus.developpez.com/cours/eric-thirion/bases-programmation/

    Avant l'existence des EDI, la conception de l'interface graphique d'un programme tait extrmement fastidieuse, carle dveloppeur devait lui-mme prciser dans le programme les positions et dimensions de tous les composants del'interface.

    Avec un EDI cela se fait simplement en dessinant en quelque sorte l'interface graphique l'aide de la souris.videmment, les instructions permettant d'afficher l'interface existent toujours, mais au lieu d'tre donnes par leprogrammeur, elles sont gnres automatiquement par l'EDI.

    La programmation vnementielle

    Avec l'apparition des interfaces graphiques dans les annes 80, la programmation est devenue plus complexe. Lesprogrammes devaient d'une part produire tout le design de l'interface et d'autre part pouvoir ragir aux vnements,c'est--dire aux actions de l'utilisateur sur les diffrents composants de cette interface.

    Il est alors apparu une nouvelle manire de programmer, appele programmation vnementielle, qui consiste associer des gestionnaires d'vnements aux composants de l'interface.

    Un des premiers langages permettant la programmation vnementielle a t le langage Visual Basic de Alan Cooper(premire version en 1991) et son environnement de dveloppement intgr (un des premiers galement). Le concepta ensuite t repris par Borland avec Delphi.

    Alan Cooper - inventeur du Visual Basic

    Un des points les plus intressants des EDI est qu'ils facilitent la programmation vnementielle. Rappelons qu'avecun EDI, l'interface graphique peut tre dessine par le programmeur. Il peut ensuite associer un gestionnaired'vnements (initialement vide) un composant de l'interface en cliquant sur celui-ci.

  • Les bases de la programmation par Eric Thirion

    - 29 -Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de

    prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2014 Eric Thirion. Aucune reproduction,mme partielle, ne