1 / 20

Expressions et affectation

Expressions et affectation. Comment produire des nouvelles valeurs. Expressions. L’expression est un élément du langage qui produit une règle comment calculer une nouvelle valeur à l’aide des opérandes et opérateurs Les opérateurs donnent les instructions comment obtenir la valeur;

alanna
Download Presentation

Expressions et affectation

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Expressions et affectation Comment produire des nouvelles valeurs B.Shishedjiev - Affectation

  2. Expressions • L’expression est un élément du langage qui produit une règle comment calculer une nouvelle valeur à l’aide des opérandes et opérateurs • Les opérateurs donnent les instructions comment obtenir la valeur; • Les opérandes sont les données sur lesquelles les opérateurs agissent. • Exécuter une expression – c’est de: • Produire une valeur • Calculer la valeur depuis les opérandes • Eventuellement changer la valeur d’un ou plusieurs opérandes • Déterminer le type de la valeur produite B.Shishedjiev - Affectation

  3. Types d’opérateurs • Opérateurs unaires ( ++ -- sizeof - (type) ! )Ils peuvent être préfixe ( !x ) ou postfixe ( x++ ) • Opérateurs binaires ( + - * / && || ) Ils ont deux opérandes ( x + y ) • Opérateurs ternaires( ?: )z ? x : y B.Shishedjiev - Affectation

  4. Priorité et associativité • Ils gèrent l’ordre dans lequel sont evalués les opérateurs individuels quand l’expression comporte plusieurs opérateurs. • Les opérateurs avec priorité supérieure sont évalués avant ceux avec une priorité inférieure. • Quand ils sont de même priorité ils sont évalués selon le sens de l’associativité. • On peut changer l’ordre à l’aide de parenthèses. B.Shishedjiev - Affectation

  5. Les opérateurs de C B.Shishedjiev - Affectation

  6. Expressions arithmétiques • Opérateurs d’addition • addition + • soustraction - • Opérateurs de multiplication • multiplication * • division / • modulo (le reste de division entière) % • Opérateurs unaires • moins unaire - • Type de résultat B.Shishedjiev - Affectation

  7. Expressions arithmétiques • Fonctions standards • Mathématiques • Entiersabs(i), labs(l), div(i),ldiv(l), rand(), random(i), randomize() • Doublefabs(x) = |x|, sqrt(x)=x,pow(x,y)= xy, pow10(x)=10x, log(x)=ln x, exp(x)= ex, log10(x)=log10x, sin(x), sinh(x), cos(x), cosh(x), tan(x), asin(x), acos(x), atan(x), ceil(x), floor(x), B.Shishedjiev - Affectation

  8. Expressions arithmétiques… • Exemples int a=2,b =5,c =4; double x=2.5,y=1.,z=3.1; char h = ‘A’; Résultat 3 Résultat -9 Résultat 2 a+b-c 3*(a-b) b/2 b/2. b % a a + b + z a + -b b / -y *z h+2 Résultat 2.5 Résultat 1 Résultat 10.1 Résultat -3 Résultat -15.5 Résultat ‘C’ ou 67 B.Shishedjiev - Affectation

  9. Expressions arithmétiques… • Exemples (a+b)/(c+d) (1+x)*sqrt((2*sin(2*x)+pow(cos(x),2)-3*tan(x*x))/(1-exp(2+x))) B.Shishedjiev - Affectation

  10. Affectation simple • Syntaxe Lvalue est un objet qui peut contenir une valeur (une variable ou une expression qui vaut une adresse de la mémoire) RValue vaut une valeur (la valeur d’une variable ou une expression qui produit une valeur) • Exécution de l’opérateur d’affectation • Calcule l’expression de Rvalue et obtient sa valeur • Enregistre la valeur dans Lvalue • Le résultat est la valeur enregistrée. <Lvalue> = <Rvalue> B.Shishedjiev - Affectation

  11. Affectation simple • Exemples Declarer les variables sans spécifier leur valeur Mémoire • int a,b,c; • int d = 3; • a = 5; • b = 3+a; • c = a = b; • 4=a; • a+b=c; ? a 8 5 Declarer la variable avec initialisation b ? 8 c ? 8 Affectations simples d 3 Affectations multiples l’associativité est de droit à gauche Instructions invalides B.Shishedjiev - Affectation

  12. Opérateursincrémentaux • Opérateurs de préincrément et de prédécrement L'opérande doit être une Lvalue • Opérateurs de postincrément et de postdécrement int a =5,b=3,c=1; a = 5 + ++c; c = 2 * -- b; Mémoire 7 5 a b 3 2 4 2 1 c 6 5 7 a int a =5,b=3,c=1; a = 5 + c++; c = 2 * b--; a++;--c; b 3 2 2 5 6 1 c B.Shishedjiev - Affectation

  13. Expressions booléennes • Opérateurs comparatifsils rendent 1 si la comparaison est vraie et 0 si elle est fausse a < 5 b>= 9.5 a+b != c/d • Opérateurs logiques x < 5 && x > 2 y>= 9.5 || y <= 3.2 a && b || !a && !b B.Shishedjiev - Affectation

  14. Expressions booléennes • Exécution en raccourci Avant: x =3 Après: Resultat vrai x = 4 x < 5 && x++ > 2 x > 5 || x++ < 2 Avant: x =6 Après: Resultat faux x = 6 Avant: x =3 Après: Resultat faux x = 4 Avant: x =6 Après: Resultat vrai x = 6 B.Shishedjiev - Affectation

  15. Expression conditionnelle • Syntaxe condition? expression-1: expression-2 • Exemple d = 4 int a = 2,b =4,c = -3; int d; d = a>b ? a : b; d = c>=0 ? c : -c; d = (a != b ? 5 : 1) * 2; d = 3 d = 10 B.Shishedjiev - Affectation

  16. Opérateurs sur les pointeurs • Indirection (déréférence) * - délivre la valeur pointée. • Adresse &délivre l’adresse d’une variable Mémoire Nom Adresse Valeur j 26 ? 10 12 int j, *pi; j = 10; pi = &j; *pi = 12; pi 30 26 ? B.Shishedjiev - Affectation

  17. Affectation étendue Cette affectation est appelée encore élargie ou complexe • Syntaxe  exp1 = exp1 exp2 exp1 = exp2 où  est + - * / etc. • Exemples int a = 2,b =4,c = -3; a += 5 b *= a-2 c += a>b ? a-b : b-a a = 7 b=20 c=10 B.Shishedjiev - Affectation

  18. L’opérateur sizeof • Sizeof rend la taille de son opérande en octets • Exemples a = 2 int a = 2,b =4,c = -3; short i; long j; float x; double z; a = sizeof i; b = sizeof z/ sizeof x; c = sizeof(int); b=2 c=2 B.Shishedjiev - Affectation

  19. Conversion des types • Conversion implicite a = -29912 int a = 2,b =4,c = -3; short i = 4; long j=35897 float x =3.2; double z = -4.5; char d = ‘A’; a = j; b = x; c = z; x = 5; c = d; d = 66; b=3 c=-4 x = 5.0 c=65 d=‘B’ B.Shishedjiev - Affectation

  20. Conversion des types • Conversion explicite – cast opérateur (type) int a = 2,b =4; unsigned c = -3; short i = 4; long j=35897 float x =3.2; double z = -4.5; char d = ‘A’; x = (float)c/2; b = (int)x; c = (unsigned int) j; a = (int)x/2; x = -1.5 b=3 c=35897 a = 1 B.Shishedjiev - Affectation

More Related