2. Objectifs
A la fin de ce chapitre, l’étudiant sera capable de:
• Connaître la structure d’un programme C.
• Manipuler les variables et les opérateurs de base en C.
• Connaître et utiliser les fonctions de lecture et d’écriture en C.
2
5. 5
Le langage C
• Crée par K. Thompson, D. Ritchie et B. Kernighan pour développer UNIX.
• C’est le langage le plus utilisé par les professionnels du logiciel.
• Il a influencé de nombreux langages plus récents dont C++ et Java.
6. Structure d’un programme C (1/4)
• En langage C le programme principal et les sous programmes sont définies comme des
fonctions.
• La fonction particulière nommée main() est la fonction principale d’un « programme C »
6
<include des bibliothèques>
void main()
{
< Traitements >;
}
#include <stdio.h> /* Bibliothèque d’entrées-sorties standard */
void main() /* Notre premier programme en C */
{
printf(" Bienvenue à ESPRIT" );
}
Syntaxe: Programme:
Bienvenue à ESPRIT
Exécution:
7. Structure d’un programme C (2/4)
7
#include <stdio.h> /* Bibliothèque d’entrées-sorties standard */
void main() /* Notre premier programme en C */
{
printf(" Bienvenue à ESPRIT" );
}
Programme:
main est toujours la fonction
principale d’un programme C
Début du bloc d’instructions
Fin du bloc d’instructions
8. Structure d’un programme C (3/4)
8
#include <stdio.h> /* Bibliothèque d’entrées-sorties standard */
void main() /* Notre premier programme en C */
{
printf(" Bienvenue à ESPRIT" );
}
Programme:
Commentaires
9. Structure d’un programme C (4/4)
9
#include <stdio.h> /* Bibliothèque d’entrées-sorties standard */
void main() /* Notre premier programme en C */
{
printf (" Bienvenue à ESPRIT" );
}
Programme:
Fonction affichant à l’écran une
chaîne de caractères
Bienvenue à ESPRIT
Inclusion de la bibliothèque contenant la fonction printf
10. Comment Créer un programme exécutable ?
10
1). Ecriture des fichiers source *.c
2). Compilation
3). Edition des liens
11. Remarques
✔Les commentaires sont utilisés pour des raisons de lisibilité et de compréhension du
programme. Un commentaire est une chaîne de caractères comprise entre /* et */ , ou
bien //
✔Cette chaîne est ignorée par le compilateur C et peut déborder sur plusieurs lignes.
✔ Le langage C distingue les minuscules, des majuscules.
✔Les mots réservés (exemples : for, while, return, struct …) du langage C doivent être
écrits en minuscules.
11
14. 14
Les variables
• Les variables permettent de représenter les données d’un programme.
• Chaque variable est matérialisée par un emplacement mémoire identifié par un nom.
• Chaque variable possède :
1. un nom
2. un type
3. une valeur
15. 15
Les variables
• Qu'est-ce qu'une variable ?
1. Le nom d’un emplacement mémoire
2. On en crée presque autant qu’on veut
3. Son contenu peut changer dans le temps
4. Elle contient toujours quelque chose
Une variable sera toujours définie avant utilisation : elle doit être associée à un type de données
16. 16
Les variables ( Nom )
• Un nom de variables:
⮚ Contient 32 caractères max
⮚ Commence par une lettre ou le symbole _
⮚ C distingue les majuscules et les minuscules.
compteur ’ et ‘ Compteur’ sont deux variables différentes
⮚ Ne peut pas être un des mots réservés du C: Int, char, float, if ….
⮚ Le choix des noms est important pour la lisibilité du programme
17. 17
Les variables ( Type )
Types Réels
C est un langage typé:
Types Entiers
Types de base en C
⬥ int : entier standard
⬥ short : entier court
⬥ long : entier long
Le langage C implémente le type
char qui est en fait numérique.
⬥ char : caractère
⬥ float : réel
⬥ double : réel double
⬥ long double : réel long double
18. 18
Les variables ( Type : Entiers )
Type Nombre d’octets Domaine
int 4 [-231, 231-1]
unsigned int 4 [0, 232-1]
short 2 [-32768, 32767]
unsigned short 2 [0, 65535]
long 4 [-231, 231-1]
unsigned long 4 [0, 232-1]
char 1 [-128, 127]
Unsigned char 1 [0, 255]
Float 4 [-3.4*1038, 3.4*1038]
double 8 [-1.7*10308, 1.7*10308]
long double 10 [-3.4*104932, 1.7*104932]
Entiers
Réels
19. 19
Les variables ( Exemple )
#include <stdio.h> /* Bibliothèque d’entrées-sorties standard */
int main()
{
int a; // déclaration
a=127; // affectation
printf("la valeur de a = %d",a); // affichage de la valeur de a
}
main est toujours la fonction
principale d’un programme
C
Début de bloc d’instructions
Fin de bloc d’instructions
22. 22
Affichage de données
Fonction printf()
printf (" text Format de nomvar ", NomVar );
⇒ Permet d’afficher des chaînes de caractères et des données de types différents
Format Données
%d Nombre entier
%u Nombre entier non signé
%c Caractère
%f Nombre à virgule flottante: Réel
23. 23
Lecture de données
Fonction scanf()
Scanf (“Format ", & NomVar);
⇒ permet de lire des chaînes de caractères et traite des données de types différents
26. Opérateurs de base
26
• Opérateurs arithmétiques :
▪ + : addition ⮊ a + b
▪ - : soustraction ⮊ a – b
▪ * : multiplication ⮊ a * b
▪ / : division (entière et rationnelle) ⮊ a / b
⬥ Si a et b sont des entiers (a = 7; b = 2) a / b donne 3
⬥ Si a ou b est un réel (a = 7; b = 2.0) a / b donne 3.5
▪ % : modulo (reste de la division entière) ⮊ a % b
⬥ a = 7; b = 2 alors a % b donne 1
27. Opérateurs de base
27
▪ && : et logique (AND)
▪ || : ou logique (OR)
▪ ! : négation (NOT)
a b a && b a || b ! a
0 0 0 0 1
0 1 0 1 1
1 0 0 1 0
1 1 1 1 0
• Pas de type booléen en C Les opérateurs logiques considèrent toute valeur différente de
zéro comme vrai et zéro comme faux.
(4 < 10) 1 (vrai)
!(5 > 1) 0 (faux)
28. Opérateurs ( Opérateurs de comparaison )
• Opérateurs de Comparaison : (1: vrai ou 0: faux)
▪ == : égal à ⮊ a == b
▪ != : différent de ⮊ a != b
▪ < : strictement inférieur ⮊ a < b
▪ <= : inférieur ou égal ⮊ a <= b
▪ > : strictement supérieur ⮊ a > b
▪ >= : supérieur ou égal ⮊ a >= b
28
29. Opérateurs ( Opérateurs d’affectation )
29
⮚ Affectation simple
int x;
x = 4;
⮚ Affectation combinée
var1 = (var1) op (var2) var1 op= var2
⮚ Affectation simple
int x;
x = 2;
x = x + 1; x++; x+=1;
i += 1 ;
i = i + 1;
30. Opérateurs ( Incréments et décréments )
30
• Incréments et décréments:
▪ ++ : augmentation de 1
y = x++; y = x; x = x+1;
▪ -- : diminution de 1
int x = 3; y 3 x 4
y = x--; y = x; x = x-1;
x++; x = x+1;
x--; x = x-1;
y = ++x x = x + 1; y = x; x 4 y 4
31. Les priorités
31
Priorité 1 (la plus forte) ( )
Priorité 2 ! ++ --
Priorité 3 * / %
Priorité 4 + -
Priorité 5 < <= > >=
Priorité 6 == !=
Priorité 7 &&
Priorité 8 ||
Priorité 9 (la plus faible) = += -= *= /= %=
• L’ordre d ’évaluation des différentes parties d’une expression est en principe le même
qu’en mathématiques. x = 2 + a - 5 * 4 – b / c + 6; ?