Chapitre III : Opérateurs et Expressions PDF

Document Details

BuoyantFir

Uploaded by BuoyantFir

École nationale des sciences appliquées de Tétouan

Pr. HACHCHANE Imane

Tags

programming language C operators expressions computer science

Summary

This document provides a detailed explanation on operators and expressions in programming language C. Examples and explanations demonstrate various arithmetic, assignment, relational, logical, and conditional operators. It also covers type conversions and operator precedence.

Full Transcript

1 Pr. HACHCHANE Imane [email protected] Chapitre III : Opérateurs et Expressions Programmation en langage C 2024/2025 Chapitre II: Eléments de base du langage C 2 I. Opér...

1 Pr. HACHCHANE Imane [email protected] Chapitre III : Opérateurs et Expressions Programmation en langage C 2024/2025 Chapitre II: Eléments de base du langage C 2 I. Opérateurs arithmétiques II. Opérateur d’affectation III. Conversion (cast) du type d’une expression IV. L’affectation composée V. Opérateurs d’incrémentation et de décrémentation VI. Opérateurs relationnels VII. Opérateurs logiques VIII.Opérateurs conditionnels IX. Opérateur sizeof() X. Règles de priorité des opérateurs Programmation en langage C 2024/2025 Chapitre II: Eléments de base du langage C 3 Introduction Un opérateur est un symbole servant à construire une expression avec des variables et/ou des valeurs (ex: a + b) Une expression produit toujours un résultat (resultat = x + 2) Une expression peut être la combinaison de plusieurs opérateurs différents Le résultat d’une expression est évalué et déterminé en respectant les règles de priorité et d’associativité : Règle de priorité: certains opérateurs sont prioritaires à d’autres Règle d’associativité: ordre (sens) d’exécution des opérateurs qui ont le même niveau de priorité Programmation en langage C 2024/2025 Chapitre II: Eléments de base du langage C 4 Opérateurs arithmétiques Cinq opérateurs classiques: + addition - soustraction * multiplication / division % modulo (reste d’une division d’entiers) Remarques sur les opérations: si a et b sont du même type alors le résultat est du même type également. Sinon conversion au type le plus fort Exemples: calculer a/b int a = 5, b = 2; float a = 5, b = 2; float a = 5; int b = 2; 5/2 → 2 5/2 → 2.5 5/2 → 2.5 Programmation en langage C 2024/2025 Chapitre II: Eléments de base du langage C 5 Opérateurs arithmétiques Cette conversion automatique de type se fait selon une hiérarchie: int →long → float → double → long double Les types short et char sont systématiquement convertis en int Exemple général: int a, c; long b; float d ; soit l’expression : ((a*b) + c) / d; a sera convertie en long avant la multiplication a*b c sera convertie en long avant l’addition Le résultat de (a*b)+c sera converti en float Le résultat de l’expression ((a*b)+c)/d sera un float Programmation en langage C 2024/2025 Chapitre II: Eléments de base du langage C 6 Opérateurs d’affectation = L’affection est symbolisée par = et permet d’affecter une valeur ou une expression à une variable Syntaxe: variable = expression Exemples: x=2; y=x*i Il est possible d’enchainer plusieurs affectations: x=y=z= i+1; Le résultat de l’expression est toujours converti dans le type de variable (même si ce type est plus faible) Exemple: int x; float i = 1.5; x=i + 1; Programmation en langage C 2024/2025 Chapitre II: Eléments de base du langage C 7 Opérateurs d’affectation = L’affection est symbolisée par = et permet d’affecter une valeur ou une expression à une variable Syntaxe: variable = expression Exemples: x=2; y=x*i Il est possible d’enchainer plusieurs affectations: x=y=z= i+1; Le résultat de l’expression est toujours converti dans le type de variable (même si ce type est plus faible) Exemple: int x; float i = 1.5; x=i + 1; → la valeur de x est 2 Programmation en langage C 2024/2025 Chapitre II: Eléments de base du langage C 8 L’affectation composée Il s’agit de combiner l’affectation = avec d’autres opérateurs Syntaxe: expression1 op= expression2 Combinaison avec les opérateurs arithmétiques: += -= *= /= %= Exemples: a+=b équivalent à a = a+b a-=b équivalent à a = a-b x*=i équivalent à x=x*i x%=2 équivalent à x = x%2 Programmation en langage C 2024/2025 Chapitre II: Eléments de base du langage C 9 Incrémentation / décrémentation L’incrémentation: permet d’ajouter 1 au contenu d’une variable. Symbole : ++ (i++ équivalent à i+1) La décrémentation: permet de soustraire 1. Symbole: -- (i-- équivalent à i -1) Les symboles d’incrémentation et de décrémentation peuvent s’utiliser en suffixe (i++ , i--) ou préfixe (++i , --i) Post-incrémentation en suffixe (i++, i--): la valeur est affectée avant d’être incrémentée Pré-incrémentation en préfixe (++i, --i): la valeur est incrémentée et ensuite affectée Exemple: int a = 5 , b, c; b =++a ; → a vaut 6 et b vaut 6 c = b++; → c vaut 6 et b vaut 7 Programmation en langage C 2024/2025 Chapitre II: Eléments de base du langage C 10 Opérateurs relationnels Il s’agit d’opérateurs de comparaison: < : inférieur à : supérieur à >= : supérieur ou égal à == : égal à != : différent de Syntaxe: expression1 op expression2 La valeur rendue par l’opération de comparaison est : 0 ou 1 1 si la condition est vrai 0 si la condition est fausse Exemples: int a = 5, b = 3; a == 6 → renvoi 0 b != a – 1 → renvoi 1 2*(a>b) → renvoi 2 Programmation en langage C 2024/2025 Chapitre II: Eléments de base du langage C 11 Opérateurs logiques Il s’agit de: && et logique || ou logique ! négation logique Syntaxe: expression1 op expression2 La valeur retournée est : 0 ou 1 1 si la condition est vrai 0 si la condition est fausse Remarques: && est vrai uniquement si toutes les expressions sont varies || est vrai si au moins l’une des expressions est vraie Exemples: int a = 5, b = 3, c=1; (a>b) && (a!=c) → renvoi 1 (a==b) || ((a*2)>b) → renvoi 1 ((b-c) == 5) && !(b0 ? x=2 : x=5 ; // x va être exécutée Exemple 2: int m, a=5, b=2, i=1; m = ((a>b) ? ++i : --i ); // m = 2 Programmation en langage C 2024/2025 Chapitre II: Eléments de base du langage C 13 Opérateurs conditionnels Il est possible d’utiliser une imbrication d’opérateurs conditionnels Exemple 3: int x=2, y, z, t; y=( x>0? 1: (x (opérateurs de décalage de valeurs binaires) Exemple 2: c%2*b/5 < >= calcul de c%2 ensuite (c%2)*b puis == != division sur 5 & (et sur valeurs binaires) ^ (ou exclusif sur valeurs binaires) Exemple 3: !(x>0 && x0 et x b && b > c !(a == c - b) (a - b) != (c - a) !(a == b) || (c >= a) (b + c < a) || !(a + c > b) ((a + b) >= c) && (a b || a + c < b !(!( a > b) && (a > c || b > c)) Programmation en langage C 2024/2025 Chapitre II: Eléments de base du langage C 24 Exercices d’application int a = 2, b = 5, c = 7; Déterminer si les expressions suivantes sont vraies ou fausses : (a + b) != c Faux a > b && b > c Faux !(a == c - b) Faux (a - b) != (c - a) Vrai !(a == b) || (c >= a) Vrai (b + c < a) || !(a + c > b) Faux ((a + b) >= c) && (a b || a + c < b Vrai !(!( a > b) && (a > c || b > c)) Vrai Programmation en langage C 2024/2025 Chapitre II: Eléments de base du langage C 25 Exercices d’application #include int main() { int i=2,j= 3; i=i-(--i); printf("la valeur de I est: %d\n", i); j=j-(j--); printf("la valeur de J est: %d", j); return 0; } Programmation en langage C 2024/2025 Chapitre II: Eléments de base du langage C 26 Exercices d’application #include int main() { C'est une pré-décrémentation. Cela signifie que la valeur de i est d'abord décrémentée de 1, int i=2,j= 3; puis la nouvelle valeur est utilisée dans l'expression. i=i-(--i); printf("la valeur de I est: %d\n", i); j=j-(j--); printf("la valeur de J est: %d", j); La post-décrémentation signifie que j est d'abord utilisé return 0; comme 3 dans l'expression j = 3 - 3, ce qui donne 0.Après } cette opération, j-- décrémente la valeur de j à 2, mais cela n'affecte pas le calcul précédent qui a déjà défini j = 0. Programmation en langage C 2024/2025 Chapitre II: Eléments de base du langage C 27 Exercices d’application #include int main() { int a = 1, b = 1, c = 10, d = 5, e = 3; int result = (((a && b) != (c - d)) || ((e + d) < (c % a))) && (!((a = (e * d)) || ((c / b)

Use Quizgecko on...
Browser
Browser