programmation... · vi avant-propos avant-propos le langage c a été créé en 1972 par denis...

Download programmation... · VI Avant-propos Avant-propos Le langage C a été créé en 1972 par Denis Ritchie…

Post on 12-Sep-2018

215 views

Category:

Documents

0 download

Embed Size (px)

TRANSCRIPT

  • Programmer en langage CAvec exercices corrigs

    C. Delannoy

  • VI Avant-propos

    Avant-propos

    Le langage C a t cr en 1972 par Denis Ritchie avec un objectif relativement limit : crire un systme d'exploitation (UNIX).Mais ses qualits "oprationnelles" l'ont trs vite fait adopter par une large communaut de programmeurs.

    Une premire "dfinition" du langage est apparue en 1978 avec l'ouvrage de Kernighan et Ritchie The C programming language.Mais le langage a continu d'voluer aprs cette date travers les diffrents compilateurs qui ont vu le jour. Son succs internationala contribu sa normalisation, d'abord par l'ANSI (American National Standard Institute), puis par l'ISO (InternationalStandardization Organisation), plus rcemment en 1993 par le CEN (Comit europen de normalisation) et enfin, en 1994, parl'AFNOR. En fait, et fort heureusement, toutes ces normes sont identiques, et l'usage veut qu'on parle de "C ANSI" ou de "C normeANSI".

    La norme ANSI largit, sans la contredire, la premire dfinition de Kernighan et Ritchie. Outre la spcification de la syntaxe dulangage, elle a le mrite de fournir la description d'un ensemble de fonctions que l'on doit trouver associes tout compilateur C sousforme d'une "bibliothque standard". En revanche, compte tenu de son arrive tardive, cette norme a cherch "prserver l'existant",en acceptant systmatiquement les anciens programmes. Elle n'a donc pas pu supprimer certaines formulations quelque peu dsutesou redondantes1.

    Cet ouvrage a t conu comme un cours de programmation en langage C. Suivant notre dmarche habituelle, hrite de notreexprience de l'enseignement, nous prsentons toujours les notions fondamentales sur un ou plusieurs exemples avant d'en donnerplus formellement la porte gnrale. Souvent constitus de programmes complets, ces exemples permettent l'auto exprimentation.

    La plupart des chapitres proposent des exercices que nous vous conseillons de rsoudre d'abord "sur papier", en comparant vossolutions avec celles fournies en fin de volume et en rflchissant sur les diffrences de rdaction qui ne manqueront pasd'apparatre. Ils serviront la fois contrler les connaissances acquises et les appliquer des "situations" varies.

    Nous avons cherch privilgier tout particulirement la clart et la progressivit de l'expos. Dans cet esprit, nous avonssystmatiquement vit les "rfrences avant", ce qui, le cas chant, autorise une tude squentielle ; de mme, les points les plustechniques ne sont exposs qu'une fois bien assises les bases du langage (une prsentation prmature serait perue comme un "bruitde fond" masquant le fondamental).

    D'une manire gnrale, notre fil conducteur est ce qu'on pourrait appeler le "C moderne", c'est--dire non pas la norme ANSI "pureet dure", mais plutt l'esprit de la norme dans ce qu'elle a de positif. Nous pensons ainsi forger chez le lecteur de bonnes habitudesde programmation en C et, par la mme occasion, nous lui facilitons son entre future dans le monde du C++.

    Par ailleurs, nous mentionnons toujours les risques d'cart la norme que l'on rencontre encore en pratique2. Le lecteur est ainsi enmesure, s'il le souhaite, de raliser aussi bien des programmes portables en thorie (c'est--dire la norme ANSI) que desprogrammes portables en pratique (c'est--dire acceptables par tous les compilateurs, mme les plus anciens!).

    Enfin, outre son caractre didactique, nous avons dot cet ouvrage d'une organisation approprie une recherche rapided'information :

    - ses chapitres sont fortement structurs : la table des matires, fort dtaille, offre de nombreux "points d'entre",

    1. Par exemple, la premire dfinition de Kernighan et Ritchie prvoit qu'on dclare une fonction en prcisant uniquement le type de son rsultat. La normeautorise qu'on la dclare sous forme d'un "prototype" (qui prcise en plus le type de ses arguments) mais ne l'impose pas. Notez toutefois que le prototypedeviendra obligatoire en C++.2. Dans le cas de compilateurs crits suivant la premire dfinition de Kernighan et Ritchie.

  • Avant-propos VII- au fil du texte, des "encadrs" viennent rcapituler la syntaxe des diffrentes instructions,

    - une annexe fournit la description des fonctions les plus usites de la bibliothque standard (il s'agit souvent d'une reprised'informations dj prsentes dans le texte),

    - un index dtaill permet une recherche sur un point prcis ; il comporte galement, associ chaque nom de fonction standard,le nom du fichier en-tte (.h) correspondant.

  • Table de s m ati re s

    I. GNRALITS SUR LE LANGAGE C.................................................................1

    1 - PRSENTATION PAR L'EXEMPLE DE QUELQUES INTRUCTIONS DU LANGAGE C 11.1 Un exemple de programme en langage C......................................................11.2 Structure d'un programme en langage C........................................................21.3 Dclarations.................................................................................................21.4 Pour crire des informations : la fonction printf ............................................31.5 Pour faire une rptition : l'instruction for.....................................................41.6 Pour lire des informations : la fonction scanf ................................................41.7 Pour faire des choix : l'instruction if .............................................................41.8 Les directives destination du prprocesseur ...............................................51.9 Un second exemple de programme ...............................................................6

    2 - QUELQUES RGLES D'CRITURE .................................................................72.1 Les identificateurs........................................................................................72.2 Les mots cls ...............................................................................................72.3 Les sparateurs ............................................................................................82.4 Le format libre .............................................................................................82.5 Les commentaires ........................................................................................9

    3 - CRATION D'UN PROGRAMME EN LANGAGE C.........................................93.1 L'dition du programme..............................................................................103.2 La compilation ...........................................................................................103.3 L'dition de liens........................................................................................103.4 Les fichiers en-tte.....................................................................................10

    II. LES TYPES DE BASE DU LANGAGE C...........................................................13

    1 - LA NOTION DE TYPE ....................................................................................132 - LES TYPES ENTIERS .....................................................................................14

    2.1 Leur reprsentation en mmoire .................................................................142.2 Les diffrents types d'entiers ......................................................................142.3 Notation des constantes entires.................................................................14

    3 - LES TYPES FLOTTANTS ...............................................................................153.1 Les diffrents types et leur reprsentation en mmoire................................153.2 Notation des constantes flottantes...............................................................15

    4 - LES TYPES CARACTRES ............................................................................164.1 La notion de caractre en langage C ...........................................................164.2 Notation des constantes caractres..............................................................16

    5 - INITIALISATION ET CONSTANTES..............................................................17

    III. LES OPRATEURS ET LES EXPRESSIONS EN LANGAGE C....................19

    1 - L'ORIGINALIT DES NOTIONS D'OPRATEUR ET D'EXPRESSION EN LANGAGE C 192 - LES OPRATEURS ARITHMTIQUES EN C ................................................20

    2.1 Prsentation des oprateurs ........................................................................202.2 Les priorits relatives des oprateurs..........................................................20

    3 - LES CONVERSIONS IMPLICITES POUVANT INTERVENIR DANS UN CALCUL D'EXPRESSION 213.1 Notion d'expression mixte ..........................................................................213.2 Les conversions d'ajustement de type..........................................................213.3 Les promotions numriques........................................................................223.4 Le cas du type char.....................................................................................23

    4 - LES OPRATEURS RELATIONNELS ............................................................245 - LES OPRATEURS LOGIQUES .....................................................................256 - L'OPRATEUR D'AFFECTATION ORDINAIRE .............................................27

    6.1 Notion de lvalue.........................................................................................276.2 L'oprateur d'affectation possde une associativit de droite gauche .........28

  • X Table de s m ati re s6.3 L'affectation peut entraner une conversion.................................................28

    7 - LES OPRATEURS D'INCRMENTATION ET DE DCRMENTATION ....287.1 Leur rle......................................

Recommended

View more >