6. Opérateurs et expressions en С++

• Opérateurs en С++
- Opérateurs arithmétiques
- Opérateurs logiques
- Opérateurs relationnels
- Affectation
- Conversion du type de l'opérande
- Opérateur conditionnel
- Opérateur virgule
• Expressions en C++. Priorité des opérateurs
• Conversion du type implicite
• Exemples et tâches


 
 

• Exemples et tâches


1. Introduire deux entiers positifs. Appliquer les opérateurs suivants entre eux: +, -, *, / et %.



2. La priorité de * et / est plus hautе que la priorité de + et -. Cette priorité peut être changée à l’aide des accolades ( ):
2+3 / 3+ 2 vaut 5
(2+3)/(3+2) vaut 1

Les opérateurs binaires * et / ont la priorité égale. Ils sont exécutés de gauche à droite.:
2*3/ 3*2 vaut 4
2*3/(3*2) vaut 1

Introduire deux entiers et vérifier les règles ci-dessus:



3. L’opérateur / /division/ vaut un résultat différent selon les types des opérandes /réels ou entiers/. Quels sont les résultats de l’évaluation des expressions:
a/. 1 / 3
b/. -10 / 3
c/. ‘*’ / 5
d/. 1.0 / 3
e/. 1 / 10.0
f/. 1.0 / 10.0

4. L’opérateur % est applicable seulement si les types des opérandes sont des types entiers. Quels sont les résultats de l’évaluation des expressions:
a/ 1 % 3
b/ 1 % 10
c/ ' a' % 'A'
d/ 1.6 % 3

5. L’opérande gauche de l’opérateur && s’exécute toujours premièrement. Si l’opérande gauche a une valeur 0, le résultat est 0. Evaluer l’expression:

v > u && u*v != 0 si u =2, v = 1

6. L’opérande droit de l’opérateur && s’exécute seulement si l’opérande gauche n’est pas 0. Suivez cette règle utilisant l'applette suivante:



7. L’opérande gauche de l’opérateur || s’exécute toujours premièrement. Si l’opérande gauche a la valeur différente de 0, le résultat est 1. Suivez cette règle:



8. Evaluer l’expression:

u*v != 0 || v > u si u =2, v = 1

9. L’opérande droit de l’opérateur || ne s’exécute pas si l’opérande gauche a une valeur différentе de 0. Suivez cette règle:


10. La priorité de l’opérateur << est plus basse que la priorité de + /addition/ et plus haute que la priorité de > /relation/ . Y a-t-il une erreur dans le code suivant?
int x = 11, y = 12;
cout << x+y << endl;
cout << y>x;