Académique Documents
Professionnel Documents
Culture Documents
CHAPITRE 1: GÉNÉRALITÉS
SUR LE LANGAGE C
• Historique
– Le langage C a été créé au milieu des années
1970, aux Laboratories Bell par Brian
Kernighan et Denis Ritchie.
– Initialement conçu pour écrire le système
d’exploitation Unix, la première version a été
rendue disponible vers 1977, sous forme d’un
ouvrage informel intitulé The C Programming
Language.
– En 1983, l’ANSI (American National Standards
Institute) a débuté les travaux de normalisations
du langage C. Ces travaux ont aboutit à la
définition de la norme ANSI C.
4
INTRODUCTION
• Principales Caractéristiques
– Universel: C’est un langage polyvalent, non
orienté vers un domaine spécifique
d’applications. Essentiellement, il permet le
développement de systèmes d’exploitation, de
programmes applicatifs scientifiques et de
gestion.
– Rapide: Le langage C offre des opérateurs (et
des expressions) qui sont très proches de ceux
du langage machine, ainsi que des fonctions qui
permettent un accès simple et direct aux
fonctions internes de l'ordinateur.
– Langage compilé: Un programme C ne peut
être exécuté que si toutes les instructions du
programme sont validées par le compilateur. 5
INTRODUCTION
• Principales Caractéristiques
– Portable (Transportable): En respectant le
standard ANSI-C, il est possible d’utiliser le
même programme sur tout autre système, en le
recompilant avec un minimum de modifications.
– Flexible (Extensible): Le langage C utilise des
bibliothèques de fonctions privées ou livrées par
de nombreuses maisons de développement,
dans le but d’étendre le langage.
– Programmation procédurale: Elle se base
principalement sur la notion de
procédure/fonction permettant de décomposer
un problème à résoudre en différents sous-
problèmes.
6
ÉTAPES DE MISE EN ŒUVRE
1
Édition du
programme
source
main()
{
printf(’’Bonjour!’’);
}
Test.c
2 Compilation Test.o Edition des liens Test.exe
3
7
CONCEPTS DE BASE
• Fonction
– Une fonction est un sous-programme.
• Fichiers
– Les fonctions d’un programme C peuvent faire
partie d’un même fichier source, comme elles
peuvent être réparties dans plusieurs fichiers.
Dans ce cas, une compilation séparée de
chaque fichier est nécessaire.
• L’éditeur de liens effectue la liaison entre
ces fonctions et les objets externes et
produit un module exécutable.
8
CONCEPTS DE BASE
• Fichiers
Fichiers include
: # include <stdio.h>
main()
{
printf(’’Bonjour!’’);
}
• Programme principal
– Dans le langage C, le programme principal est
une fonction particulière nommée main().
• C’est le point de départ de tout programme
C.
10
CONCEPTS DE BASE
11
CONCEPTS DE BASE
• Organisation d’un
programme C
12
TYPES DE BASE ET OPERATEURS
DU LANGAGE C
VARIABLES
• Définition
– Une variable sert à stocker une information
quelque part dans la mémoire. Elle désigne une
donnée utilisée pendant l’exécution d’un
programme.
– Toute variable est définie par:
• Un identificateur (nom de la variable): Permet
l’accès à la donnée stockée.
• Un type: Définit le type de la donnée à stocker.
Autrement dit, il décidera des valeurs possibles
que peut prendre la variable, ainsi que les
opérateurs qui lui sont applicables.
• Une valeur: La valeur de la variable peut
évoluer durant l’exécution du programme. 14
VARIABLES
15
VARIABLES
17
VARIABLES
• Déclaration
– Syntaxe
• <TypeVariable> <NomVar1>, ..,
<NomVarN>;
• Exemples
– int compteur, x,y;
– float hauteur;
– char c;
18
VARIABLES
• Initialisation
– Il est possible d’initialiser la variable (lui
affecter une valeur) au moment de sa
déclaration.
• Exemple
– int compteur = 0;
– char c = ‘R';
– float pi = 3.141593;
19
VARIABLES
• Types de base
– Types entiers
Syntaxe Type Nombre
d’octets
char caractère 1
short int entier court 2
int entier par défaut 2
long int entier long 4
20
VARIABLES
• Types de base
– Types entiers
• En langage C, le type char est un cas
particulier du type entier. A chaque
caractère correspond une valeur entière.
(Voir table ASCII, acétate suivante)
• Exemple
– Le caractère ‘b’ a pour valeur (entière)
98. Il s’agit de son code ASCII.
21
VARIABLES
TABLE ASCII
22
22
VARIABLES
• Types de base
– Types rationnels
• Souvent appelé flottant, une nombre
rationnel s’écrit avec un point et non avec
une virgule (exp: 2.25)
Syntaxe Type et précision Nombre
mantisse d’octets
float réel simple précision 4
(6 chiffres décimaux)
double réel double précision 8
(15 chiffres décimaux)
long réel précision 10
double étendue (19 chiffres
décimaux)
23
VARIABLES
• Types de base
– Remarques importantes
• Il n'existe pas de type spécial pour chaînes
de caractères dans le langage C. Toutefois,
il est possible de les traiter grâce aux
notions de tableaux et pointeurs.
• Le type Booléen n’existe pas en langage C.
Par convention, on utilisera la valeur entière
1 pour désigner la valeur vrai et la valeur 0
pour désigner la valeur faux.
Exemple
int flag;
flag = 0; 24
VARIABLES
25
CONSTANTES
• Définition
– Il est possible de déclarer des constantes (dont
la valeur est non modifiable) en utilisant le
modificateur const (constante typée) ou avec
la commande #define (constante non typée).
– On distingue les:
• Constantes entières (1, 3, 17..)
• Constantes rationnelles (2.25, 3.14..)
• Caractères constants (‘a‘, ‘Z‘, ..)
• Constante chaîne de caractères (“Bonjour”,
“ ”)
26
CONSTANTES
• Remarques
– Caractères constants: On distingue des
caractères non imprimables (séquences
d’échappement) qui sont identifiés par leurs
codes internes commençant par \:
• \0 caractère NUL pour indiquer la fin d’une
chaîne de caractères. Le compilateur insère
automatiquement ce caractère spécial à la
fin de toute chaîne de caractères.
• \n nouvelle ligne
• \t tabulation
• \b curseur arrière
• \r retour au début de la ligne
27
CONSTANTES
28
CONSTANTES
• Constantes typées
– Il est possible de définir une constante typée à
l’aide du modificateur const.
– Syntaxe
const <type_constante> <nom_constante> = <valeur>;
– Exemples
• const int MAX = 767;
• const float PI = 3.14;
• const char LETTRE = ‘a';
29
OPÉRATEURS
30
OPÉRATEURS
• Opérateurs arithmétiques
• + addition
• - soustraction
• * multiplication
• / division (types entiers et rationnels)
(équivalent de DIV en algorithmique)
• % modulo (types entiers et rationnels)
(équivalent de MOD en algorithmique)
31
OPÉRATEURS
• Opérateur d’affectation
– L’affectation consiste à donner une valeur (à droite)
à une variable (à gauche).
– Syntaxe : nom_variable = valeur;
– On définit aussi les opérateurs d’affectation
suivants:
• v += e (additionne e à v) ↔ v=v+e
• v -= e (soustrait e à v) ↔ v=v-e
• v *= e (multiplie e par v) ↔ v=v*e
• v /= e (divise e par v) ↔ v=v/e
• v %= e (v mod e) ↔ v = v mod e
32
OPÉRATEURS
• Opérateur d’affectation
– Quand il y a un opérateur d’affectation, les
expressions sont évaluées de gauche à droite.
– Exemple
• i += 2 ↔ i=i+2
33
OPÉRATEURS
• Opérateurs logiques
• && et logique (and)
• || ou logique (or)
• ! Négation logique (not)
– Exemples
(10 < 5) && (4 > 2) retourne 0
(6 < 50) || (4 > 2) retourne 1
! (9 > 20) retourne 1
34
OPÉRATEURS
36
OPÉRATEURS
37
OPÉRATEURS
• Opérateurs d’incrémentation/de
décrémentation
– Exemples : Supposons que la valeur de N est
égal à 5:
• Incrém. postfixe: X = N++; Résultat: N=6 et
X=5 .
• Incrém. préfixe: X = ++N; Résultat: N=6 et
X=6.
• Décrém. postfixe: X = N--; Résultat: N=4 et
X=5 .
• Décrém. préfixe: X = --N; Résultat: N=4 et
X=4.
38
OPÉRATEURS
39
OPÉRATEURS
40
OPÉRATEURS
41
OPÉRATEURS
44
GLOSSAIRE ET SYMBOLES
• Incrémenter : Augmenter de 1 un entier.
• Décrémenter : Diminuer de 1 un entier.
• Mot-clé : Mot faisant partie de la syntaxe du
langage C (automatiquement mis en gras dans
les éditeurs).
• Indentation : Décalage du code.
• ; Termine une instruction.
• , Est un séparateur.
• { } Délimite des blocs d’instructions.
• ( ) Délimite des expressions / encadre les
arguments de fonction.
45
TYPES DE FICHIERS
• *.h Fichiers entêtes (header files).
• *.c Fichiers sources.
• *.obj Fichiers compilés (version objet).
• *.exe Fichiers compilés et liés (versions exécutables).
46
Merci
Questions ?
47