Programmation I Chapitre 1 : Introduction au langage C Page : 1/51 Chapitre 1 :

Programmation I Chapitre 1 : Introduction au langage C Page : 1/51 Chapitre 1 : Introduction au langage C Objectifs  Initiation au langage C  Connaître la structure d’un programme C  Connaître les composantes élémentaires du C  Se familiariser avec les fonctions assurant l’échange d’information entre la mémoire centrale et les périphériques standard. 1. Petite histoire du C 1.1. Historique Le langage C a été mis au point par D.Ritchie et B.W.Kernighan au début des années 70. Leur but était de permettre de développer un langage qui permettrait d'obtenir un système d'exploitation portable. Ils se sont inspirés d’autres langages, pour créer un nouveau langage: le langage C. La première définition de ce langage a été donnée dans leur livre commun « The C programming language ». Toutefois, suite à l'apparition de nombreux compilateurs C, l'ANSI (abréviation de American National Standards Institute) a décidé de normaliser ce langage pour donner ce que l'on appelle le C-ANSI. Suite à cette norme, Ritchie et Kernighan ont sorti une deuxième édition du livre en intégrant les modifications apportées par l'ANSI. 1.2. Avantages Le grand succès du langage C s'explique par les avantages suivants; C est un langage:  Universel C n'est pas orienté vers un domaine d'applications spéciales, comme par exemple FORTRAN (applications scientifiques et techniques) ou COBOL (applications commerciales ou traitant de grandes quantités de données).  Compact C est basé sur un noyau de fonctions et d'opérateurs limités, qui permet la formulation d'expressions simples, mais efficaces.  Moderne C est un langage structuré, déclaratif et récursif; il offre des structures de contrôle et de déclaration comparables à celles des autres grands langages de ce temps (FORTRAN, COBOL, PASCAL, etc.).  Près de la machine Comme C a été développé en premier lieu pour programmer le système d'exploitation UNIX, il offre des opérateurs qui sont très proches de ceux du langage machine et des fonctions qui permettent un accès simple et direct aux fonctions internes de l'ordinateur.  Rapide Comme C permet d'utiliser des expressions et des opérateurs qui sont très proches du langage machine, il est possible de développer des programmes efficients et rapides.  Indépendant de la machine Bien que C soit un langage près de la machine, il peut être utilisé sur n'importe quel système en possession d'un compilateur C. Aujourd'hui C est devenu le langage de programmation standard dans le domaine des micro- ordinateurs.  Portable Programmation I Chapitre 1 : Introduction au langage C Page : 2/51 En respectant le standard ANSI-C, il est possible d'utiliser le même programme sur tout autre système (autre hardware, autre système d'exploitation), simplement en le recompilant.  Extensible C ne se compose pas seulement des fonctions standard; le langage est animé par des bibliothèques de fonctions privées ou livrées par de nombreuses maisons de développement. 1.3. Désavantages Evidemment, rien n'est parfait ; C a les désavantages suivants:  Efficience et compréhensibilité En C, nous avons la possibilité d'utiliser des expressions compactes et efficientes. D'autre part, nos programmes doivent rester compréhensibles pour nous-mêmes et pour d'autres. Mais, ces deux exigences peuvent se contredire réciproquement. Les formulations 'courtes' représentent le bon style dans C et sont de loin préférables aux deux autres. Nous constatons donc que:  La programmation efficiente en C nécessite beaucoup d'expérience et n'est pas facilement accessible à des débutants.  Sans commentaires ou explications, les programmes peuvent devenir incompréhensibles, donc inutilisables.  Discipline de programmation Le programmeur a donc beaucoup de libertés, mais aussi des responsabilités: il doit veiller lui-même à adopter un style de programmation propre, solide et compréhensible. 2. L’environnement et les bibliothèques Pour le travail pratique en C, il faut utiliser un compilateur et un éditeur facile à utiliser. A titre d'exemple on décrit ici l'utilisation de l'environnement Borland C++ (Version 3.1). Ce programme nous offre une surface de programmation confortable et rapide. Tout autre compilateur qui permet la programmation selon le standard ANSI-C fait aussi bien l'affaire. 2.1. Description de l'environnement Borland C Borland C est une implémentation complète du standard C. Le compilateur Borland C est capable de produire du code C selon le standard ANSI-C. D'autre part, Borland C nous offre toute une série de bibliothèques, qui permettent d'exploiter les capacités du PC. On se limite à une brève description des menus de Borland C.  FILE : gestion des fichiers, retour au DOS.  EDIT : commandes d'édition du texte.  SEARCH : recherche d'un texte, d'une déclaration de fonction, de la position d'une erreur dans le programme.  RUN : exécution d'un programme.  COMPILE : traduction et/ou enchaînement des programmes.  DEBUG : détection d'erreurs en inspectant les données.  PROJECT : gestion de projets.  OPTIONS : changement et sauvetage des réglages par défaut: - des menus, - des options du compilateur, - de l'environnement.  WINDOW : visualisation et disposition des différentes fenêtres sur l'écran.  HELP : système d'aide Programmation I Chapitre 1 : Introduction au langage C Page : 3/51 2.2. Les bibliothèques de fonctions prédéfinies 2.2.1 Utilisation des bibliothèques de fonctions La pratique en C exige l'utilisation de bibliothèques de fonctions. Ces bibliothèques sont disponibles dans leur forme précompilée (extension: .LIB). Pour pouvoir les utiliser, il faut inclure des fichiers en-tête (header files - extension .H) dans nos programmes. Ces fichiers contiennent des 'prototypes' des fonctions définies dans les bibliothèques et créent un lien entre les fonctions précompilées et nos programmes. 2.2.2. L'instruction #include L'instruction #include insère les fichiers en-tête indiqués comme arguments dans le texte du programme au moment de la compilation. 2.2.3. Identification des fichiers Lors de la programmation en Borland C, nous travaillons donc avec différents types de fichiers qui sont identifiés par leurs extensions: *.C fichiers source *.OBJ fichiers compilés (versions objet) *.EXE fichiers compilés et liés (versions exécutables) *.LIB bibliothèques de fonctions précompilées *.H fichiers en-tête (header files) Exemple Nous avons écrit un programme qui fait appel à des fonctions mathématiques et des fonctions graphiques prédéfinies. Pour pouvoir utiliser ces fonctions, le programme a besoin des bibliothèques: MATHS.LIB et GRAPHICS.LIB Nous devons donc inclure les fichiers en-tête correspondants dans le code source de notre programme à l'aide des instructions: #include <math.h> #include <graphics.h> Après la compilation, les fonctions précompilées des bibliothèques seront ajoutées à notre programme pour former une version exécutable du programme. 2.3. Phases de compilation La compilation se fait généralement en plusieurs phases:  Le compilateur transforme le code source en code objet, et le sauvegarde dans un fichier objet, c'est-à-dire qu'il traduit le fichier source en langage machine.  Le compilateur fait ensuite appel à un éditeur de liens (en anglais linker) qui permet d'intégrer dans le fichier final tous les éléments annexes (fonctions ou librairies) auquel le programme fait référence mais qui ne sont pas stockés dans le fichier source.  Puis, il crée un fichier exécutable qui contient tout ce dont il a besoin pour fonctionner de façon autonome, le fichier ainsi créé possède l'extension .exe. Programmation I Chapitre 1 : Introduction au langage C Page : 4/51 Dans le cas du langage C, une phase supplémentaire apparaît, il s'agit du traitement du fichier par le préprocesseur C, un programme permet d'inclure dans le fichier source les éléments référencés par les instructions situées au début du fichier source (instructions précédées du caractère #). Les phases de compilation dans le cas d'un compilateur C sont donc les suivantes: 3. Notions de base Avant de pouvoir comprendre ou même écrire des programmes, il faut connaître la composition des programmes dans le langage de programmation. Dans cette section, nous allons discuter un petit programme en mettant en évidence les structures fondamentales d'un programme en C. 3.1. Hello C ! Suivons la tradition et commençons la découverte de C par l'inévitable programme « Hello World ». Ce programme ne fait rien d'autre qu'imprimer les mots suivants sur l'écran: « Hello World ». Comparons d'abord la définition du programme en C avec celle en langage algorithmique. HELLO_WORLD en langage algorithmique Algorithme HELLO_WORLD Début | Ecrire ("hello, world") Fin HELLO_WORLD en C #include <stdio.h> main( ) { printf("hello, world\n"); return 0; } Dans la suite, nous allons discuter les détails de cette implémentation. 3.2. Les composantes d'un programme en C Les programmes en C sont composés essentiellement de fonctions et de variables. Pour la pratique, il est donc indispensable de se familiariser avec les caractéristiques fondamentales de ces éléments. 3.2.1. Les fonctions En C, le programme principal et les sous-programmes sont définis comme fonctions. Il n'existe pas de structures spéciales pour le programme principal ni les procédures (comme en langage algorithmique). Le programme principal étant aussi une 'fonction', nous devons nous intéresser dès le début à la définition et aux caractéristiques des fonctions en C. Commençons par comparer la syntaxe de la définition d'une fonction en C avec celle d'une fonction en langage algorithmique. 3.2.1.1. Définition d'une fonction en langage algorithmique fonction <NomFonct> (<NomPar1>, <NomPar2>, ...):<TypeRés> | <déclarations des paramètres> | <déclarations locales> | <instructions> Programmation I Chapitre 1 : Introduction au langage C Page : 5/51 finfonction 3.2.1.2. uploads/s3/ 01-introduction-au-langage-c-pdf.pdf

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