0% ont trouvé ce document utile (0 vote)
27 vues35 pages

Variables Et Opérateurs

Le document présente une introduction à la programmation en C, en se concentrant sur les variables, les identificateurs, et les types de données. Il explique les types de base, les opérateurs, ainsi que les fonctions d'entrée/sortie comme printf et scanf. Des exemples pratiques illustrent l'utilisation des opérateurs et des déclarations de variables.

Transféré par

20246
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
27 vues35 pages

Variables Et Opérateurs

Le document présente une introduction à la programmation en C, en se concentrant sur les variables, les identificateurs, et les types de données. Il explique les types de base, les opérateurs, ainsi que les fonctions d'entrée/sortie comme printf et scanf. Des exemples pratiques illustrent l'utilisation des opérateurs et des déclarations de variables.

Transféré par

20246
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

PROGRMMATION EN C

Présenté par

Dr. Mohamed S. Esseissah


Département de Mathématiques-Informatique
Faculté des Sciences et Techniques
Université de Nouackott Al-Aasriya

25 October, 2021

1
Les variables
• Une variable correspond à une portion de mémoire
• Pour pouvoir utiliser une variable en C, il faut, en premier lieu, la déclarer:
Déclaration d’une variable: lui donner un nom et un type
Syntaxe: Les identificateurs servent à désigner
type nom; les différents « objets » manipulés par
En informatique, il s'appelle le programme : variables, fonctions,
un identificateur etc. (règles d'écriture)

Le types d'une variables désigne les caractéristiques du stockage:


- Le domaine des valeurs admissibles
- Le nombre d'octets qui est réservé pour une variable
Exemple:
2
int a, b, c; /* On peut déclarer plusieurs variables d'un même type */
Identificateur
• Le rôle d’un identificateur est de donner un nom à une variable ou à une fonction
du programme.
• Un identificateur est une suite de caractères parmi :
 Les lettres (minuscules ou majuscules, mais non accentuées),
 Les chiffres,
 Le “blanc souligné” ( _ ), aussi appelé sous-tiret.
• Par ailleurs, quelque contrainte doivent être respectées:
 Le premier caractère d’un identificateur ne peut pas être un chiffre.
 Un identificateur ne peux pas comporter plus de 32 caractères.
 Il est déconseillé d'utiliser le symbole "_" comme premier caractère pour un
identificateur, car il est souvent employé pour définir les variables globales
de l'environnement C.
3
 Aucun espace ne peut figure dans identificateur.
Identificateur
• Les majuscules et minuscules sont différenciées dans les identificateurs.
• int valeur;
Ils sont deux variables différent.
• int Valeur;
• Voici quelques nom corrects:
A A1 n n_1 nombre_1 racine_carree
taxe_a_la_valeur_ajoutee

• Voici quelques nom incorrects:


1b (il commence par un chiffre)
nombre 1 (il comporte un esapce)
Racine_carrée (il comporte un caractère accentué)
4
nombre-1 (il comporte un sign - qui n'est ni lettre ni un chiffre)
Types de base
• Le C est un langage typé. Cela signifie en particulier que toute variable sont
de types précis.
• En informatique, l'unité de mesure de base est le bit. Chaque bit est un 0 ou
un 1.
• On regroupe 8 bit pour former ce que l'on appelle byte= octet = 8 bit
• Le terme octet est couramment utilisé comme unité de mesure en
informatique.
• Le langage C fournit quatre types de base
• Le type int: 2 ou 4 octets
• Le type float: 4 octets (float: approximation de nombres réels)
• Le type double: 8 octets
• Le type char: 1 octet 5
Les types entiers
• Int désigne un objet de type entier.
• On a trois tailles types d’entiers:
 short int (qu’on peut abréger en short )
 long int (qu’on peut abréger en int)
 long long int (qu’on peut abréger en long long)
Définition Valeur min Valeur max Nombre d'octets
short -32768 32767 2
int -2147483648 2147483647 4
long long −𝟐𝟔𝟑 𝟐𝟔𝟑 -1 8

• Si l'on ajoute le préfixe unsigned (non signé), les domaines sont déplacés ainsi:
Définition Valeur min Valeur max Nombre d'octets
unsigned short 0 65535 2
unsigned int 0 4294967295 4
unsigned long long 0 𝟐𝟔𝟒 8
6
Les types flottants (Nombres réels à virgule flottante)
• Le type flottant permet de représenter, de manière approchée, une partie
des nombres réels.
• Le C prévoit trois types de flottants correspondant à des tailles différentes
 float
 double
 long double

Définition Précision Mantisse* Valeur min Valeur max Nombre


d'octets
float simple 6 3.4 𝟏𝟎−𝟑𝟖 3.4 𝟏𝟎𝟑𝟖 4
double double 15 1.7 𝟏𝟎−𝟑𝟎𝟖 1.7 𝟏𝟎𝟑𝟎𝟖 8
long double avancée 19 3.4 𝟏𝟎−𝟒𝟗𝟑𝟐 3.4 𝟏𝟎𝟒𝟗𝟑𝟐 10

* La mantisse est le nombre de chiffres significatifs après la virgule.

7
Le type caractère
• char désigne un objet de type caractère.
• Un char peut contenir n’importe quel élément des codes ASCII.
• On regroupe 8 bit pour former ce que l'on appelle byte= octet = 8 bit.

signed char [−𝟐𝟕 , 𝟐𝟕 [

unsigned char [0; 𝟐𝟖 [

Codes ASCII des


caractères imprimables
8
Types de base
• Déclaration de variables et initialisation
Déclaration
char ch;
int x, y;
float valeur;

Initialisation: la première valeur qu’on donne à la variable au moment


de la déclaration
char ch = ‘A’;
int x = 0;
float y = 5.3;
Deux variables peuvent être déclarer et initialiser sur la même ligne
int x = 0, y = 5;

9
Exercice

• Ecrivez un programme qui saisit deux entiers et qui affiche


successivement la somme, la différence, le produit de ce deux
entiers.

10
Lecture et écriture en langage C
• L’instruction de l’ écriture permet de passer des données à notre
programme à partir du clavier.

• L’instruction de lecture (affichage) permet à un programme


d'afficher des données sur l'écran.

• La bibliothèque standard <stdio> contient un ensemble de


fonctions permettant la communication de l’ordinateur avec le
clavier et l'écran.

11
Lecture (affichage) des données
La fonction printf
• printf permet de transférer du texte, des valeurs de variables ou des résultats
d’expressions vers l’écran.
• printf est une fonction formatée, elle exige l’utilisation de formats de
sortie.
Syntaxe : printf(<format>, p1, p2, …, pn);
<format> - chaîne de caractères contenant:
- texte
- séquence d’échappement
- spécificateurs de format (% suivi d’un caractère de conversion): permet à la
fonction printf de connaître le type de la variable à inclure (p1, p2, …, pn).
12
L’écriture (affichage) des données

Spécificateurs de format
%d – int %u – unsigned int
%ld – long long %lu – unsigned long
%f – double ou float (notation décimale, 6 chiffres après .)
ex = 1.234500
%c – char %s – char[ ]

13
L’écriture (affichage) des données
Exemple 1:
printf("Bonjour\n");

int res = 124;


double x = 1274.11;
float y = 12.45;

printf("Resultats : %d\n", res);

printf("x = %f\t y = %f\n", x, y);

14
L’écriture (affichage) des données
Exemple 2:
printf("Bonjour\n");
int x=100 , y= 100;
printf("La valeur de y est %d\n", y);
printf("La somme = %d\n", x+y);
float moyenne=12.3333 ;
printf("La moyenne est %.2f\n", moyenne);
char c=‘A’ ;
printf("Le caractère %c a le code %d", c, c);

15
Lecture des données
La fonction scanf
• scanf permet de lire à partir du clavier des données, au moment de l’
exécution.
• scanf est une fonction formatée, elle exige l’utilisation de formats de
l’entrée.
Syntaxe : scanf(<format>, &p1, &p2, …, &pn);
<format> - chaîne de caractères contenant:
- texte : caractère à afficher à tels quels
- spécificateurs de format (% suivi d’un caractère de conversion): permet à la
fonction scanf de connaître le type de la variable.
- L'identificateur de la variable est précédé du symbole & désignant l'adresse
16
de la variable
Lecture des données

La fonction scanf (suite)


• La chaîne de format détermine comment les données reçues
doivent être interprétées.
• Les données reçues correctement sont mémorisées
successivement aux adresses indiquées par &p1, &p2, …, &pn

17
Lecture d’une valeur du type caractère
Exemple 3:
int x;
scanf("%d",&x);
Printf("x = %d", x );

• Si l'utilisateur saisie un nombre entier tout va bien, x devient ce nombre.


• Si l'utilisateur saisie des caractères, sa saisie est ignorée.
18
Lecture des données
Exemple 4:
int x, y;
float z;
scanf("%d%d%f", &x, &y, &z);
printf(“x = %d, y= %d, z=%f“, x,y,z);

19
Lecture d’une valeur du type caractère
Exemple 5:
char ch;
scanf("%c",& ch);
printf("caractère est %c", ch);

20
Expressions et Opérateurs
Quelques définitions
• Un opérateur: Un opérateur correspond à une opération permettant de
calculer un résultat à partir des constants ou des variable.

Par exemple, l'opérateur d'addition permet de calculer la somme de deux


valeurs numériques.

• Un opérande : correspond à une quantité acceptée par un opérateur.

Par exemple, l'opérateur d'addition + accepte deux opérandes, dans


l'exemple 4 + 8, les quantités 4 et 8 correspondent à deux opérandes de
l'opérateur +

• Une expression: correspond à une valeur littérale ou à un calcul de valeur.


Dans une expression, plusieurs opérateurs (et opérandes) peuvent être mis en
relation pour effectuer un calcul complexe.
21
• Par exemple : 1,4 , (2 + 3) * 5.
Les operateurs
L'opérateur de l’affectation =
Syntaxe : nom_de_variable = expression;
En C, l'affectation est un opérateur qui permet d’affecter la valeur d’une
expression à une variable.
Exemple:
n_carre = n * n;
l'exécution de l'affectation se fait en deux étape:

1. La partie qui est à droite de l’opérateur de l’affectation (expression) va


être évalué
2. On stock le résultat de cette évaluation dans la variable qui est à gauche
de l’opérateur de l’affectation.
n_caree n

5 * 5 = 25
25 5
22
L’affectation
Exemple 1: a b

int a = 1; 1 24
int b = 24;
a b

a = b;
24 5
b = 5;

Exemple 2:
a b
int a = 1;
int b = 24; 1 24

a b
b = a;
b= 5; 1 5 23
Les operateurs
• Un opérateur correspond à une opération permettant de calculer un résultat à
partir des constants ou des variable.
• Par exemple, l'opérateur d'addition permet de calculer la somme de deux
valeurs numériques.
Les opérateurs arithmétiques
+ addition
- soustraction
* multiplication
/ division
% reste de la division (modulo)
Faites bien attention:
• Si les deux valeurs sont de type entier, / produira une division entière
• Par contre, il délivrera une valeur flottante dès que l’un des valeurs est
un flottant.
Exemple:
int x= 5, y=2; float z = 5/2; (le résultat z =2) 24
float a=5; int b=2; float c = a/b; (le résultat c =2.5)
Les operateurs
Les opérateurs de comparaison
> strictement supérieur
>= supérieur ou égal
< strictement inférieur
<= inférieur ou égal
== égal
!= inégal
La valeur retournée par ces opérateurs est un entier qui vaut 1 si la
condition est vraie et 0 sinon.
Attention: à ne pas confondre l’opérateur de test d’égalité == avec
l’opérateur = qui donne une valeur à une variable:
Exemple:
int a = 0; int b = 1;
if (a == b)
printf("\n a et b sont egaux \n");
else 25

printf("\n a et b sont differentes \n");


Les opérateurs
Opérateurs d’affectation étendues (élargies)
Langage C propose des combinaisons puissantes d’opérateurs, dans le cas
où la variable à gauche du signe = se retrouve à droite.
Exemple:
1- a = a + 3; il peut s'écrire comme suit
a += 3;
2- b = b - 2;  b -= 2;
3- c = c * 5;  c *= 5;
4- d = d / 7;  d /= 7;
5- f = f % 4;  f %= 4;
D’une manière générale,
variable = variable opérateur expression;
peut être réécrit comme
variable opérateur= expression ;
26
Les operateurs
Opérateurs d’incrémentation et de décrémentation
• Opérateur d'incrémentation (++ ) a = a +1;
- peut être utilisé à la place de a +=1;
• Opérateur de décrémentation (--)
- peut être utilisé à la place de a -= 1;
• Pré-incrémentation (++a)
- Lorsque l'opérateur est utilisé avant la variable (++a)
- b = a++; passe d'abord la valeur de a à b, puis incrémente a.
• Post-incrémentation (a++)
- Lorsque l'opérateur est utilisé après la variable (a++)
- b = ++a; incrémente d'abord a puis passe la valeur de a incrémentée à b.
Exemple 1:
a = 5;
b = a++; Résultat: b = 5 et a = 6
Exemple 2:
a = 5; 27

b = ++a; Résultat: b = 6 et a = 6
Les operateurs

Opérateur d’adressage
Il est utilisé pour retourner l'adresse d'une variable.
Syntaxe:
&variable;

Exemple:
int a = 9;
int x = &a;

La variable x contient l’adresse-mémoire de la variable a.

28
Les operateurs
Les opérateurs logiques booléens
Ils sont basées sur les deux valeur booléenne true et false.
Attention: il n’y a pas de type booléen (true et false) en C. Le language C
comprend que 1 correspond à true et 0 correspond à false.

&& et logique && true false


en C
&& 1 0
|| ou logique true true false 1 1 0
false false false
! négation logique 0 0 0

|| true false || 1 0 !true = false !1 = 0


en C en C
true true true 1 1 1
false true false ! false = true !0=1
0 1 0

int x = 1, y=8;
if ((x >= 2) && (y <= 9) )
printf(“Oui”);
else 29

printf(“Non”);
Les operateurs
L'opérateur de conversion de type
() cast (changement de type)

L’opérateur de conversion de type, appelé cast, permet de changer explici-


tement le type d’une variable.

Exemple:
(int) c;
(int)2.35 // donne 2
(float) 2 // donne 2.0

int x = 3, y = 2;
float z = (float)x/y;
printf("%f \n", z); // retourne la valeur 1.5
30
Les operateurs
On peut classer les opérateurs selon le nombre d'opérandes:

En C, nous pouvons distinguer :

les opérateurs unaires : ils acceptent un seul opérande (ex: !1, 3++)

les opérateurs binaires : ils acceptent deux opérandes (ex: 5 * 8)

l'opérateur ternaire : il n'y en a qu'un seul et il accepte trois opérandes


(ex: condition ? trueValue : falseValue )

31
Les operateurs
Règles de priorité des opérateurs
Afin d'évaluer une expression composée de plusieurs opérateurs
Classes de priorités opérateurs
Priorité 1 (la plus élevée) () [ ]
Priorité 2 !, ++, -- , (type)
Priorité 3 *, /, %
Priorité 4 +, -
Priorité 5 <, <=, >, >=
Priorité 6 ==, !=
Priorité 7 &&
Priorité 8 ||
Priorité 9 ?:
Priorité 10 =, +=, - =, *=, /=, %=
Priorité 11 (la plus basse) ,

Dans chaque classe, les opérateurs ont la même priorité.

32
Les operateurs
Règles de priorité des opérateurs …
• Si on a une suite d'opérateurs binaires de la même classe, l'évaluation se
fait en passant de la gauche vers la droite.
• Pour les opérateurs unaires (!, ++, --) et pour les opérateurs d'affectation,
l'évaluation se fait de la droite vers la gauche
Exemple 1:
• S = 10 + 20 - 30 + 15 / 3 *5; évalué comme suit:
15/3 5, 5 * 5 25, 10 + 20 30, 30 – 30 0, 0 +25 25
• Pour a = 2, b = 6;
a *= b += 5;
b += 5 b =11, a *= 11 a = 22
• Pour a = 1 et b = 6
!-- a == !++b
33
!-- a !0 1 , !++b !7 0 , 1 == 0 0
Exercices
• Exercice 1: Ecrire un programme qui affiche la taille de chaque type
d’entier. (short, unsigned short, int, unsigned int, long long, unsigned
long long)

• Exercice 2: Donner les résultats qui s'affichent à l'écran en utilisant le


programme suivant :
int a = 20 , b = 6, c = 11;
int result= 5 * a + 6 *(b / 2 + 4);
printf(" result = %d\n", result );
result= a == (b=20);
printf(" result = %d\n", result );
result *=a +=b -=c;
34
printf(" result = %d\n", result );
Exercices
result = b-- * !a++ + --c;
printf(" result = %d\n", result );

• Exercice 3: Donner les résultats qui s'affichent à l'écran en utilisant le


programme suivant :
int a = 2 , b = 12, c = 7;
a +=a * 2 / 2 > 3;
printf("a = %d\n", a);
b *= ++a || c % 2 != 2;
printf(“b = %d\n", b);
int result = !(b < a && a < c || !c!= 0);
printf(" result = %d\n", result ); 35

Vous aimerez peut-être aussi