Vous êtes sur la page 1sur 20

PROGRAMMATION

C
Intervenant
Habib NDIAYE

2
Plan
 Chapitre 1 : Bases de la programmation C
o Historique et caractéristiques
o Compilation
o Composants élémentaires
o Structures d’un programme
o Types prédéfinis
o Opérateurs
o Fonctions d’entrées et sorties
o Branchements conditionnels
o Boucles
o Branchements non conditionnels

3
Plan
 Chapitre 2 : Structures de données
o Tableaux
o Chaînes de caractères
o Structures
o Enumérations
 Chapitre 3 : Fonctions
 Chapitre 4 : Pointeurs
 Chapitre 5 : Fichiers
 Chapitre 6 : Listes chaînées

4
Introduction aux langages de programmation
Un langage de programmation ressemble à une langue : il dispose de son propre
vocabulaire et de ses règles de grammaire et de syntaxe.
Une autre définition est celle-ci : formalisme basé sur une langue et qui définit une manière
de donner des ordres à l’ordinateur.
• programme (ou exécutable) : algorithme écrit dans un langage de programmation;
ensemble d’instructions exécutables par un ordinateur;
• code source = fichier texte contenant un ensemble d’instructions écrit dans un certain
langage de programmation. En C, un code source est un (ou plusieurs) fichier(s) portant
l’extension .c;
• programmation : activité de rédaction du code source d’un programme.
On peut regrouper les langages de programmation en deux catégories :
• les langages de bas niveau : ils se rapprochent plus du langage machine (langage binaire,
langage du processeur) ;
5
Introduction aux langages de programmation
• les langages de haut niveau : ils sont proches du langage humain et indépendants de la
machine utilisée (portabilité). Plus un langage est de haut niveau, plus il est proche du
langage humain.
Le langage assembleur et le langage machine sont des exemples de langages de bas
niveau. Parmi les langages de haut niveau, on retrouve le C, C++, Java, PHP, etc...
Il est possible de faire une traduction du langage de haut niveau vers celui de bas niveau,
avec un traducteur. On distingue alors deux types de traducteurs :
• l’interpréteur : il traduit le programme instruction par instruction.
• le compilateur : il traduit le programme dans son ensemble.
Suivant le type de traducteur utilisé, on parlera alors de langage compilé (cas du C, de
Latex, etc.) ou de langage interprété (cas de Ruby, PHP, HTML, etc.). Certains langages, tels
que Java, sont intermédiaires.

6
Historique
Le C a été conçu en 1972 par Dennis Richie et Ken Thompson, chercheurs aux Bell Labs,
afin de développer un système d’exploitation UNIX.
En 1978, Brian Kernighan et Dennis Richie publient la définition classique du C dans le livre
The C Programming language.
Le C devenant de plus en plus populaire dans les années 80, plusieurs groupes mirent sur
le marché des compilateurs comportant des extensions particulières.
En 1983, l’ANSI (American National Standards Institute) décida de normaliser le langage ;
ce travail s’acheva en 1989 par la définition de la norme ANSI C. Celle-ci fut reprise telle
quelle par l’ISO (International Standards Organization) en 1990. C’est ce standard, ANSI C,
qui est décrit dans le présent document.

7
Caractéristiques
Le langage C est un langage de haut niveau( on dit parfois aussi qu’il est le plus bas des
langages de haut niveau!!!), impératif, compilé, typé et déclaratif.
Avantages
• Grande notoriété et très utilisé, possibilité d’avoir de la documentation et /ou de l’aide ;
• Certain nombre de fonctions prédéfinies dans des bibliothèques ;
• Langage portable et standardisé ;
• Simplicité ;
• Gestion de la mémoire ;
• Vitesse d’exécution.
Inconvénients
• Rigueur d’écriture ;
• Définition de certains concepts par soi-même .
8
La compilation
Le C est un langage compilé(par opposition aux langages interprétés). Cela signifie qu’un
programme C est décrit par un fichier texte, appelé fichier source. Ce fichier n’étant
évidemment pas exécutable par le microprocesseur, il faut le traduire en langage machine.
Cette opération est effectuée par un programme appelé compilateur. La compilation se
décompose en fait en 4 phases successives:

• la pré-compilation (pre-processing) : le fichier source est analysé par le préprocesseur


qui effectue des transformations purement textuelles (remplacement de chaînes de
caractères, inclusion d’autres fichiers source ...).
• la compilation proprement dite (compiling) : la compilation proprement dite traduit le
fichier généré par le préprocesseur en assembleur, c’est-à-dire en une suite
d’instructions du microprocesseur qui utilisent des mnémoniques rendant la lecture
possible.
9
La compilation
• l’assemblage (assembling) : cette opération transforme le code assembleur en un fichier
binaire, c’est-à-dire en instructions directement compréhensibles par le processeur.
Généralement, la compilation et l’assemblage se font dans la foulée, sauf si l’on spécifie
explicitement que l’on veut le code assembleur. Le fichier produit par l’assemblage est
appelé fichier objet.

• l’édition des liens (linking) : un programme est souvent séparé en plusieurs fichiers
source, pour des raisons de clarté mais aussi parce qu’il fait généralement appel à des
librairies de fonctions standard déjà écrites. Une fois chaque code source assemblé, il
faut donc lier entre eux les différents fichiers objets. L’édition de liens produit alors un
fichier dit exécutable.

10
La compilation
GCC(GNU Compiler Collection) est un compilateur en ligne de commande prenant en charge
divers langages de programmation, dont le C. Il n’existe pas de compilateur par défaut
installe sur Windows. Mais on peut utiliser des versions de gcc sur Windows tels que
MinGW ou Cygwin.

11
Les composants élémentaires : Identificateur
Un programme en langage C est constitué des six groupes de composants élémentaires
suivants:

• les identificateurs,
• les mots-clés,
• les constantes,
• les chaînes de caractères,
• les opérateurs,
• les signes de ponctuation.

On peut ajouter à ces six groupes les commentaires, qui sont enlevés par le préprocesseur.

12
Identificateur
Le rôle d’un identificateur est de donner un nom à une entité du programme. Plus
précisément, un identificateur peut désigner :
• un nom de variable ou de fonction;
• un type défini par typedef, struct ou enum.
Un identificateur est une suite de caractères parmi :
• les lettres (minuscules ou majuscules, mais non accentuées);
• les chiffres;
• le “blanc souligné” (_).
NB: Le premier caractère d’un identificateur ne peut pas être un chiffre et les majuscules et
minuscules sont différenciées (sensibilité à la casse, les accents sont interdits)
Exemple: var1, tab23 ou _deb sont des identificateurs valides; par contre, 1i et i:j ne le sont
pas. Il est cependant déconseillé d’utiliser _ comme premier caractère d’un identificateur
car il est souvent employé pour définir les variables globales de l’environnement C.
13
Mots clés
Il existe une série de mots réservés (aussi appelés mots-clés) au langage C, c’est-à-dire
qu’on ne peut pas les utiliser comme identificateurs ( de variables, de fonctions ou de
nouveaux types). Ils sont au nombre de 32 :

que l’on peut ranger en catégories


– les spécificateurs de stockage – les qualificateurs de type – divers
auto register static extern typedef const volatile return sizeof
– les spécificateurs de type – les instructions de contrôle
char double enum float int long short break case continue default do else for goto if
signed struct union unsigned void switch while

14
Commentaires
Dans un programme, il est souvent nécessaire de documenter les parties importantes (par
exemple pour indiquer l’auteur du code, la date de création, le rôle d’une fonction ou d’un
bloc d’instructions). Pour cela, on utilise la notion de commentaire. Le texte placé dans un
commentaire est ignoré par le compilateur lors de l’exécution. On distingue deux sortes de
commentaires :
• les commentaires portant sur une ligne : on utilise //;
• les commentaires portant sur plusieurs lignes : ils débutent par /* et se terminent par */.

15
Structure d’un programme C
Un programme C est décrit par un ou plusieurs fichiers d’extension .c (appelés fichiers
source) et est constitue d’un programme principal pouvant faire appel à des sous-
programmes qui réalisent chacun une certaine tache.
Un programme C se présente de la façon suivante :

Chaque instruction dans le code source se termine par un ;


16
Les directives du préprocesseur
Le préprocesseur est un programme exécuté lors de la précompilation (première étape de
la compilation). Il effectue des modifications textuelles sur le fichier source à partir de
directives. Une directive du préprocesseur est une ligne du code source commençant par #.
Il existe trois manières de définir une directive du préprocesseur :

• #include<nomFichier> : indique l’utilisation d’une librairie prédéfinie et se trouvant dans le


fichier nomFichier;

• #define : pour la définition de constantes symboliques et de macros

• #if, #ifdef, #ifndef : directives de compilation conditionnelle.

17
Les directives du préprocesseur
La directive #include
Elle permet d’inclure des fichiers (représentant des librairies) dont les éléments (fonctions,
objets prédéfinis, etc...) seront utilisés dans le programme. On peut utiliser cette directive
de deux façons :
• #include<nomFichier> : indique l’utilisation d’une librairie prédéfinie et se trouvant dans le
fichier nomFichier ;
• #include "nomFichier" : Elle est plutôt destinée aux fichiers crées par le programmeur
lui-même.
Concrètement, la directive #include va inclure le contenu du fichier indiqué dans le code
source.

18
Les directives du préprocesseur
La directive #define
Elle permet de définir des constantes dites symboliques (ou constantes du préprocesseur ).
Une constante est une variable particulière qui ne change pas de valeur.
Syntaxe :
#define nomConstante valeur
où valeur peut être n’importe quelle chaîne de caractères. Concrètement, dans tout le code
source, toute occurrence de nomConstante sera remplacée par valeur.
• Par convention, les noms des caractères sont
toujours écrits en toutes majuscules.
• On peut définir les constantes d’une autre manière
(avec le mot-clé const. Par exemple : const int
TAXE = 75; ). Mais il est recommandé de toujours
les définir comme des constantes symboliques avec
la directive #define.
19
La fonction main
Un programme C doit contenir au minimum une fonction spéciale appelée fonction main. La
fonction main est le point d’entrée du programme, c’est-a-dire que c’est la première fonction
qui sera invoquée lors de l’exécution. Sa présence est obligatoire.

20

Vous aimerez peut-être aussi