Académique Documents
Professionnel Documents
Culture Documents
Éléments du
Chapitre 2
langage C
Les variables et les constantes
Les déclarations
Les opérateurs
Priorité des opérateurs
Les commentaires
Incrémentation/Décrémentation
Les fonctions mathématiques standards
Les conversions de type
Chapitre 2 Éléments du langage C
Les variables et les constantes
o Introduction
• Les variables et les constantes sont les données principales qui peuvent être
manipulés par un programme.
• Les déclarations introduisent les variables qui sont utilisés, fixent leurs types et parfois
aussi leurs valeurs de départ.
→ Chaque variable doit avoir un identificateur et un type
2
Chapitre 2 Éléments du langage C
Les variables et les constantes
o Les identificateurs
3
Chapitre 2 Éléments du langage C
Les variables et les constantes
o Types de base
• Le C est un langage typé. → Cela signifie en particulier que toute variable, constante
ou fonction est d’un type précis.
• Le type d’un objet définit la façon dont il est représente en mémoire.
Nombres entiers
• Le type « int » est le plus adapté parmi les types précédents sur la machine utilisée.
• Le langage C distingue plusieurs types d’entiers :
4
Chapitre 2 Éléments du langage C
Les variables et les constantes
sizeof(expression)
/* où expression est un type ou un objet
→ Le résultat est un entier égal au nombre d’octets nécessaires pour stocker le type ou l’objet.
Exemple
int taille1,N, taille2;
unsigned short x;
N = sizeof(char);
taille1 = sizeof(x); Dans le cas 1 , taille vaudra 1.
taille2 = sizeof(unsigned short);
printf("%d\n",N); 1 Dans les deux cas 2 et 3 , taille vaudra 2.
printf("%d\n",taille1); 2
printf("%d\n",taille2); 3
5
Chapitre 2 Éléments du langage C
Les variables et les constantes
6
Chapitre 2 Éléments du langage C
Les variables et les constantes
• En langage C, le type char est un cas particulier du type entier : un caractère est un
entier de 8 bits. Les caractères alphanumériques s'écrivent entre ' ' .
7
Chapitre 2 Éléments du langage C
Les variables et les constantes
Nombres réels
• Les types réels ( « float » ou « double ») permettent de représenter les nombres réels.
• Le langage C distingue 3 types de réels:
BSM
Exposant sur 7 bits Mantisse sur 24 bits
8
Chapitre 2 Éléments du langage C
Les variables et les constantes
o Les constantes
• Une constante est une donnée dont la valeur ne varie pas lors de l'exécution du
programme.
• Le type de la constante étant déterminé par la façon dont la constante est écrite.
• Les constantes peuvent être de 4 types : entier, flottant (nombre réel), caractère,
énumération.
• Ces constantes vont être utilisées, par exemple, pour initialiser une variable.
• Une constante flottante est considérée par défaut de type double.
• Elle doit être déclarée sous forme :
9
Chapitre 2 Éléments du langage C
Les variables et les constantes
Constante entière
• Une constante entière est par défaut de type « int ».
• Si le nombre est trop grand pour « int », il obtient le type « long ».
• Elle peut être représentée de 3 manières suivant la base dans laquelle elle est écrite :
✓ décimale : par exemple, 0 et 256 sont des constantes entières décimales.
✓ octale : les constantes octales doivent commencer par un zéro.
✓ hexadécimale : les constantes hexadécimales doivent commencer par 0x ou 0X.
• On peut cependant spécifier explicitement le format d’une constante entière en la
suffixant par u ou U pour indiquer qu’elle est non signée, ou en la suffixant par l ou L
pour indiquer qu’elle est de type long.
Constante Type
123456789L long
Exemple 1234U unsigned int
123456789UL unsigned long int
10
Chapitre 2 Éléments du langage C
Les variables et les constantes
Constante réelle
• Une constante réelle est par défaut de type double.
• Une constante réelle est représentée par la notation classique par mantisse et
exposant.
• On peut cependant influer sur la représentation interne de la constante en lui
ajoutant un des suffixes f (indifféremment F) qui forcent la représentation de la
constante sous forme de float ou l (indifféremment L) qui forcent la représentation
sous forme d’un long double.
Constante Type
12.34 double
Exemple 12.34F float
12.34L long double
11
Chapitre 2 Éléments du langage C
Les variables et les constantes
Constante caractère
• Les constants caractères sont toujours indiqués entre apostrophes, par ex. 'A' et '#'.
• Quelques constants caractères, appelés séquences d’échappement, qui permettent
de contrôler l’affichage de texte :
'\\' : Barre de fraction inversée ; '\b' : Backspace (BS) ; '\t' : Tabulation horizontale (HT) ;
'\'': Apostrophe ; '\r' : Retour chariot (CR) ; '\''': Double apostrophe ;
'\n' : retour à la ligne ;
Exemple
printf ("Cours\\C\n") ; 1 1 Cours\C
printf ("\"Programmation\"\n") ; 2 2 "Programmation"
3 printf ("Welcome\rXX\n") ; 3 XXlcome
printf ("Il est magnifique de programmer " 4 4 Il est magnifique de programmer avec C,
"avec\tC,\n est un langage\"facile\".\n"); est un langage"facile".
5 printf ("Cours 12\b") ; 5 Cours 1
12
Chapitre 2 Éléments du langage C
Les déclarations
• Les booléens : il n’existe pas de type spécial pour les variables booléennes.
• Toute variable numérique peut être utilisée pour exprimer des opérations logiques:
✓ Faux -> valeur numérique égale à 0 typedef int BOOLEAN ;
✓ Vrai-> valeur numérique différente de 0
Exemple const BOOLEAN true =1;
const BOOLEAN false =0;
13
Chapitre 2 Éléments du langage C
Les déclarations
14
Chapitre 2 Éléments du langage C
Les opérateurs
15
Chapitre 2 Éléments du langage C
Les opérateurs
b >> 1 00001011
16
Chapitre 2 Éléments du langage C
Priorité des opérateurs
• L'ordre des priorités des opérateurs est important. Donc, lorsque on associe plusieurs
opérateurs, il faut que le navigateur sache dans quel ordre traitez-les.
• Voici donc dans l'ordre décroissant les priorités des opérateurs :
Priorité 1 (La plus forte) ( ) [ ] -> .
Priorité 2 ! ++ -- -(unaire) (type) *(indirection) & sizeof • Si une expression comprend une suite d’opérations
Priorité 3 * / % de même classe, l’évaluation se fait de gauche vers
Priorité 4 + -
Priorité 5 << >> la droite.
Priorité 6 < <= > >=
Priorité 7 == !=
Priorité 8 &
Exemple 10 + 20 * 3 / 6
Priorité 9 ~ = 10 + 60 / 6
Priorité 10 |
Priorité 11 &&
= 10 + 10
Priorité 12 || = 20
Priorité 13 ? :
Priorité 14 = += -= *= /= %= &= ~= |= <<= >>=
Priorité 15 ,
• Pour les opérateurs unaires ( ! , ++ , --, …), les opérateurs ? et : et pour les opérateurs
d’affectation (= , += , -= , *= , /= , %= , …) l’évaluation se fait de droite à gauche dans l’expression.
A *= B += 5
Exemple Soit A=3 et B=4 A *= 9
A =27
17
Chapitre 2 Éléments du langage C
Les commentaires
Méthode 1 Méthode 2
Exemple Exemple
/* Voila comment ajouter
// Voila comment ajouter
des commentaires à vos
// des commentaires à vos
programmes */
// programmes
18
Chapitre 2 Éléments du langage C
Incrémentation/Décrémentation
• Dans une opération d'affectation qui met en jeu un opérateur postfixe ou préfixe :
X= i++ (--i) → Affectation → Incrémentation (Décrémentation)
X= ++ i (--i) → Incrémentation (Décrémentation) → Affectation
19
Chapitre 2 Éléments du langage C
Incrémentation/Décrémentation
Exemple Exemple
Soient i=3 et j=5, compléter le tableau :
int i =3 ;
1 int n; 1 n = 4, i = 4 Instruction Equivalent Résultats
n=++i ; i=3 et j=5 i++; i=i+1; i=4
int i =3 ; i=3 et j=5 ++i; i=i+1; i=4
2 int n; 2 n=3,i=4 i=3 et j=5 i--; i=i-1; i=2
n=i++ ;
i=3 et j=5 --i; i=i-1; i=2
int i =3 ;
i=3 et j=5 i= ++j; j=j+1; i=j; j=6 et i=6
3 int n; 3 n=0,i=4
n = i++ - 3 ; i=3 et j=5 j= ++i + 5; i=i+1; j=i+5; i=4 et j=9
i=3 et j=5 j= i++ + 5; j=i+5; i=i+1; j=8 et i=4
int i =3 ;
4 int n; 4 n=1,i=4
n = ++i - 3 ;
20
Chapitre 2 Éléments du langage C
Les fonctions mathématiques standards
#include <math.h>
/*La bibliothèque « math.h »
• Les arguments et les résultats de ces fonctions sont de type double.
Fonction C Description Exemple
exp(X) 𝑒𝐸
log(X) ln(X) (X>0)
float a, b, c, d;
log10(X) log10(X) X>0 a = fabs(-3.5);printf("a=%f\n", a); 1 a=3.500000
1
pow(X,Y) 𝑋𝑌
sqrt(X) X (X>0) b = floor(3.5);printf("b=%f\n", b); 2 2 b=3.000000
fabs(X) |X|
floor(X) Arrondir en moins c = floor(-3.5);printf("c=%f\n", c); 3 3 c=-4.000000
ceil(X) Arrondir en plus d=-1.500000
sin(X), cos(X), ….
d = fmod(-10.5, 3);printf("d=%f\n", d); 4 4
…
21
Chapitre 2 Éléments du langage C
Les conversions de type
• Le langage C permet de mélanger des données de différents types dans une expression.
• Les données doivent donc être converties dans un même type.
• On distingue deux types de conversions : implicite ou explicite.
Conversions automatiques (implicite)
• Cette conversion est effectuée automatiquement sans aucune intervention du
programmeur.
• Ces manipulations implicites convertissent des types plus ‘petits’ en des types
plus ‘larges’.
→ De cette façon, on ne perd pas en précision.
22
Chapitre 2 Éléments du langage C
Les conversions de type
• Pour une affectation, la valeur qui est affectée est convertie au type de la variable qui va
la contenir.
→ Dans ce cas, on peut donc avoir une perte de précision.
• Par exemple : la valeur réelle 10.5 devient 10 si on la place dans une variable entière.
Exemple Exemple
#include<stdio.h> #include<stdio.h>
int main(void) int main(void)
{float a = 2.1, b = -2.1; { int X;
int x; float A = 12.48;
1 x=2 3 X=3
x = a; char B = 4;
printf("x=%d\n", x); 1 2 x=-2 X = A / B;
x = b; printf("X=%d", X); 3
printf("x=%d\n", x); 2 return 0;
return 0; } }
23
Chapitre 2 Éléments du langage C
Les conversions de type
(type) expression
/*Syntaxe de l’opérateur de transtypage (cast).
Exemple
int x = 10, y = 3;
float r1, r2; 1 r1=3.000000
r1 = x / y, printf("r1=%f\n", r1); 1
r2 = x / (float)y, printf("r2=%f\n", r2); 2 2 r2=3.333333
24
Chapitre 2 Éléments du langage C
Les conversions de type
Exemple
#include <stdio.h>
void main()
{int i = 67, j;
char d, e; 1 Conversion float -> int: 89.669998 -> 89
float r = 89.67, s; Conversion int -> float: 67 -> 67.000000
2
j = (int)r;
s = (float)i; 3 Conversion int -> char: 67 -> C
d = (char)i; 4 Conversion float -> char: 89.669998 -> 89
e = (char)r;
1 printf("Conversion float -> int: %f -> %d\n", r, j);
2 printf("Conversion int -> float: %d -> %f\n", i, s);
printf("Conversion int -> char: %d -> %c\n", i, d); 3
printf("Conversion float -> char: %f -> %d\n", r, e); 4
}
25
Chapitre 2 Éléments du langage C
Les fonctions mathématiques standards
Exercice
Ecrire un programme qui permet de calculer et d’afficher l’aire d’un cercle dont le rayon est
égale à 4.
#include <stdio.h>
#include <math.h>
int main()
{
int Rayon = 4;
float surface ;
const float Pi = 3.14;
surface = pow(Rayon, 2) * Pi;
printf("L'aire de cercle est : %f", surface);
return 0;
}
26