0% ont trouvé ce document utile (0 vote)
8 vues7 pages

Opérateurs et Priorités en C

Ce document présente les opérateurs et priorités des opérations en programmation, notamment en langage C. Il couvre les affectations, opérations arithmétiques, relationnelles, logiques, ainsi que les fonctions d'entrée/sortie comme printf et scanf. Enfin, il aborde des concepts tels que le transtypage et l'ordre de priorité des opérateurs.

Transféré par

Papa Sow
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)
8 vues7 pages

Opérateurs et Priorités en C

Ce document présente les opérateurs et priorités des opérations en programmation, notamment en langage C. Il couvre les affectations, opérations arithmétiques, relationnelles, logiques, ainsi que les fonctions d'entrée/sortie comme printf et scanf. Enfin, il aborde des concepts tels que le transtypage et l'ordre de priorité des opérateurs.

Transféré par

Papa Sow
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

Programmation

Séquence 3 : Objectif 13 : Associer des opérateurs et priorités aux opérations

Programmation
Dr Guy MBATCHOU
Séquence 3 : Objectif 13 : Associer des opérateurs et priorités aux opérations

Dr Guy MBATCHOU 1
Programmation
Séquence 3 : Objectif 13 : Associer des opérateurs et priorités aux opérations

Objectif 13 : Associer des opérateurs et priorités aux opérations

Les opérations et leurs opérateurs

L’affectation
Elle se fait avec le signe =.

Une affectation peut elle-même être utilisée comme un opérande dans une autre opération, la valeur de cette
affectation est alors le résultat du calcul du membre de droite. Ainsi on pourra par exemple écrire a=(b=c+1)+2; dont
l'action est de calculer c+1, d'affecter le résultat à b, d'y ajouter 2 puis d'affecter le nouveau résultat à a. Il est à noter
que ce type d'écriture, sauf cas particuliers, rend la lecture du programme plus difficile et doit donc être si possible
évité.

Lorsque vous affectez à une variable une valeur ou une expression de type différent, cette dernière est
automatiquement convertie (si possible !) en type de la variable.

Par exemple, si vous affectez à une variable de type float une valeur de type int alors cette dernière sera convertie en
float.

Les opérations arithmétiques


Les opérations arithmétiques restent classiques à savoir : l’addition (+), la soustraction (-), la multiplication (*), la
division (/), le modulo (%), etc.

Par contre l’addition et la soustraction peuvent être utilisées sous forme unaire.

-a  0-a ; +b  0+b ;

Les opérations relationnelles ou de comparaison


Ce sont l’égalité (== double signes d’égalité), la supériorité (> ou >=), l’infériorité (< ou <=) et l’inégalité ( !=)

Les opérations logiques


OU  ||

ET  &&

NON  !

Les opérations d’affectation avec calcul


Le langage C contient des opérateurs d’affectation qui permettent de faire des calculs avant l’affectation de la valeur.
Ce type d’opérateur est composé d’un opérateur arithmétique et de l’affectation : *=, /=, %=, +=, -=, <<=, >>=, &=, |=,
^=.

Exemples :

A += 5 est équivalent à A = A+5

B *= C/2 est équivalent à B = B * (C/2)

Les opérations unitaires d’’incrémentation et de décrémentation


Il s’agit des opérateurs unaires qui permettent d’incrémenter (++) ou décrémenter (--) d’une unité la variable.

++a ou a++ a= a + 1

Dr Guy MBATCHOU 2
Programmation
Séquence 3 : Objectif 13 : Associer des opérateurs et priorités aux opérations

--b ou b--  b = b – 1

Lorsque l’opérateur (++ ou --) se trouve à gauche de la variable on parle de pré-incrémentation ou pré-décrémentation
et lorsqu’il se trouve à droite on parle de post-incrémentation ou post-décrémentation.

Dans la pré-incrémentation, on incrémente (ajoute) d’une unité la valeur de la variable avant de l’utiliser alors que
dans la post-décrémentation, on utilise la valeur contenue dans la variable avant de l’incrémenter d’une unité. Il en est
de même pour la pré-décrémentation et la post-décrémentation mais on décrémente (diminue) d’une unité.

Exemple 1

int A, B, C, D ;
{
B=1;
D=0;
A = B++ ; // A vaudra 1 et B vaudra 2
C = ++D ; // C vaudra 1 et D vaudra 1
}
Exemple 2

int a = 1,
b = 2;

int c = ++a + b++; //A = 2; B = 3; C = 4


int d = 4;
d+= c-- + --c; //A = 2; B = 3; C = 2; D = 10
a-= 2 * b++ - (a * c++) + (d++ / a++); //A = -4; B = 4; C = 3; D = 11

Le transtypage : cast
Lors de calculs d'expressions numériques, les types flottants sont dits absorbants car la présence d'un unique nombre
flottant dans une expression entraîne une évaluation complète sous forme de flottant.

Il est fréquent qu'une variable ait besoin d'être utilisée avec un autre type que son type naturel. Cela arrive par
exemple si l'on veut calculer le quotient de deux entiers et stocker le résultat dans un réel.

Ce transtypage s'obtient en faisant précéder l'expression que l'on souhaite utiliser avec un autre type par ce type entre
parenthèses.

(type) expression
Exemple :

int a, b ;
float c ;
b=9 ;
c=2 ;
c = ((float) a) / b ; /*Ici la valeur de a est transtypé en float et le résulat de la division sera un float. Ainsi C
vaudra 4.5*/
/*Sans le transtypage le résultat de la division aurait donné un entier*/
int d=a/b ; //d vaudra 4
L’ordre de priorité des opérateurs
Opérateurs Fonction Associativité Priorité
() appel de fonction maximale

Dr Guy MBATCHOU 3
Programmation
Séquence 3 : Objectif 13 : Associer des opérateurs et priorités aux opérations

Opérateurs Fonction Associativité Priorité


[] élément de tableau
. champ de structure ou d'union
-> champ désigné par pointeur
! négation booléenne
~ complémentation binaire
- Opposé
++ Incrémentation
-- Décrémentation
& Adresse
* déréférenciation de pointeur
(type) Transtypage
* Multiplication
/ Division
% reste euclidien
+ Addition
- Soustraction
<< décalage à gauche
>> décalage à droite
< strictement inférieur
<= inférieur ou égal
> strictement supérieur
>= supérieur ou égal
== Egal
!= Différent
& ET bit à bit
^ OU eXclusif (XOR) bit à bit
| OU bit à bit
&& ET booléen
|| OU booléen
?: Conditionnelle
= Affectation
*=
/= affectations avec calcul
%=
+=
-= affectations avec calcul
<<=
>>=
&=
affectations avec calcul
|=
^=

Dr Guy MBATCHOU 4
Programmation
Séquence 3 : Objectif 13 : Associer des opérateurs et priorités aux opérations

Opérateurs Fonction Associativité Priorité


, séquence d'expressions minimale

Les fonctions d’Entrée / Sortie


Afin de permettre aux programmes d'écrire sur leurs flux d'entrée / sortie standards, la bibliothèque C définit plusieurs
fonctions extrêmement utiles. Les deux principales fonctions sont sans doute les fonctions printf et scanf. La fonction
printf (« print formatted » en anglais) permet d'afficher des données à l'écran, et scanf (« scan formatted ») permet de
les lire à partir du clavier.

La fonction printf s'emploie comme suit : printf(format [, valeur [, valeur [...]]])

On peut passer autant de valeurs que l'on veut, pour peu qu'elles soient toutes référencées dans le format. Elle
renvoie le nombre de caractères affichés.

Le format peut contenir du texte, mais surtout elle doit contenir autant de formateurs que de variables à afficher. Si ce
n'est pas le cas, le programme plantera ! Les formateurs sont placés dans le texte là où les valeurs des variables
doivent être affichées.

Un formateur commence donc toujours par le caractère %. Pour afficher ce caractère sans faire un formateur, il faut le
dédoubler (%%).

Type de donnée à afficher Caractère de formatage


Entier court signé hd

Entier signé d

Entier long signé ld

Entier court non signé hu


Nombre
Entier non signé u
entier
Entier long non signé lu

Entier octal non signé o

x (avec les caractères 'a' à 'f') ou


Entier hexadécimal non signé
X (avec les caractères 'A' à 'F')

Réel simple précision (float) f

Nombre Réel double précision (double) lf


réel Réel simple précision en notation exponentielle e ou E

Réel double précision en notation exponentielle g ou G

Caractère c
Caractère
Chaîne de caractères s

Dr Guy MBATCHOU 5
Programmation
Séquence 3 : Objectif 13 : Associer des opérateurs et priorités aux opérations

Exemple :

#include <stdio.h> /* Elle est nécessaire pour utiliser la fonction printf*/


int main(void)
{
int i = 2;
float k = 2.19 ;
printf("Voici la valeur de i : %d.\n", i);
printf("Voici la valeur de k : %f.\n", k);
return 0;
}

La fonction scanf permet de faire une ou plusieurs entrées de données (lecture des données). Comme la fonction
printf, elle attend un format en premier paramètre. Il faut ensuite passer les variables devant contenir les entrées dans
les paramètres qui suivent.

Sa syntaxe est la suivante : scanf(format, &variable [, &variable [...]]);

Elle renvoie le nombre de variables lues.

Ne cherchez pas à comprendre pour l'instant la signification du symbole & se trouvant devant chacune des variables.
Sachez seulement que s'il est oublié, le programme plantera !

Le format peut contenir des chaînes de caractères. Toutefois, si elle contient autre chose que des formateurs, le texte
saisi par l'utilisateur devra correspondre impérativement avec les chaînes de caractères indiquées dans le format. scanf
cherchera à reconnaître ces chaînes, et arrêtera l'analyse à la première erreur.

#include <stdio.h> /* Autorise l'emploi de printf et de scanf. */

float x, y;

int main(void)
{
printf("Calcul de moyenne\n"); /* Affiche le titre. */
printf("Entrez le premier nombre : ");
scanf("%f", &x); /* Lecture du premier nombre. */
printf("\nEntrez le deuxième nombre : ");
scanf("%f", &y); /* Lecture du deuxième nombre. */
printf("\nLa valeur moyenne de %f et de %f est %f.\n",x, y, (x+y)/2);
return 0;
}
Permutation
Ecrire un programme qui lie, permute et affiche les valeurs de trois variables A, B, C de type entier qui sont entrées au
clavier.

Division entière
Ecrire un programme qui affiche le quotient et le reste de la division entière de deux nombres entiers entrés au clavier
ainsi que le quotient rationnel de ces nombres.

Instruction et bloc d’instructions


En langage C, une instruction se termine par un point-virgule ( ;).

Un bloc d’instructions commence par le caractère { et se termine par le caractère }.

Dr Guy MBATCHOU 6
Programmation
Séquence 3 : Objectif 13 : Associer des opérateurs et priorités aux opérations

Seuil de validation : 80% Titre : Test de connaissance Objectifs visés : O13(50%)


Seuil de validation : 60% - Titre : Calcul de l’hypoténuse d’un triangle Objectifs visés : O13(50%)

Dr Guy MBATCHOU 7

Vous aimerez peut-être aussi