Introduction au langage C Table des matières I - Chapitres du cours 5 A. Introd
Introduction au langage C Table des matières I - Chapitres du cours 5 A. Introduction au langage C..........................................................................5 1. Langage C et norme ANSI........................................................................................5 2. Environnements de programmation en C....................................................................6 3. Le fichier source......................................................................................................6 4. Premier programme en C.........................................................................................6 5. Précompilation et Compilation...................................................................................7 6. Édition de liens.......................................................................................................8 7. Fonctionnement......................................................................................................8 8. Premiers éléments en C...........................................................................................9 9. Erreur et avertissement à la compilation.....................................................................9 10. Ajout de commentaires.........................................................................................10 B. Algorithmes et langages...........................................................................10 1. Éléments de base..................................................................................................11 2. Méthodologie........................................................................................................12 3. Notion d'identificateur............................................................................................13 4. Type, Donnée, constante, et variable.......................................................................13 5. Éléments d'algorithmique.......................................................................................15 6. Exemples.............................................................................................................19 7. Langage...............................................................................................................22 8. Exercices de Révision (QCM)...................................................................................24 C. Structure d'un programme.......................................................................25 1. Le langage C.........................................................................................................25 2. Directives au préprocesseur....................................................................................27 3. Octet et adresse....................................................................................................29 4. Données et adresses..............................................................................................30 5. Les types simples..................................................................................................30 6. Les déclarations....................................................................................................32 7. La fonction "sizeof" du compilateur..........................................................................34 8. Les constituants élémentaires du langage C..............................................................35 9. Exercices de Révision (QCM)...................................................................................37 D. Premiers pas en C...................................................................................39 1. Instruction et expression........................................................................................39 2. Opérateurs...........................................................................................................42 3. Problème de conversion implicite et conversion explicite.............................................51 4. Priorité des opérateurs...........................................................................................53 5. Instructions d'entrées / sorties................................................................................54 6. Choix Simple, structures alternatives.......................................................................61 7. Instruction "break"................................................................................................63 8. Sélection Multiple : l'instruction switch.....................................................................63 9. Fonctions mathématiques.......................................................................................65 10. Exercices de révision (QCM)..................................................................................66 E. Les boucles.............................................................................................68 1. Définition.............................................................................................................68 2. Boucles à bornes définies.......................................................................................69 3. Boucles à bornes non définies.................................................................................72 4. Instructions « for »................................................................................................74 5. Instruction « while»...............................................................................................75 3 6. Instruction « do... while »......................................................................................76 7. Boucles imbriquées................................................................................................76 8. Choix de la boucle.................................................................................................77 9. Conseils...............................................................................................................78 10. Solutions des problèmes en langage C....................................................................78 11. Autres Exemples de boucles..................................................................................82 12. Instruction continue.............................................................................................83 13. L'instruction break...............................................................................................85 14. Compléments sur la boucle "for"............................................................................86 F. Tableaux, chaînes, et pointeurs.................................................................87 1. Définition.............................................................................................................87 2. Les tableaux unidimensionnels................................................................................88 3. Techniques algorithmiques liées aux tableaux...........................................................90 4. Les tableaux à deux dimensions..............................................................................91 5. Débordement par excès et par défaut......................................................................94 6. Les chaînes de caractères.......................................................................................94 7. Lien entre tableau, indice et pointeur.......................................................................98 8. Exercices de Révision (QCM).................................................................................103 G. Les fonctions........................................................................................106 1. Qu'est ce qu'une fonction ?...................................................................................106 2. Comment fonctionne l'invocation d'une fonction de bibliothèque ?..............................107 3. Déclaration d'une fonction et compilation................................................................108 4. Invocation d'une fonction.....................................................................................110 5. Paramètres formels, paramètres réels et variables locales.........................................113 6. Transmission d'un tableau en paramètres...............................................................118 7. Prototypage de fonction.......................................................................................120 8. Exemples divers..................................................................................................122 9. Portée des identificateurs, scope lexical..................................................................123 10. Exercices de Révision (QCM)...............................................................................128 H. Les structures.......................................................................................132 1. Définition...........................................................................................................132 2. Différence entre une structure et un tableau...........................................................132 3. Déclaration d'une structure...................................................................................132 4. Déclaration de variables structurées et initialisation à la déclaration...........................133 5. Accès aux champs d'une structure et affectation......................................................134 6. Erreurs à ne pas commettre..................................................................................136 7. Variables structurées et passage de paramètres......................................................138 8. Déclaration de type..............................................................................................139 9. Structure et tableau dans une structure..................................................................141 10. Tableaux de structures.......................................................................................142 11. Exercices de Révision (QCM)...............................................................................144 I. Allocation dynamique.............................................................................146 1. Allocation dynamique...........................................................................................146 2. La fonction « malloc »..........................................................................................147 3. La fonction "free"................................................................................................149 4. Un exemple de gestion de listes chaînées...............................................................149 4 I - Chapitres du cours I Introduction au langage C 5 Algorithmes et langages 10 Structure d'un programme 25 Premiers pas en C 39 Les boucles 68 Tableaux, chaînes, et pointeurs 87 Les fonctions 106 Les structures 132 Allocation dynamique 146 A. Introduction au langage C 1. Langage C et norme ANSI Définition Le langage C est né en 1972, date à laquelle Denis Ritchie l'a conçu dans un but précis : écrire un système d'exploitation (UNIX). Il s'est inspiré du langage B créé précédemment par K.Thompson qu'il a haussé au niveau d'un langage évolué, notamment en l'enrichissant de structures de contrôle (boucles) et de constructeur de types, tout en lui conservant ses aptitudes de programmation proche de la machine. Il a toutefois fallu attendre la parution, en 1978, de l'ouvrage "The C programming language" De Kernighan et Ritchie pour voir apparaître une première définition du langage C. Depuis cette date, le langage C a continué d'évoluer, à travers les nombreuses versions de compilateurs qui ont vu le jour. A partir de 1982, l'ANSI ( American National Standards Institute ) a formé un comité (connu sous le sigle X3J11) chargé de définir un standard. Ses travaux ont abouti à une proposition de normalisation, celle-ci définit les règles syntaxiques du langage C. En outre, elle fournit également les spécifications d'un ensemble de routines (des fonctions et des macros) formant ce que l'on nomme la "bibliothèque standard". Ce point est fondamental car la moindre opération d'entrée-sortie (écriture d'information sur l'écran et lecture d'information depuis le clavier par exemple) en C fait appel à au moins une routine de cette bibliothèque. En effet, contrairement à d'autres langages le C ne possède pas de telles fonctions de façon native. L'usage veut que l'on parle de «C norme ANSI ». Le langage C est un langage compilé, ce qui signifie qu'un programme écrit en C doit subir une suite 5 de traitements pour que la machine puisse l'exécuter. Nous les détaillerons dans ce chapitre. 2. Environnements de programmation en C Conseil Pour pouvoir suivre ce cours avec succès, vous avez besoin d'un compilateur ANSI- C Exemple Turbo C Borland C Microsoft C intel C gcc cc Zortech C Symantec Remarque Les système d'exploitation de type UNIX disposent de compilateurs C immédiatement disponible. Il s'agit de gcc et cc. 3. Le fichier source Pour créer un fichier source, il faut utiliser un programme appelé éditeur de texte, puis taper votre programme en respectant la syntaxe du langage C et enregistrer le fichier ainsi créé en indiquant son nom. Le fichier source d'un programme écrit en langage C est un simple fichier texte dont l'extension est par convention « .c » (exemple toto.c). Attention L'extension doit être en minuscule. Définition Ce fichier source doit être un fichier texte non formaté, c'est-à-dire un fichier texte dans sa plus simple expression, sans mise en forme particulière ou caractères spéciaux, il contient uniquement les caractères ASCII de base (ASCII = American Standard Code for Information Interchange. C'est une norme de codage pour les caractères. Elle définit 128 caractères numérotés de 0 à 127). L'ensemble du texte doit respecter la syntaxe du langage C. 4. Premier programme en C Fondamental Un programme exécutable écrit en langage C, comporte obligatoirement une fonction principale appelée main() renfermant les instructions qui doivent être exécutées. Celles-ci sont comprises entre les accolades ouvrante et fermante qui suivent le nom de la fonction. 6 Chapitres du cours Exemple Voici un exemple de programme en C : #include<stdio.h> void main() { printf("Ceci est votre premier programme\n"); } Définition Il s'agit du texte contenu dans un fichier nommé «toto.c» et vous le voyez tel qu'il apparaît dans l'éditeur de texte. Ce texte respecte la syntaxe du C. On vous demande de l'admettre pour l'instant. Les éléments d'explications vous seront fournis dans les chapitres suivants. Le type retourné par la fonction main() est void, c'est-à-dire « rien ». La norme actuelle du C (C99) impose que le type retourné par la fonction soit explicitement annoncé, on ne peut donc pas écrire « main() » sans spécifier le type de retour de cette fonction . Cette notion de type est importante et sera développé dans les chapitres suivants. Le langage C est un langage dit fortement typé. La fonction printf() produit une émission de caractères en séquence vers la sortie standard nommée stdout (par défaut il s'agit de l'écran). Il faut inclure un fichier nommé « stdio.h » qui définit l'usage de cette fonction printf. Entre une paire de " (double quote) nous avons une chaîne de caractères constante. On parle de littéral constant de type chaîne de caractères. De fait, "Ceci est votre premier programme \n" est donc une chaîne de caractères qui va s'afficher telle quelle. Il s'agit du paramètre réel ( au sens effectivement transmis) de la fonction printf. La séquence des deux caractères \ et n sera interprétée par la fonction printf comme l'affichage d'un saut de ligne. Elle correspond au caractère « saut de ligne » qui existe dans la table des codes ASCII. 5. Précompilation et Compilation Définition Parler de la compilateur C constitue un abus de langage. Il s'agit en fait d'un outil qui enchaîne trois étapes : La précompilation La compilation L'édition des liens Par exemple sous UNIX la compilation est lancé par la commande « cc toto.c ». Où cc est le nom du compilateur. Le programme source toto.c ne peut pas être exécuté de manière immédiate par l'ordinateur tel qu'il se présente à nos yeux. Il faut le traduire en langage machine (ou langage binaire), c'est à dire des instructions élémentaires que le microprocesseur peut exécuter. Pour rendre le texte exploitable par la machine, on utilise un programme destiné à le traduire : le compilateur C. La pré-compilation modifie le texte du fichier source en interprétant les directives destinées du préprocesseur. Le préprocesseur est un programme qui va traiter des directives qui lui sont destinés. Les directives de pré-compilation commencent par le symbole #. Elles sont facilement repérables. Le C ne possède pas la possibilité 7 Chapitres du cours d'écrire un texte sur l'écran : on doit donc inclure une bibliothèque qui intègre ces fonctions manquantes. La directive #include <stdio.h> réalise ainsi l'inclusion des uploads/Ingenierie_Lourd/ cour-1-c.pdf
Documents similaires










-
27
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Mai 22, 2022
- Catégorie Heavy Engineering/...
- Langue French
- Taille du fichier 1.1236MB