Vous êtes sur la page 1sur 7

Cours programmation 1 : langage C Chapitre 1 : Structure d’un programme C

Programmation
structurée

Langage C

1
Cours programmation 1 : langage C Chapitre 1 : Structure d’un programme C

Chapitre 1 : Structure d’un programme C

I. Introduction

Le langage C est un langage de la troisième génération, il est développé en 1970 par Dennie
Ritchie. C’est un langage évolué et structuré, il est assez proche du langage machine.

II. Structure d’un langage C

Un programme en langage C est un texte structuré de la manière suivante :

 Un entête (header) constitué de méta instructions ou directives destinées au pré


processeur (par exemple : inclusion de librairies de fonctions prédéfinies).
 Un bloc principal appelé main( ) : Qui représente la fonction principale, elle a la
particularité d’être la première fonction exécutée par le programme.
 Le corps des fonctions placées avant ou après le main ( ) dans un ordre quelconque,
les une après les autres.

Exemple :
#include<stdio.h> /*header de la bibliothéque contenant printf*/
#include<math.h>
#define Nfois 3
float calcul( );/*fonction qui calcule la racine carrée*/
void main( )
{
int i;
float resu;

printf("calcul de %d racine carré\n",Nfois);


for(i=0;i<Nfois;i++)
{
resu=calcul();
printf("\n la racine est:%3f", resu);
}
printf("\ntravail terminé, au revoir");
}

float calcul( )
{
float x,racx;
racx=0;
printf("\ndonner un nombre:");
scanf("%f",&x);
racx=sqrt(x);
return racx;
}

2
Cours programmation 1 : langage C Chapitre 1 : Structure d’un programme C

II. Les composants élémentaires du langage C


Un programme en langage C est constitué des six groupes de composants élémentaires
suivants :
 les identificateurs
 les mots-clefs
 les constantes
 les chaînes de caractères,
 les opérateurs
 les signes de ponctuation.
On peut ajouter à ces six groupes les commentaires, qui ne sont pas considérés par le pré
processeur.
 Les identificateurs
Les identificateurs servent à désigner les différents « objets » manipulés par le
programme (variables, fonction, etc.). Ils sont formés d’une suite de caractères choisis parmi
les lettres, les chiffres, le premier d’entres eux étant nécessairement une lettre.

Remarque :

Le caractère « souligné » est considéré comme une lettre. Il peut apparaître en début d’un
identificateur.
Le langage C différencie entre les majuscules et les minuscules.
Le compilateur peut tronquer les identificateurs au-delà d'une certaine longueur. Cette limite
dépend des implémentations, mais elle est toujours supérieure à 31 caractères.
 Les mots-clefs
Certains mots clefs sont réservés par le langage C à un usage bien défini et ne peuvent pas
être utilisés comme identificateurs. L'ANSI-C compte 32 mots clefs :
auto const double float int short struct unsigned break continue else for long
signed switch void case default enum goto register sizeof typedef volatile char do
extern if return static union while

Ces mots peuvent être rangé en catégories :

les spécificateurs de stockage auto register static extern typedef


les spécificateurs de type char double enum float int long short signed
struct union unsigned void
les qualificateurs de type const volatile
les instructions de contrôle break case continue default do else for goto if
switch while
divers return sizeof
 Les commentaires
Un commentaire commence toujours par les deux symboles '/*' et se termine par les symboles
'*/'. Il est interdit d'utiliser des commentaires imbriqués.
/* Ceci est un commentaire */

3
Cours programmation 1 : langage C Chapitre 1 : Structure d’un programme C

 Les constantes
Une constante est une donnée dont la valeur ne peut varier.
Il est possible de donner un nom symbolique à une chaîne particulière et de lui associer une
valeur constante au début d’un programme. Après une déclaration de constante le compilateur
remplacera toutes les occurrences de ce nom par la valeur correspondante.
syntaxe : #define nom_variable valeur

Exemple : #define g 9.81, #define pi 3.14

 Les opérateurs

a) Arithmétiques
Ces opérateurs s’appliquent à des valeurs entières ou réelles.
- et + : opérateur unaire (Ce sont les opérateurs à un seul argument)
+ : addition
- : soustraction
* : multiplication
/ : division
% : reste de la division (% nécessite obligatoirement deux arguments entiers)

Ordre de priorité:
+ ; - (unaire)
*;/;%
+; -
En cas de même priorité le calcul se fait de gauche à droite, on dit qu’on a associativité à
gauche.

b) Relationnels
= = : égalité
!= : différent
< : inférieur strictement
> : supérieur strictement
<= : inférieur ou égal
>= : supérieur ou égal

Ordre de priorité:
Les opérateurs < ; <= ;> ; >= sont prioritaires par rapport aux opérateurs = = ; !=
La priorité des opérateurs relationnels est inférieure à celle des opérateurs arithmétiques:
x+y < a+2 <==> (x+y) < (a+2)

N.B. : Le résultat de comparaison n’est pas une valeur booléenne mais un entier:
0 si le résultat est faux
1 si le résultat est vrai

c) Logiques
&& : "et" logique
|| : "ou" logique
! : "non" logique

Ordre de priorité: !, &&, ¦¦

4
Cours programmation 1 : langage C Chapitre 1 : Structure d’un programme C

N.B. : && et ¦¦ ont une priorité inférieure aux opérateurs arithmétiques et relationnels.
! a une priorité supérieure aux opérateurs arithmétiques et relationnels.

d) Incrémentation ou décrémentation
++ : incrémentation de 1
-- : décrémentation de 1

e) Binaires
& : "et"
^ : "ou" exclusif
| : "ou" inclusif
<< : décalage à droite
>> : décalage à gauche
~ : complément à 1

f) Affectation
= : affectation simple
+= , -= , *= , /= , %= , <<= , >>= , &= , ^= , |=

Exemple : a+=5 est équivalent à a=a+5

g) Conditionnel
L'opérateur conditionnel ?: permet à une expression une valeur conditionnellement à une autre
valeur.

Exemple:
If a>b
max=a
else
max=b

si (a<b) est vrai, min = a; , sinon min = b; <==> max= (a<b) ?a : b ;

h) Conversion de type
Lorsque des opérandes d'un opérateur sont de type différent, ils sont convertis en un type
commun. Par exemple, dans l'expression 2.0 + 3, l'entier 3 sera converti en double. Il s'agit
d'une conversion implicite.
Il est possible de forcer une conversion (conversion explicite) en utilisant un opérateur de
cast : (nom_type)expression. L'expression globale est convertie dans le type nom_type.
Exemple :
Soient deux variables n et p de type entier, l’expression (double)(n/p) aura comme valeur celle
de l’expression entière n/p convertie en double.
(doube)n/p.

III. Les types de données :

En langage C, il existe quelques types fondamentaux de données :


 Le type char : un seul byte représentant un caractère.
 Le type int : un nombre entier dont la taille corresponds à celles des entiers du SE.
 Le type float : un nombre en virgule flottante en simple précision.

5
Cours programmation 1 : langage C Chapitre 1 : Structure d’un programme C

 Le type double : un nombre en virgule flottante en double précision.


Exemples :
short int x ;
unsigned long y ; /* int implicite */
Long double z ;
unsigned char ch ;

IV. Déclaration de constantes

Les constantes doivent toutes être déclarées et initialisées avant d’être utilisées. Il existe deux
méthodes pour la déclaration des constantes.
Méthode 1 :
#define nom_cste valeur /* pas de point virgule à la fin */
Exemple : #define PI 3.14
Méthode 2 :
const type nom_cste = valeur ;
Exemple : const float PI = 3.14 ;
Le compilateur réserve de la place en mémoire (ici 4 octets), pour la variable PI, mais dont on
ne peut changer la valeur.

V. Les variables
Les variables doivent toutes être déclarées avant d’être utilisées. A une variable correspond un
espace en mémoire et un mécanisme permettant d’adresser cet emplacement. En C une
variable est caractérisé par :
 Son nom (un identificateur)
 Son type (type de base ou type définie par l’utilisateur)
La déclaration d’une variable a la forme :

<type> <non>;
Example

#include<stdio.h>
#include<conio.h>
void main()
{
Déclaration de variables
int i;/*i: variable de type entier */
char car;/*car: variable de type caractère */
i=65;/*i vaut 65 */ Ecriture dans les variabes
car = 'E'; /* car vaut E */
clrscr(); /* Efface l'écran */
printf("i vaut %d.\n", i); /* Affiche la valeur de i */ Affichage des variables
printf("car vaut %c.\n",car); /* Affiche la valeur de car */
getch(); /* Attendre l'appui d'une touche */

6
Cours programmation 1 : langage C Chapitre 1 : Structure d’un programme C

}
Explication :
On met dans la variable i la valeur 65.
On met dans la variable car la valeur de E.

Définition de nouveaux types

Le langage C fournit une fonction appelée typedef qui crée de nouveaux types de données.

Exemple :
typedef int entier ; /* fait du nouveau nom ‘entier’ un synonyme de int.
Ce type peut être utilisé dans des déclaration, des ‘casts’ … exactement
comme int. */
tyedef char STRING ; /* fait de string un synonyme de char*/

Vous aimerez peut-être aussi