Vous êtes sur la page 1sur 10

Structure dun programme C :

Un programme C est constitu dune ou plusieurs fonctions. Une fonction est une portion de code indpendante La fonction main() ( dont le nom est impos) est la seule fonction obligatoire dun programme C. Elle renferme la partie principale d'un programme. Un programme C peut utiliser deux types de fonctions : les fonctions bibliothques qui sont fournies par le compilateur et les fonctions utilisateur qui sont crs par le programmeur. Toute fonction est constitue dun en-tte et dun bloc. Un bloc est dlimit par des accolades { et }. Il peut lui-mme contenir dautres blocs. En revanche, une fonction ne peut jamais contenir dautres fonctions.

<------bloc-------------> entte-Fonction { .............{.......}...{...{.......}..........}.......................} <---------------corps de la fonction ----------------> Tout programme C doit commencer par linstruction dappel #include indiquant au compilateur C quil doit inclure le contenu de certains fichiers pendant la compilation Exemple #include <stdio.h> signifie ajouter le contenu du fichier <stdio.h> de la bibliothque standard du compilateur C. Ce fichier dfinit les fonctions se rapportant aux entres-sorties . Exemple de programme C : #include <stdio.h> void main() { printf ( hello); } printf est une fonction de la bibliothque stdio.h qui affiche des information lcran.

Les lments fondamentaux pour construire un programme C incluent : 1- Lensemble des caractres de C 2- Les Identificateurs et les mots cls 3- Les types de donnes 4- Les constantes

5- Les variables et les tableaux


1

6- Les dclarations 7- Les expressions

8- Les instructions. Lensemble des caractres :


C utilise lensemble des caractres suivants : 1234Les lettres de A Z et de a z . Les chiffres de 0 9 Les caractres : + - * / % Les caractres jouant le rle de sparateurs: ( ) [ ] { `` . ` : + = ? 5- C utilise aussi certaines combinaisons de ces caractres.

} ; < > + ! ? & # `

Exemple: \n \t

new line tabulation

Les identificateurs et les mots cls 1) les identificateurs


Les identificateurs servent identifier les diffrents objets manipuls par le programme ( variables, tableaux, fonctions, tiquettes ...). Un identificateur est form d'une suite de caractres alphanumriques dont le premier caractre doit tre une lettre ou le caractre "soulign " ( _ ). La longueur dun identificateur peut aller jusqu 30 caractres ( certains compilateurs reconnaissent seulement les 8 premiers caractres). Exemple : X Somme_1 _temp x

2) Les mots cls


Les mots sont des noms rservs par le langage et ne peuvent pas tre utiliss comme identificateurs par le programmeur. auto break default do float for register return
2

struct switch

while

case double char else const enum continue extern

goto if int long

short signed sizeof static

typedef union unsigned void

Remarque : a) Dans C, une lettre majuscule nest pas quivalente la lettre correspondante en minuscule. b) Les mots cls sont tous en minuscule.

Les types des donnes :


La mmoire centrale est un ensemble de positions binaires ou bits. Les bits sont regroups en octets ou bytes ( 8 bits). Un octet est repr en mmoire par une adresse, il contient une valeur binaire qui correspond au code d'une information traite ( nombre, caractre,instruction de la machine...). Si un octet de la mmoire centrale contient le code binaire suivant : 01000001 Ce code peut reprsenter soit : + le nombre entier dcimale 65 ( en base 2) + le caractre `A` ( en code ASCII) + une partie d'une donne code sur 2 octets. Il se pose donc un problme quant la signification donner une information en mmoire. La notion de type peut rsoudre ce problme . Le langage supporte plusieurs types de donnes. Chacun des types peut tre reprsent diffremment en mmoire. Les types de base du langage C se rpartissent en 3 grandes catgories : Le type entier ( mot cl int) correspond la reprsentation des nombres entiers relatifs. Le type flottant ( mot cl float ou double) reprsente les nombres rels. Le type caractre ( mot cl char).

Les types de base sont les types simples partir desquels pourront tre construits tous les autres types tels que : les types structurs ( tableaux, structures...) et dautres types simples ( pointeurs).

1) Le type entier Les diffrents types dentiers : short int int long int (abrg short) (abrg long)
3

Chacun de ces types peut tre sign ou pas . Il est prcd du mot cl unsigned ou signed. Chaque type na pas la mme taille en mmoire .

2) Le type flottant Le type flottant reprsente de manire approche les nombres rels. On distingue 3 types de flottants correspondants des tailles diffrentes et des prcisions diffrentes: float double long float long double L'erreur de troncature due une reprsentation approche d'un nombre rel ne dpasse pas : 10-6 pour le type float 10-10 pour le type long double Dans le premier cas , on gagne en place et en contrepartie on perd en prcision, inversement pour le second type.

3) Le type caractre
On distingue : les caractres imprimables qui se notent en crivant entre quote le caractre voulu : `a` `A` `6` `+`

Les caractres non imprimables qui ont une fonction particulire. Ils se notent en faisant prcder le caractre voulu de `` \ `` ( backslash) CARACTERE \b \n \f \t \v \r \\ \` \`` \? \0 FONCTION backspace new line form feed horizontal tabulation vertical -----carriage return ( retour chariot) \ (backslash) ` (apostrophe) ``( quote) ? null ( fin dune chaine de caractres)

Reprsentation en mmoire des diffrents types :


Type de donne int description Taille en mmoire sur PC valeurs reprsentes

Valeur entire -

Sur 2 octets on reprsente des short et int sont reprsents valeurs de 32768 322768 sur 2 octets (16 bits) Sur 4 octets, on reprsente long est reprsent sur 4 des valeurs de 2147483 2147483648 octets
float est reprsent sur 4 octets (32 bits)

float

Nombres rels -

Float reprsente des rels de 3.4 10-38 3.4 1038

double

double est reprsent sur 8 double reprsente des rels de octets 1.710-308 1.7 10308 double peut tre quivalent au long float.

char caractre

Un caractre est reprsent sur 1 octet

Les constantes
Une constante reprsente une valeur dun type donn dans un programme. Il y a 4 types de constantes : 1) Les constantes entires : (de type entier ) Plusieurs reprsentations possibles : a) reprsentation dcimale : 1432 - 056 b) reprsentation octale : Le premier chiffre doit tre un 0 (zro). 015 ( vaut 13 en dcimal) c) reprsentation hexadcimale : la constante doit commencer par 0x 0xff ( vaut 255 en dcimal).

2) Les constantes flottantes : Notation dcimale des flottants: 12.433 .27 4. 0.381234 - .38 mantisse E exposant 42.5E4 4e13

Notation exponentielle :

3) Les constantes caractre : `C` `c` `*` `0`

4) Les constantes chanes de caractres :


Un chane de caractres est constitue dune squence de caractres dlimite par des double quotes `` .........``. Toute de chane de caractres se termine en mmoire par le caractre null (\0) gnr automatiquement par le compilateur.

``chane``

``$19.99``

```` ( chane vide)

``A`` ( diffrent du caractre `A` ) car elle est reprsente sur 2 octets.
``ab\``c`` interprt par ab``c (suivi d'un caractre de fin de chane)

``line1\nline2\n``

------------->

line1 ( aller la nouvelle ligne) line2

``\t to continue, press the \``Return \``key \n`` qui sera interprt par (tabulation horizontale)to continue, press the``Return ``key (aller la nouvelle ligne)

5) Les constantes symboliques


Une constante symbolique est un nom qui substitue une squence de caractres dans un programme C. La squence de caractres peut reprsenter : une constante numrique une constante caractre une chane de caractre
6

A la compilation du programme C, chaque occurrence de la constante symbolique est remplace par la squence de caractres correspondante.

Elle sera dfinie dans le programme suivant la syntaxe suivante:

#define nom text


o nom correspond au nom de la constante. Il doit tre crit en lettres majuscules. text correspond la squence de caractres. Exemple: #include<stdio.h> #define TAXE 0.34 #define TRUE 1 #define PAYS ``canada`` void main() { int c; c = true ; printf(``%f``, TAXE); printf( "%s", PAYS) }

6) Les constantes numres


Les constantes numres permettent de crer de nouveaux types puis de dfinir des variables dont lintervalle des valeurs est dlimit. par exemple, le type couleurs sera associ aux valeurs suivantes: rouge, noir, blanc, vert, et bleu. Le mot cl enum permet de dfinir ce nouveau type dont le domaine des valeurs sera dfini par numration Exemple1: enum couleurs { rouge, noir, blanc, vert, et bleu }

A chaque constante correspond une valeur entire qui est soit dfinie explicitement soit 0,1,2 en fonction de sa position dans lnumration dans l'exemple prcdent: rouge est une constante symbolique dont la valeur est gale 0 noir est une constante symbolique dont la valeur est gale 1 etc. Exemple2: enum couleurs {Rouge=10,noir=20, blanc, vert, bleu = 30} Comme la constante symbolique noir a la valeur 20, bleu est associ la valeur 21 et vert correspond 22.

Les variables et les tableaux


Une variable est un identificateur qui est utilis pour reprsenter une donne d'un certain type ( numrique ou caractre) dans un programme C. On doit lui associer un certain type qui ne doit pas changer ( dclaration de la variable).

Exemple : enum couleurs { rouge , noir, bleu, vert, blanc}; int a, b; ( variables entires) char c; ( variable caractre) couleurs clr ; Dans le programme, on doit lui affecter des valeurs du mme type. b = 5; a = 3; c = `A`; a = a + b; clr = rouge ; Un tableau est un autre type de variable qui est utilis pour reprsenter une collection de donnes de mme type. Exemple : Si X est un tableau de 10 lments. Le premier lement du tableau est not X[0] Le 10me lment du tableau est not X[9] On distingue: - Les tableaux une dimension - Les tableaux plusieurs dimensions. Les tableaux une dimension de type caractre sont utiliss pour reprsenter les chanes de caractres. Chaque lment du tableau reprsente un caractre de la chane. Si le tableau contient n lments, la valeur de lindice du tableau varie de 0 n-1.

Une chane de n caractres est reprsente par un tableau de n+1 lments ( le n+1 ime lment correspond au caractre null de fin de chane ). ``canada`` sera reprsente dans le tableau tab par: tab[0]= `c` tab[1]= `a` tab[5]= `a` tab[6]= `null`

Les dclarations dans C:


Une dclaration associe un type spcifique un ensemble de variables. Dans C, toutes les variables doivent tre dclares avant leur manipulation dans les instructions. Une dclaration est forme dun type suivi dun ou plusieurs noms de variables spars par des virgules. Toute dclaration dans un programme doit se terminer par un point virgule ( ; ) Exemple: int a,b; char c,text[80]; float r; Int i; unsigned x; ( entier positif) Dans une dclaration, on peut assigner une valeur initiale une variable. int a = 13; const int b = 6;

/*

la valeur de b ne doit pas changer */

char c = `*`; char text[ ] = ``canada``; // equivalent char text[ 7 ] = ``canada``; float r = 0;

Les expressions
Lexpression la plus simple est constitue de : Une constante Une variable Un lment de tableau Une rfrence une fonction Les expressions complexes sont constitues dexpressions plus simples avec des oprateurs. Exemple : int a,b; int x,y; a + b est une expression arithmtique qui fait la somme des valeurs entires de a et b. x=5 L` oprateur daffectation `=` assigne la valeur 5 la variable x.

x <= y est une expression logique qui prend la valeur 1 (true) si la valeur de x est infrieure ou gale la valeur de y, et 0 (false) sinon. x = = y est une expression relationnelle qui compare les valeurs de x et y. i++ ( i=i+1) incrmente de 1 la valeur de i .
9

Les instructions
Une instruction permet d'excuter une action dans un programme. On distingue 3 types dinstructions dans C: 1) les instructions expression l'affectation l'incrmentation l'appel de fonction

a=3 b++ printf( ``hello``)

2) les instructions composes Une instruction compose est un ensemble dinstruction entre { et } Exemple { a = 3; c= 2 * a; printf ( ``%f``,c);

}
3) les instructions de controle Les instructions de choix if ( condition ) instruction else instruction switch .. case.default Les instructions de branchement goto etiquette continue break Les instructions de boucle do instruction while ( condition) for ( initialisation, condition, incrmentation) instruction while ( condition) instruction

10