Vous êtes sur la page 1sur 26

1 GII / GT

Algorithmique & programmation


en langage C

É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

variable_type variable_name = contenu ;


• Les variables contiennent des valeurs qui sont utilisées pendant l’exécution du
programme
• Une constante est une valeur qui apparaît littéralement dans le code source d'un
programme.
• Le type de la constante étant déterminée par la façon dont la constante est écrite

2
Chapitre 2 Éléments du langage C
Les variables et les constantes

o Les identificateurs

Un identificateur est une suite de lettre et de


chiffres de longueur quelconque et L’ensemble des symboles
commençant obligatoirement par une lettre. utilisables est donc :
{0,1,2,…,9,A,B,…,Z,_,a,b,…,z}
Exemple
int age = 21;

Le symbole '_' est aussi considéré


comme une lettre.
C distingue les majuscules des minuscules

Les lettres accentuées ne sont pas acceptées.

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

La fonction « sizeof » a pour syntaxe :

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

Il est possible de déclarer des entiers en utilisant la base octale ou hexadécimale :


✓ En hexadécimale les nombres s'écrivent précédés de 0x.
✓ En base octale, les nombres commencent par 0 (zéro).
Exemple Exemple
4
0100 binaire() = ……………………(décimal)
int i; i = 123; 1 4
……………………(octal)
2 i = 0x7b; 4
……………………(hexadécimal)
i = 0173; 3
10
1010 binaire() = ……………………(décimal)
1 Décimal 12
……………………(octal)
A
……………………(hexadécimal)
2 Hexadécimal
111001
57 (décimal) = …………………….(binaire)
3 Octal
71
…………………….(octal)
39
…………………….(hexadécimal)

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 ' ' .

• La norme de codage des caractères ASCII décrit une table de correspondance


permettant de coder des caractères (lettres, chiffres, symboles) sur un ordinateur.

✓ Le caractère 'a' a pour valeur 97 (son code ASCII).


Exemple
✓ Le caractère 'A' a pour valeur 65 (son code ASCII).

Code ASCII Nom


77 M
Exemple 103 g minuscule
48 0
59 ; (point virgule)

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:

• Un réel est composé d'un signe, d'une mantisse et d'un exposant.


• Un flottant est représenté par une suite de bits dont le bit de poids fort correspond au
signe du nombre.

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 :

const Type Identificateur = Valeur ;


/*Syntaxe de déclaration d’une constante

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

• La déclaration des variables simples :

<type> <var_1> , <var_2>, ….,<var_> ;


/*Syntaxe de déclaration des variables

• On peut définir de nouveaux types à l’aide de la fonction « typedef »


1
/*Définir un type synonyme appelé entier ayant les
typedef int entier; 1 mêmes caractéristiques que le type prédéfini « int »*/
Exemple typedef char ligne [80]; /*Donner un nom aux tableaux d’une taille particulière
2
2
(tableaux de 80 char) */

• 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

• Le langage C autorise 2 méthodes pour définir les constantes :


1ère méthode: 2ème méthode:
Déclaration d'une variable, dont la valeur Déclaration d'une variable à l'aide d'un
sera constante pour tout le programme. #define
Exemple Exemple
void main() #define PI = 3.14159
{ #define false 0
const float PI = 3.14159; #define true 1
float perimetre, rayon = 8.7; void main()
perimetre = 2 * rayon * PI; {
…. float perimetre, rayon = 8.7;
} perimetre = 2 * rayon * PI;
....
}

14
Chapitre 2 Éléments du langage C
Les opérateurs

C utilise essentiellement différents types d'opérateurs :


Les opérateurs mathématiques Les opérateurs relationnels Les opérateurs logiques booléens
+ Addition < Inférieur à && ET logique
- Soustraction > Supérieur à || OU logique
* Produit == Egal
! NON logique
/ Division != Différent de
% Reste <= Inférieur ou égal
>= Supérieur ou égal

Opérateurs logiques sur les entiers bit à bit :


& ET bit à bit
| OU bit à bit
^ XOR bit à bit
~ Complément à 1
>> Décalage à droite
<< Décalage à gauche

15
Chapitre 2 Éléments du langage C
Les opérateurs

Exemple Expression Binaire


a&b 00000101
En base 2, soit a=01001101 et
a|b 01011111
b=00010111
a^b 01011010
^ 0 1
~a 10110010
0 0 1
Avec
1 1 0 b << 2 01011100

b >> 1 00001011

• Les opérateurs d’affectation composée sont : += -= *= /= %= &= ^= |= <<= >>=


• Le langage C autorise des écritures simplifiées lorsqu'une même variable est utilisée de
chaque côté du signe = d'une affectation.
1 Var_1 operateur = Var_2
• Pour tout operateur, les expressions 1 et 2 sont équivalents :
2 Var_1 = Var_1 operateur Var_2
Exemple a = a+b; ≡ a+= b; a = a & b; ≡ a&= b;
a = a-b; ≡ a-= b; a = a / b; ≡ a/= b;

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

Il existe deux méthodes de faire les commentaires :

Méthode 1 Méthode 2

Exemple Exemple
/* Voila comment ajouter
// Voila comment ajouter
des commentaires à vos
// des commentaires à vos
programmes */
// programmes

→ Permet de faire un commentaire → Permet de faire un commentaire


sur plusieurs lignes sur une seule ligne

18
Chapitre 2 Éléments du langage C
Incrémentation/Décrémentation

• L'opérateur ++ (--) effectue une pré-incrémentation (pré-décrémentation) ou une post-


incrémentation (post-décrémentation) selon son emplacement après ou avant la
variable.
→ Deux notations : la notation préfixe (++i, --i) et la notation postfixe (i++, i--) :
• Les opérateurs ++ et -- sont utilisés dans les cas suivants :
✓ Incrémenter/ décrémenter une variable dans une boucle par exemple.
→ Dans ce cas, il n’y a pas une différence entre la notation préfixe et la notation postfixe.
✓ Incrémenter/ décrémenter une variable et en même temps affecter sa valeur à
une autre variable.
→ Dans ce cas, nous devons choisir entre la notation préfixe et la notation postfixe

• 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

• La bibliothèque « math.h » contient des fonctions mathématiques pouvant être


appliquées aux types numériques.

#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.

✓ Les paramètres du type « char » et « short » sont transformés en « int »


Exemple
✓ Les paramètres du type « float » sont transformés en « double »

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

Conversions forcées (explicite)


• La conversion explicite est utilisée par le programmeur pour certains calculs particuliers,
dans lequel il veut contrôler manuellement la façon dont les types sont manipulés.
• L’opérateur de conversion de type, appelé « cast », permet de modifier explicitement le
type d’un objet. La syntaxe est la suivante :

(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

Vous aimerez peut-être aussi