Vous êtes sur la page 1sur 38

See discussions, stats, and author profiles for this publication at: https://www.researchgate.

net/publication/322797468

Premier Cours du Langage C

Presentation · March 2014


DOI: 10.13140/RG.2.2.24417.61281

CITATIONS READS

0 758

1 author:

Salheddine Belhimer
National Polytechnic School of Algiers
4 PUBLICATIONS   8 CITATIONS   

SEE PROFILE

Some of the authors of this publication are also working on these related projects:

MPPT Algorithm for Shaded PV system View project

All content following this page was uploaded by Salheddine Belhimer on 30 January 2018.

The user has requested enhancement of the downloaded file.


LANGAGES DE PROGRAMMATION
LE LANGAGE C

ENP Le 13 / 03/ 2014 Mr. BELHIMER Salheddine


Plan du cours
• Rappel des concepts de base.
• Le langage C.
• Eléments de base du langage.
• Les types.
• Les expressions.
• Les instructions.
• Les entrées sorties et les fichiers.
• Les fonctions.
• Pointeurs et tableaux.
• Structure et union.
• Les objets.
• Le préprocesseur.
• Le langage C comme langage système.
• Le langage C et les microprocesseurs.

ENP Le 13 / 03/ 2014 Mr. BELHIMER Salheddine


Rappel des concepts de base

ENP Le 13 / 03/ 2014 Mr. BELHIMER Salheddine


Rappel des concepts de base

C’est quoi un Algorithme?

L’algorithme est le résultat de l’analyse d’un problème en utilisant


des méthodes et règles relevant des mathématiques et de la
logique pour que celui-ci soit présenté à une machine
(l’ordinateur).

En d’autres terme l’algorithme est le résultat de la décomposition


d’un problème complexe en opérations élémentaires à exécuter
en plusieurs étapes successives.

ENP Le 13 / 03/ 2014 Mr. BELHIMER Salheddine


Rappel des concepts de base

L’ organigramme est la représentation schématique d’un algorithme

Eléments Descriptions

Ellipse C’est pour marquer le début et la fin d’un


organigramme.

Parallélogramme Sert à représenter les instructions


d’entrée (Lecture) et de sortie (écriture).

Rectangle Pour la représentation des opérations


d’affectation.

Losange Pour la représentation des instructions


conditionnelles, dans un traitement
alternatif ou dans un traitement répétitif.

ENP Le 13 / 03/ 2014 Mr. BELHIMER Salheddine


Rappel des concepts de base

ENP Le 13 / 03/ 2014 Mr. BELHIMER Salheddine


Rappel des concepts de base
Un programme est la traduction d’un algorithme, en un langage
de programmation que l’ordinateur peut comprendre.

Un langage est un ensemble de mots et de symboles qui


servent à exprimer des opérations, des instructions et des
structures de données.

Compilateur
Tout langage possède un compilateur ou du moins
un interpréteur, qui sert à traduire le code source d’un
programme écrit dans un langage évolué.
Il permet aussi d’analyser le programme source pour détecter
les erreurs de syntaxe commises par le programmeur.

ENP Le 13 / 03/ 2014 Mr. BELHIMER Salheddine


Rappel des concepts de base

Le Préprocesseur ou le pré-compilateur est un utilitaire qui


traite le fichier source avant de le compilateur. Il retire les
commentaires qui sont compris entre /* et */.

L’ Assembleur prend le code généré par le compilateur, et génère


un fichier en format relogeable. Ce fichier possède de références
insatisfaisantes qui seront résolues par l’éditeur de liens

L’Editeur de liens Prend le ou les fichiers en format relogeable


et les associe pour créer un module chargeable ( exécutable ).

ENP Le 13 / 03/ 2014 Mr. BELHIMER Salheddine


Langage C

ENP Le 13 / 03/ 2014 Mr. BELHIMER Salheddine


Langage C

Le langage C a été mis au point par


D.Ritchie et B.W.Kernighan au début des
années 70, et il est parmi les Langages les
plus utilisés actuellement.
Cela est du au fait que ce langage est un
langage comportant des instructions et des
structures de haut niveau, tout en générant
un code très rapide grâce a un compilateur
très performant.

ENP Le 13 / 03/ 2014 Mr. BELHIMER Salheddine


Langage C
Pourquoi le langage C :
L'un des principaux intérêts du C est sa portabilité Un programme écrit en C
en respectant la norme ANSI est portable, c'est-a-dire, il peut être exécuté sans
modifications sur n'importe quel système d'exploitation disposant d'un
compilateur C.

Les types de données manipulés en C sont très restreints., et proches de la


représentation interne par le processeur : par exemple, le type Chaine de
caractères n'existe pas en C (il est représenté par un tableau de caractères).

En langage C, un caractère est bien représenté en interne par le processeur


par une valeur de type entier (le code ASCII) ce qui rend possible la
comparaison d'un entier a un caractère.

Pour conclure, le langage C n'est pas très difficile à apprendre ! Car


il dispose de peu destructions et ses structures de données sont limitées.
En plus son apprentissage facilite la familiarisation avec d'autres langages tels
que le C++, le C++ builder, le java qui sont dérives du C.

ENP Le 13 / 03/ 2014 Mr. BELHIMER Salheddine


Eléments de base

ENP Le 13 / 03/ 2014 Mr. BELHIMER Salheddine


Eléments de base
Structure d'un programme C :

Un programme en C, comporte une fonction principale appelée main()


renfermant les instructions qui constituent le corps du programme. Ces
dernières sont comprises entre une accolade ouvrante et une autre
fermante.

ENP Le 13 / 03/ 2014 Mr. BELHIMER Salheddine


Eléments de base
Structure d'un programme C :

Remarques:
Le langage C permet la déclaration des variables a n'importe quel endroit
dans le programme.

Le langage C est sensible a la casse, cela signifie qu’un mot contenant


des majuscules est diffèrent du même mot écrit en minuscules. Ainsi, les
spécifications du langage C précisent que la fonction principale doit être
appelé main( ) et non Main() ou autre.

On remarque aussi que la fonction printf( ) est écrite en minuscules.

En langage C, toute instruction se termine par un point-virgule sauf


les instructions du préprocesseur.

ENP Le 13 / 03/ 2014 Mr. BELHIMER Salheddine


Eléments de base
Les commentaires :

Par souci de présentation et de clarification, il est souvent judicieux


d’agrémenter son programme de commentaires. Ceux-ci sont en effet utiles
pour la compréhension du programme, lorsqu’il doit être relu par une tierce
personne.

En C, un commentaire est constitué par une suite de caractère compris entre


deux symboles « /* » et « */ ». Les deux caractères « /* » juxtaposés,
identifient le début du commentaire. Celui-ci peut être constitué d’une ou
plusieurs lignes, et doit se terminer obligatoirement par « */ ».

/* Ceci est un commentaire sur une ligne */

/**************************************************/
/* Exemple de commentaire */
/* esthétique */
/*************************************************/

ENP Le 20 / 03/ 2014 Mr. BELHIMER Salheddine


Eléments de base
Les identificateurs :
Les identificateurs sont des noms permettant de référencer les différents
objets manipulés par le programme. En particulier:
• Les constantes symboliques,
• Les variables,
• Les fonctions.
Un identificateur est constitué d’une séquence de lettres et de
chiffres, le premier caractère devant être obligatoirement un
caractère alphabétique.
Identificateurs corrects Identificateurs incorrects
i $
MC68000 68020
PREMIER 1er
Open_Window Create Window
cas_01 cas:01
BS2 BS/2

ENP Le 20 / 03/ 2014 Mr. BELHIMER Salheddine


Eléments de base
Les mots réservés :

Certains « mots-clés » sont réservés par le langage à un usage


bien défini et ne peuvent pas être utilisés comme identificateurs.

ENP Le 20 / 03/ 2014 Mr. BELHIMER Salheddine


Eléments de base
Les constantes :
Il existe plusieurs types de constantes liées à l’architecture de la
machine (taille du mot, code interne des caractères, représentation en
virgule fixe et flottante, etc).
• Nombre entier,
Décimal: 14,213,65535,1 Octal: 016,0325,01 Hexadécimal: 0xFF,0XD5,0x01

• Nombre Réel,
Notation décimale: [-]ddd.dddd Notation Scientifique: [-]d.dddde[±]dd
• Caractère,
‘A’ , ‘a’ , ‘z’ , ’4’ , ’$’ , ’:’
• Chaine de caractères,
"Hello World !! " , " Ecole Nationale Polytechnique"
• Expressions de constantes.

4 + 12 * 7 , ‘A’ – ‘a’ , 1 << 8

ENP Le 20 / 03/ 2014 Mr. BELHIMER Salheddine


Eléments de base
Les délimiteurs :
Les délimiteurs sont des caractères spéciaux qui permettent au
compilateur de reconnaitre les différentes unités syntaxiques du
langage. Les principaux délimiteurs sont les suivant:
; : termine une déclaration de variable ou une instruction
, : sépare deux éléments dans une liste
( ) : encadre une liste d’arguments ou de paramètres
[ ] : encadre la dimension ou l’indice d’un tableau
{ } : encadre un bloc d’instructions ou une liste de valeurs d’initialisation

ENP Le 20 / 03/ 2014 Mr. BELHIMER Salheddine


Les types

ENP Le 20 / 03/ 2014 Mr. BELHIMER Salheddine


Les types
Les types de base :
Le langage C offre pour les variables trois types fondamentaux
directement liées aux données manipulées par la machine. Les types de
base s’expriment à l’aide de mots clés réservés au langage:

 char pour caractère ( 8 bits )


 int pour entier ( 16 bits )
 float pour flottant ( 32 bits )
Ces trois types de base peuvent ainsi être modulé en tailles à l’aide des
spécificateurs:
 short pour entier court ( 16 bits )
 long pour entier long ( 32 bits )
 unsigned pour entier non signé ( 16 bits )
 double pour flottant long ( 64 bits )

ENP Le 20 / 03/ 2014 Mr. BELHIMER Salheddine


Les types
Les types de base :
Type de donnée Signification Taille (en octets) Plage de valeurs acceptée

Char Caractère 1 -128a 127


Unsigned char Caractère non signé 1 0 à 255

Short int Entier court 2 -32768 à 32767 %


Unsigned short int Entier court non signé 2 0 à 65535
Int Entier 2 (sur processeur 16 bits) -32768 a 32767

4 (sur processeur 32 bits) -2147 483 647 a 2147483 647

Unsigned int Entier non signe 2 (sur processeur 16 bits) 0 à 65535

4 (sur processeur 32 bits) 0 a 4294967295

Long int Entier long 4 -2 147 483 648 a 2 147 483 647

Unsigned long int Entier long non signé 2 0 a 4 294 967 295

-38 38
Float Flottant (reel) 4 3.4*10 a3.4*10

-308 308
Double Flottant double 8 I.7*l0 à l.7*l0
-4932 4932
Long double Flottant double long 10 3.4*10 à 3.4*10

ENP Le 20 / 03/ 2014 Mr. BELHIMER Salheddine


Les types
Les types dérivés :
En C, de nouveaux types plus complexes, peuvent être construits à
partir des types de base (char, int, float). Certains d’entre-eux sont déjà
prédéfinis par le langage, d’autres se déduisent des types de base et de
certains opérateurs:

 array tableau d’objets de même type


 pointer pointeur d’un objet de type donné
 struct structure contenant une suite d’objets de types différents
 union alternative entre un et plusieurs objets de types différents
 enum énumération de constantes symboliques associées à un objet
 function fonction qui retourne un objet de type donné.

ENP Le 20 / 03/ 2014 Mr. BELHIMER Salheddine


Les types
Les types de données personnalisés :
Le C permet de définir de nouveaux types de données grâce au mot clé
typedef. Et cella comme suit:
typedef < caractéristiques_du_type > < nom_du_type >

• caractéristiques_du_type : Représente un type de données existant (


float, short, int … )

• nom_du_type: Définit le nom que vous donnez au nouveau type de


donnée.

typedef float reel ;

ENP Le 20 / 03/ 2014 Mr. BELHIMER Salheddine


Les expressions

ENP Le 20 / 03/ 2014 Mr. BELHIMER Salheddine


Les expressions
Opérateurs:

Les opérateurs peuvent être représenter par un ou deux caractères


spéciaux, par un mot réservé ( cas du « sizeof» ), ou par un spécificateur de
type mis entre parenthèses:

? : Expression
conditionnelle

Opérateurs
ternaires
Opérateurs unaires Opérateurs binaires

ENP Le 20 / 03/ 2014 Mr. BELHIMER Salheddine


Les expressions
Affectation:
C’est attribuer une valeur calculée ou un résultat d’une opération à une
variable de même type.
A 5 A=5;
B 12 B = 12 ;
S A+B S = A+B;
Incrémentation et décrémentation:
Ce type d’opérateur permet d’augmenter ou de diminuer d’une unité une
variable. X = X + 1 ;  X++; X = X - 1 ;  X--;

Les opérations de calcul arithmétiques et d ’assignation:


 += Additionne deux valeurs et stocke le résultat dans la variable (à gauche).
 -= Soustrait deux valeurs et stocke le résultat dans la variable.
 *= Multiple deux valeurs et stocke le résultat dans la variable.
 /= Divise deux valeurs et stocke le résultat dans la variable.

ENP Le 20 / 03/ 2014 Mr. BELHIMER Salheddine


Les expressions
Les indicateurs de formats:
Indicateur Description
%c Format caractère
%d Format entier
%i Format entier (équivalent a %d)
%f Format decimal (virgule flottante)
%e ou %E Format de notation scientifique
%g ou %G Utilise %f ou %e selon la longueur de la valeur décimale.

%o Format octal non signe


%s Format chaine
%u Format entier non signe
%x Format hexadecimal non signe (les lettres en minuscule)

%X Format hexadecimal non signe (les lettres en majuscule)

%p Affichage du pointeur d' argument


%n Enregistre le nombre de caracteres affiches
%% Permet d'afficher le symbole %

ENP Le 20 / 03/ 2014 Mr. BELHIMER Salheddine


Les instructions

ENP Le 20 / 03/ 2014 Mr. BELHIMER Salheddine


Les instructions

C est un langage à instructions. Toute expression suivie d’un point-


virgule est une instruction. Un point-virgule marque la fin de chaque
instruction ; le point-virgule n’est pas un séparateur d’instructions comme en
Pascal, c’est en C un terminateur d’instruction.

On peut considérer qu’il existe deux catégories d’instruction:


 Les instructions simples,
 Les instructions de contrôle.

ENP Le 20 / 03/ 2014 Mr. BELHIMER Salheddine


Les instructions
L’instruction de lecture: scanf()
Attribution d’une valeur à une variable d’entrée selon le choix
de l’utilisateur; la valeur attribuée doit être de même type que la variable.
scanf ( ‘’ indicateur_de_type ‘’, & Nom_de_la_variable );

L’instruction d’écriture: printf()


C’est l’ édition « affichage » du résultat du traitement à travers une
variable de sortie ou l’affichage d’un simple message.
printf ( ‘’ indicateur_de_type ‘’, Nom_de_la_variable );

ENP Le 20 / 03/ 2014 Mr. BELHIMER Salheddine


Les instructions
Instructions conditionnelles:

L’alternative, c’est-à-dire l’instruction « si-alors-sinon », est très classique.


On peut omettre l’alternant, c’est-à-dire la partie « sinon » qui débute avec
le mot-clé else.

if (condition)
if / else
{ /* début de bloc*/
if (condition) /* commentaire
instruction1;
de la condition si */
instruction2;
instruction;
} /* fin de bloc */

if (condition1)
Conditions imbriquées inst1;
else if (condition2)
inst2;
else if (condition3)
inst3;
else inst4;

ENP Le 20 / 03/ 2014 Mr. BELHIMER Salheddine


Les instructions
Sélection (switch):
L'instruction switch est une sorte d'aiguillage. Elle permet de
remplacer plusieurs instructions imbriquées. La variable de contrôle est
comparée à la valeur des constantes de chaque cas (case). Si la
comparaison réussit, l'instruction du case est exécutée jusqu'à la première
instruction break rencontrée. switch (variable_controle)
{
case valeur1 : instruction1;
variable_controle doit être de type entier
break; /* sortie du case */
(int, short, char, long).
case valeur2 : instruction2;
break;
break fait sortir du sélecteur. En l'absence case valeur3 : /* plusieurs */
de break, l'instruction suivante est case valeur4 : /* étiquettes */
exécutée ; case valeur5 : instruction3; /* pour la même
instruction */
on peut ainsi tester plusieurs cas différents break;
et leur attribuer la même instruction. default : instruction4; /* cas par défaut */
break; /* facultatif mais recommandé */
}

ENP Le 20 / 03/ 2014 Mr. BELHIMER Salheddine


Les instructions
Boucles et sauts:

Les boucles consistent à répéter plusieurs fois la même séquence


d'instructions. La sortie de boucle est réalisée en testant une condition (de type
booléen VRAI ou FAUX).

While, Tant que :


La condition est évaluée avant d'entrer dans la boucle. La boucle
est répétée tant que la condition est VRAIE.

while (condition)
while (condition) {
instruction; instruction1;
instruction2;
}

ENP Le 20 / 03/ 2014 Mr. BELHIMER Salheddine


Les instructions
Boucles et sauts:
For, Pour:

for (initialisation; condition d'arrêt; incrémentation)


instruction;
for (initialisation; condition d'arrêt;
incrémentation)
{
instruction1;
instruction2;
...
}

La condition est évaluée avant d'entrer dans la boucle. L'incrémentation de


la variable de contrôle est faite à la fin de chaque tour de boucle.

ENP Le 20 / 03/ 2014 Mr. BELHIMER Salheddine


Les instructions
Boucles et sauts:
Do ... While, Faire ... tant que:
do {
instruction1;
instruction2;
} while (condition d'arrêt);
La condition est évaluée après le passage dans la boucle.

Exit:
Un programme peut être interrompu par l'instruction
exit(code de retour);

La valeur du code de retour est un entier qui peut être testée par le
programme appelant.

ENP Le 20 / 03/ 2014 Mr. BELHIMER Salheddine


Merci Pour Votre Attention

ENP
View publication stats
Le 20 / 03/ 2014 Mr. BELHIMER Salheddine