Vous êtes sur la page 1sur 24

Généralités sur le langage C

Module : Programmation C

Qui? Prof. Nabil KANNOUF

D’où? UAE – ENSAH

Quand? 28 septembre 2023


Plan

Historique du langage
C
Caractéristiques du
langage C
Définitions et
terminologies
Notion de
compilation
Environnement de
développement
intégré
Structure d’un
programme en C
Problème Programme
1 Comprendre le problème
1 Les données
2 Les entrées et les sorties du
2 Les résultats
problèmes
3 Les instructions permettant
3 Les étapes de résolution du
de résoudre le problème
problème (algorithme)
1.1- Historique du langage C
Historique du langage C

C a été inventé par Dennis M.Ritchie et Ken Thompson aux « Bells


Laboratories » en 1972.

L’objectif est d’écrire un système d’exploitation (UNIX).

En 1978, Brian W. Kernighan et Dennis M.Ritchie ont publié le livre


« The C Programming Language ».

En 1983, l’organisme ANSI (American National Standards Institute)


commence le processus de normalisation du langage C. Le résultat était
le standard ANSI-C.

En 1988 : deuxième édition du livre « The C Programming Language »,


qui respecte le standard ANSI-C. Elle est devenue la référence des pro-
grammes en C.
1.2- Caractéristiques du langage C
Caractéristiques du langage C

C’est un langage universel : C n’est pas orienté vers un domaine d’appli-


cations spécifique (au contraire du FORTRAN : applica-
tions scientifiques, COBOL : applications commerciales).

Il est près de la machine : comme il a été développé initialement pour


programmer le système UNIX, il offre des opérateurs très
proches de ceux du langage machine et des fonctions qui
permettent un accès simple et direct aux fonctions internes
de l’ordinateur (par exemple la mémoire).
Caractéristiques du langage C

Il est rapide : puisqu’il est près de la machine.

Il est portable : en respectant le standard ANSI-C, il est possible d’uti-


liser le même programme sur tout autre système d’ex-
ploitation en possession d’un compilateur C. C est de-
venu aujourd’hui le langage de programmation des micro-
ordinateurs.

Il est extensible : C ne se compose pas seulement des fonctions stan-


dard, le langage est animé par des bibliothèques de fonc-
tions privées ou livrées par de nombreuses maisons de dé-
veloppement.
1.3- Définitions et terminologies
Définitions

Notion d’algorithme : séquence finie d’actions permettant de résoudre


un problème donné.

Algorithmique : ensemble des méthodes permettant de définir et/ou


d’étudier des algorithmes.

Programme : séquence d’instructions destinées à être exécutées par un


ordinateur.

Instruction : action que l’ordinateur connait et peut réaliser.

Jeu d’instructions : ensemble des instructions autorisées dans un lan-


gage de programmation.
Définitions

Code source : programme exprimé dans un langage de programmation


compréhensible par un être humain, et ne pouvant pas être
exécuté directement par l’ordinateur.

Code binaire : programme exprimé en langage machine, pouvant être


directement exécuté par l’ordinateur.

Compilation : action de transformer un code source en code binaire, de


manière à obtenir un fichier exécutable à partir d’un ou
plusieurs fichiers sources.

N.B on utilise souvent le seul terme programme pour désigner le code source
ou le code binaire. Son interprétation dépend alors du contexte
1.4- Notion de compilation
Compilation

N.B par abus de langage, on appelle compilation l’ensemble de la procédure permettant d’obtenir
un fichier binaire à partir d’un ou plusieurs fichiers sources, alors qu’en réalité, la compilation
proprement dite n’est qu’une étape de cette procédure (ici, la deuxième étape).
1.5- Environnement de développement intégré
IDE

Environnement de Développement Intégré, ou IDE (Integrated Development


Environment) doté d’une interface utilisateur graphique.
▷ NetBeans, CodeLite, Turbo C++, C++Builder, Dev-C++, Visual C++

Faciliter la tâche du programmeur dans la réalisation d’applications ou l’écri-


ture de programme.
Les composants d’un IDE :
▷ Un éditeur de code source avec coloration syntaxique.
▷ Un simulateur permettant de tester l’exécution de son logiciel.
▷ Un compilateur qui va transformer le code source rédigé par le développeur en
code binaire.
▷ Un débogueur (exécution étape par étape).
1.6- Structure d’un programme en C
Structure d’un programme en C


# include < stdio .h >
# include < math .h >
# define NFOIS 5
main ()
{ int i ;
float x ;
float racx ;
printf ( " Bonjour \ n " ) ;
printf ( " Je vais vous calculer % d racines carres " , NFOIS ) ;
for ( i =0 ; i < NFOIS ; i ++)
{ printf ( " Donnez un nombre : " ) ;
scanf ( " % f " , & x ) ;
if ( x < 0.0)
printf ( " Le nombre % f ne possede pas de racine carree \ n " , x ) ;
else
{ racx = sqrt ( x ) ;
printf ( " Le nombre % f a pour racine carree : % f \ n " , x , racx ) ;
}
}
printf ( " Travail termine - Au revoir " ) ;
}
 
Structure d’un programme en C

# include < stdio .h >
# include < math .h >
# define NFOIS 5
main ()
{
int i ;
float x ;
float racx ;
 
Le programme principal :
La ligne main : précise que ce qui sera décrit à sa suite est en fait le programme
principal (main).
Les déclarations :
Les trois instructions :
int i ;
float x ;
float racx ;
sont des « déclarations ». La première précise que la variable
nommée i est de type int, c’est-à- dire qu’elle est destinée à contenir
des nombres entiers (relatifs).
Structure d’un programme en C

Affichage de message sur l’écran :



printf ( " Bonjour \ n " );
 

printf() est une fonction prédéfinie (elle est fournie avec le langage de
programmation).

printf("Je vais vous calculer %d racines carrées\n",


NFOIS) ;
Le caractère % signifie que le caractère suivant est, non plus du texte à
afficher tel quel, mais un « code de format ». Ce dernier précise qu’il
faut afficher la valeur reçue en argument.
Structure d’un programme en C
Pour faire une répétition :

for ( i =0 ; i < NFOIS ; i ++);
 
▷ Il existe plusieurs façons de réaliser une répétition (on dit aussi une « boucle ») Son
rôle est de répéter le bloc (délimité par des accolades « { » et « } ») figurant à sa
suite.

for ( i =0 ; i < NFOIS ; i ++)
{ printf ( " Donnez un nombre : " ) ;
scanf ( " % f " , & x ) ;
if ( x < 0.0)
printf ( " Le nombre % f ne possede pas de racine carree \ n " , x ) ;
else
{ racx = sqrt ( x ) ;
printf ( " Le nombre % f a pour racine carree : % f \ n " , x , racx ) ;
}
}
 
Pour lire des informations :

scanf ( " % f " , & x ) ;
 
La ligne ci-dessus est un appel de la fonction prédéfinie scanf dont le rôle est de lire
une information au clavier.
Structure d’un programme en C

Pour faire des choix :



if ( x < 0)
printf ( " Le nombre % f ne possede pas de racine carree \ n " , x );
else
{
racx = sqrt ( x ) ;
printf ( " Le nombre % f a pour racine carree : % f \ n " , x , racx ) ;
}
 
Les lignes ci-dessus constituent une instruction de choix basée sur la condition x < 0.
Les directives à destination du préprocesseur

# include < stdio .h >
# include < math .h >
# define NFOIS 5
 
Ces lignes précisent les directives qui seront prises en compte avant la traduction (com-
pilation) du programme. Les deux premières directives demandent en fait d’introduire
(avant compilation) des instructions (en langage C) situées dans les fichiers stdio.h
et math.h. Leur rôle ne sera complètement compréhensible qu’ultérieurement.
Quelques règles d’écriture d’un programme en C
Les identificateurs : Les identificateurs servent à désigner les différents «
objets » manipulés par le programme : variables, fonctions
...
Comme dans la plupart des langages, ils sont formés d’une
suite de caractères choisis parmi les lettres ou les chiffres,
le premier d’entre eux étant nécessairement une lettre.
▷ En ce qui concerne les lettres :
⋆ Le caractère souligné (_) est considéré comme une lettre : Var_,
var_x, _x . . .
⋆ Les majuscules et les minuscules sont autorisées mais ne sont pas
équivalentes. X et x ne représentent pas la même variable.
Les commentaires : Il s’agit de textes explicatifs destinés aux lecteurs
du programme et qui n’ont aucune incidence sur sa com-
pilation. Ils sont formés de caractères quelconques placés

entre les symboles \⋆ et ⋆\.
/* p r o g r a m m e de calcul
de racines carrees */
 
Références

Claude Delannoy : Programmer en langage C


Fin de Séance
Vos Questions ?

Vous aimerez peut-être aussi