Vous êtes sur la page 1sur 11

1

.CPICIG%
.CPICIG%
2T 2T RCT RCT GVRT GVRT UGPV UGPV RCT RCT
/$GPEJTKHC /$GPEJTKHC
Anne Universitaire 2006/2007
7PKXGTUKV 7PKXGTUKV /QJCOOGF /QJCOOGF8 8 #IFCN #IFCN
(CEWNV (CEWNV FGUUEKGPEGUFG4CDCV FGUUEKGPEGUFG4CDCV
& & RCTVGOGPVFG/CVJ RCTVGOGPVFG/CVJ OCVKSWGGV+PHQTOCVKSWG OCVKSWGGV+PHQTOCVKSWG
M. Benchrifa : cours du langage C :
Filire SMI : Semestre 3 : 2006/2007
6CDNGFGOCVK 6CDNGFGOCVK TGU TGU
CHAPITRE 1 CHAPITRE 1 : : Introduction Introduction
Historique du langage C Historique du langage C
Caract Caract ristiques du langage C ristiques du langage C
Diff Diff rentes phases de la programmation en C rentes phases de la programmation en C
2
M. Benchrifa : cours du langage C :
Filire SMI : Semestre 3 : 2006/2007
CHAPITRE 2 CHAPITRE 2 : : Notions de base Notions de base
Premier programme en langage C Premier programme en langage C
Composantes d Composantes d un programme en C un programme en C
Discussion du programme Discussion du programme premier_prog premier_prog
M. Benchrifa : cours du langage C :
Filire SMI : Semestre 3 : 2006/2007
CHAPITRE 3 CHAPITRE 3 : : Types de base, Op Types de base, Op rateurs et expression rateurs et expression
Les types simples Les types simples
D D claration des variables simples claration des variables simples
Les op Les op rateurs standards rateurs standards
Les expressions et les instructions Les expressions et les instructions
Priorit Priorit et associativit et associativit des op des op rateurs rateurs
Les conversions de type Les conversions de type
3
M. Benchrifa : cours du langage C :
Filire SMI : Semestre 3 : 2006/2007
CHAPITRE 4 CHAPITRE 4 : : Lire & Ecrire des donn Lire & Ecrire des donn es es
Ecriture format Ecriture format e de donn e de donn es : es : printf printf() ()
Lecture format Lecture format e de donn e de donn es : es : scanf scanf() ()
Ecriture d Ecriture d un caract un caract re : re : putchar putchar() ()
Lecture d Lecture d un caract un caract re : re : getchar getchar() ()
M. Benchrifa : cours du langage C :
Filire SMI : Semestre 3 : 2006/2007
CHAPITRE 5 CHAPITRE 5 : : Structures de contrle Structures de contrle
Structure de choix Structure de choix
L'instruction L'instruction if if ; L'instruction d'aiguillage ; L'instruction d'aiguillage switch switch
Structures r Structures r p p titives titives
L'instruction d'it L'instruction d'it ration ration while while ; L'instruction d'it ; L'instruction d'it ration ration
do do while while ; L'instruction d'it ; L'instruction d'it ration ration for for
Les instruction Les instruction break break et et continue continue
4
M. Benchrifa : cours du langage C :
Filire SMI : Semestre 3 : 2006/2007
CHAPITRE 6 CHAPITRE 6 : : Tableaux Tableaux
D D finition finition
Tableaux Tableaux une dimension une dimension (Vecteurs) (Vecteurs)
D D claration ; M claration ; M morisation ; morisation ;
Tableaux Tableaux plusieurs dimensions plusieurs dimensions
D D claration : claration :
Tableaux Tableaux deux dimensions deux dimensions (matrices) : (matrices) :
D D claration ; M claration ; M morisation ; morisation ;
M. Benchrifa : cours du langage C :
Filire SMI : Semestre 3 : 2006/2007
CHAPITRE 7 CHAPITRE 7 : : Pointeurs Pointeurs
D D finition finition
D D claration d claration d un pointeur un pointeur
Op Op rations rations l l mentaires sur les pointeurs mentaires sur les pointeurs
Pointeurs et tableaux Pointeurs et tableaux
Pointeurs et tableaux Pointeurs et tableaux deux dimensions deux dimensions
Tableaux de pointeurs Tableaux de pointeurs
Allocation dynamique de la m Allocation dynamique de la m moire moire
5
M. Benchrifa : cours du langage C :
Filire SMI : Semestre 3 : 2006/2007
%*#2+64' %*#2+64' (QPEVKQPU (QPEVKQPU
.CRTQITCOOCVKQPOQFWNCKTG .CRTQITCOOCVKQPOQFWNCKTG

%NCUUGUF %NCUUGUF CNNQECVKQP CNNQECVKQP
& & HKPKVKQPF HKPKVKQPF ENCTCVKQPF ENCTCVKQPF WPGHQPEVKQP WPGHQPEVKQP
&KHH &KHH TGPVGUUQTVGUFGXCTKCDNGUNGWTRQTV TGPVGUUQTVGUFGXCTKCDNGUNGWTRQTV G GVNGWTENCUUG G GVNGWTENCUUG
F F CNNQECVKQP CNNQECVKQP
2CUUCIGFGURCTCO 2CUUCIGFGURCTCO VTGUF VTGUF WPGHQPEVKQPU WPGHQPEVKQPU
(QPEVKQPUT (QPEVKQPUT EWTUKXGU EWTUKXGU
2QKPVGWTUUWTFGUHQPEVKQPU 2QKPVGWTUUWTFGUHQPEVKQPU
M. Benchrifa : cours du langage C :
Filire SMI : Semestre 3 : 2006/2007
CHAPITRE 9 CHAPITRE 9 : : Cha Cha nes de caract nes de caract res res
D D finition finition
D D claration et m claration et m morisation morisation
Cha Cha nes de caract nes de caract res constantes res constantes
Initialisation d Initialisation d une cha une cha ne ne la d la d finition finition
Ordre alphab Ordre alphab tique et lexicographique tique et lexicographique
Manipulation des cha Manipulation des cha nes de caract nes de caract res res
Tableaux de cha Tableaux de cha nes de caract nes de caract res res
6
M. Benchrifa : cours du langage C :
Filire SMI : Semestre 3 : 2006/2007
%*#2+64' %*#2+64' 10 10 : : Typcs structurcs, unions, Typcs structurcs, unions,
num num r r s ct synonymcs s ct synonymcs
6[RGUUVTWEVWTGU 6[RGUUVTWEVWTGUUVTWEV UVTWEV
6[RGUWPKQPU 6[RGUWPKQPUWPKQP WPKQP
6[RGU 6[RGU PWO PWO T T U U GPWO GPWO
6[RGUU[PQP[OGU 6[RGUU[PQP[OGUV[RFGH V[RFGH
M. Benchrifa : cours du langage C :
Filire SMI : Semestre 3 : 2006/2007
CHAPITRE 11 CHAPITRE 11 : : Fichiers Fichiers
D D finitions et propri finitions et propri t t s s
La m La m moire tampon moire tampon
Fichiers de Fichiers de texte texte et fichiers et fichiers binaires binaires
Fichiers standards Fichiers standards
D D claration d claration d un fichier un fichier
Ouverture Ouverture et et fermeture fermeture d d un fichier un fichier
Traitement du contenu d Traitement du contenu d un fichier un fichier
D D tection de la tection de la fin de fichier fin de fichier
D D placement placement dans le fichier dans le fichier
Gestion des Gestion des erreurs erreurs
Quelques compl Quelques compl ments ments
7
M. Benchrifa : cours du langage C :
Filire SMI : Semestre 3 : 2006/2007
%JCRKVTG+PVTQFWEVKQP %JCRKVTG+PVTQFWEVKQP
1. Historique du langage C 1. Historique du langage C
En En 1972 1972, dans les , dans les Bell Bell Laboratories Laboratories , Ritchie a con , Ritchie a con u le u le
langage C pour d langage C pour d velopper une version portable du syst velopper une version portable du syst me me
d d exploitation UNIX. exploitation UNIX.
En 1978 En 1978, le duo , le duo Kernighan Kernighan/ Ritchie a publi / Ritchie a publi la d la d finition finition
classique du langage C, classique du langage C,
En 1983 En 1983, le , le American American National Standards National Standards Institute Institute (ANSI) (ANSI)
chargeait une commission de mettre au point chargeait une commission de mettre au point une d une d finition finition
explicite et ind explicite et ind pendante de la machine pour le langage C pendante de la machine pour le langage C . Le . Le
r r sultat sultat tait le standard tait le standard Ansi Ansi- -C C. .
M. Benchrifa : cours du langage C :
Filire SMI : Semestre 3 : 2006/2007
%JCR %JCR2. Caract 2. Caract ristiques du langage C ristiques du langage C
C C est un langage : est un langage :
universel universel : permet aussi bien la programmation syst : permet aussi bien la programmation syst me que la me que la
programmation de divers applications (scientifique, de gestion, programmation de divers applications (scientifique, de gestion,
) )
de haut niveau de haut niveau : C est un langage structur : C est un langage structur (offre plusieurs (offre plusieurs
structures de contrle) et typ structures de contrle) et typ (d (d clarations obligatoires) clarations obligatoires)
pr pr s de la machine s de la machine : offre des op : offre des op rateurs qui sont tr rateurs qui sont tr s proches de s proches de
ceux du langage machine ceux du langage machine
Portable Portable : en respectant le standard ANSI : en respectant le standard ANSI- -C, il est possible C, il est possible
d d utiliser le mme programme sur d utiliser le mme programme sur d autres compilateurs. autres compilateurs.

8
M. Benchrifa : cours du langage C :
Filire SMI : Semestre 3 : 2006/2007
Edition
Programme objet
(.OBJ)
Compilation
Edition de lien
Programme excutable
(.EXE)
Programme source (.C)
#include
#include
#include <graphics.h>
#include <math.h>

main()
{ }
Fichiers en-tte
(.h)
graphics.h
/* dclarations */
math.h
/* dclarations */

Bibliothques prcompiles
(.lib)
Chap1 : 3. Chap1 : 3. Diff Diff rentes phases de la programmation en C rentes phases de la programmation en C
M. Benchrifa : cours du langage C :
Filire SMI : Semestre 3 : 2006/2007
1. Premier programme en langage C 1. Premier programme en langage C
# #include include < <stdio.h stdio.h> >
int int main( ) main( )
{ {
printf printf("Bonjour tout le monde ("Bonjour tout le monde\ \n"); n");
return 0 ; return 0 ;
} }
Ce programme affiche le message :" Ce programme affiche le message :"Bonjour tout le monde Bonjour tout le monde". ".
CHAPITRE 2 CHAPITRE 2 : : Notions de base Notions de base
9
M. Benchrifa : cours du langage C :
Filire SMI : Semestre 3 : 2006/2007
En C, les programmes sont compos En C, les programmes sont compos s essentiellement de s essentiellement de fonctions fonctions et de et de variables variables. .
2.1 Les fonctions 2.1 Les fonctions : :
D D finition d'une fonction en C : finition d'une fonction en C :
< <TypeR TypeR sultat sultat> < > <Nomfonction Nomfonction> > ( (< <TypePar1 TypePar1>, < >, <TypePar2 TypePar2>, >, ) )
{ {
< <d d clarations locales clarations locales> ; > ;
< <instructions instructions> ; > ;
} }
En C, une fonction est d En C, une fonction est d finie par : finie par :
une ligne une ligne d d clarative clarative qui contient : qui contient :
< <TypeR TypeR sultat sultat> : type de r > : type de r sultat de la fonction sultat de la fonction
< <Nomfonction Nomfonction> : nom de la fonction > : nom de la fonction
<TypePar1> <NomPar1>, <TypePar1> <NomPar1>, : types et noms des param : types et noms des param tres de la fonction tres de la fonction
un un bloc d'instructions bloc d'instructions d d limit limit par les accolades {}, contenant : par les accolades {}, contenant :
<d <d clarations locales> : d clarations locales> : d clarations des donn clarations des donn es locales (c. es locales (c.- - - -d. des donn d. des donn es uniquement es uniquement
connues connues l'int l'int rieur de la fonction). rieur de la fonction).
<instructions> : liste des instructions qui d <instructions> : liste des instructions qui d finit l'action qui doit tre ex finit l'action qui doit tre ex cut cut e. e.
Remarque Remarque : :
En C, toute instruction simple est termin En C, toute instruction simple est termin e par un point virgule ( ; ). e par un point virgule ( ; ).
Exemple Exemple : :
printf printf("Bonjour tout le monde") ; ("Bonjour tout le monde") ;Composantes d Composantes d un programme en C un programme en C
Chap Chap 2 : 2. Composantes d 2 : 2. Composantes d un programme en C un programme en C
M. Benchrifa : cours du langage C :
Filire SMI : Semestre 3 : 2006/2007
2.2 La fonction main :
Une fonction et une seule s'appelle main.
C'est la fonction principale des programmes en C ; elle se trouve
obligatoirement dans tous les programmes.
L'excution d'un programme entrane automatiquement l'appel de la
fonction main.
Le type du rsultat de main est toujours int (entier). Il n'est pas
dclar explicitement.
L'instruction return 0 ; indique l'environnement que le programme
s'est termin avec succs.
Chap Chap 2 : 2. Composantes d 2 : 2. Composantes d un programme en C un programme en C
10
M. Benchrifa : cours du langage C :
Filire SMI : Semestre 3 : 2006/2007
2.3 Les variables :
Contiennent les valeurs utilises pendant l'excution du
programme.
Les noms des variables sont des identificateurs
quelconques.
Toute variable doit tre dclare avant les instructions et
son type spcifi ds la dclaration.
Les diffrents types de variables simples seront discuts
dans le chapitre suivant.
Chap Chap 2 : 2. Composantes d 2 : 2. Composantes d un programme en C un programme en C
M. Benchrifa : cours du langage C :
Filire SMI : Semestre 3 : 2006/2007
2.4 Les identificateurs :
Les noms des fonctions et des variables en C sont composs d'une suite
de lettres et de chiffres, plus le caractre soulign ( _ ).
Le 1er caractre doit tre une lettre.
Exemples :
Remarques :
Le caractre soulign est aussi considr comme une lettre.
Ces identificateurs sont rservs :
auto, break, case, char, const, continue, default, do, double, else, enum,
extern, float, for, goto, if, int, long, register, return, short, signed, sizeof,
static, struct, switch, typedef, union, unsigned, void, volatile, while.
C distingue les minuscules et les majuscules. PGCD et Pgcd sont deux
identificateurs diffrents.
Chap Chap 2 : 2. Composantes d 2 : 2. Composantes d un programme en C un programme en C
11
M. Benchrifa : cours du langage C :
Filire SMI : Semestre 3 : 2006/2007
2.5 Les commentaires :
5QPVWVKNKUURQWTTGPFTGWPRTQITCOOGRNWUEQORTJGPUKDNG
5QPVKIPQTURCTNGEQORKNCVGWT
un commentaire sur une ligne commence par les caractres //.
un commentaire multilignes commence par les caractres /* et se termine par */.
A lintrieur de ces dlimiteurs, vous avez droit toute suite de caractres (sauf
videmment */).
attention : on ne peut donc pas imbriquer des commentaires.
/***********************************/
/* ce programme vous dit bonjour */
/***********************************/
/*
fichier dentete pour utiliser la fonction printf
*/
#include <stdio.h>
/* la fonction principale main */
int main()
{
printf(Bonjour); // afficher Bonjour
return 0;
}
Chap Chap 2 : 2. Composantes d 2 : 2. Composantes d un programme en C un programme en C
M. Benchrifa : cours du langage C :
Filire SMI : Semestre 3 : 2006/2007
2.6 Discussion du programme Premier_prog
Le programme ne contient pas de variables, donc le bloc de dclarations est
vide.
la fonction main contient deux instructions :
l'appel de la fonction printf avec l'argument "Bonjour tout le monde\n" qui
affiche le message Bonjour tout le monde.
L'instruction return 0 ; qui retourne la valeur 0 comme code d'erreur
l'environnement.
La squence de symboles '\n' ordonne un passage la ligne suivante.
La fonction printf fait partie de la bibliothque de fonctions standard <stdio>,
qui gre les entres et les sorties de donnes.
La 1re ligne du programme #include <stdio.h> : informe le compilateur
d'inclure le fichier "stdio.h" dans le texte du programme. Ce fichier contient
les informations ncessaires pour utiliser les fonctions de la bibliothque
standard <stdio>.
Chap Chap 2 : 2. Composantes d 2 : 2. Composantes d un programme en C un programme en C