6. Действия и изрази в С++

• Действия, използвани в изразите:
- аритметични действия
- логически действия;
- сравнение;
- присвояване;
- принудително преобразуване типа на операнда;
- условен оператор;
- оператор за последователно изпълнение
• Изрази в С++ . Приоритет на действията в изразите
• Неявно преобразуване на типовете в изразите
• Примери и задачи


преди план следва
 
 

• Примери и задачи


1. Да се въведат 2 цели положителни числа. Да се извършат действия +, -, *, / и % между тях.



2. Действията * и / са с по-висок приоритет от дествията + и - . Този приоритет може да се промени с помощта на кръглите скоби:
2+3 / 3+ 2 дава 5
(2+3)/(3+2) дава 1

Бинарните действия * и / са с еднакъв приоритет. Те се извършват последователно от ляво на дясно:
2*3/ 3*2 дава 4
2*3/(3*2) дава 1

Проверете тези правила с ваши данни:



3. Действието / /деление/ дава различен резултат в зависимост от типовете на операндите /реални или целочислени/. Какъв е резултатът от изчисляването на изразите:
а/. 1 / 3
б/. -10 / 3
в/. ‘*’ / 5
г/. 1.0 / 3
д/. 1 / 10.0
е/. 1.0 / 10.0

4. Действие % се извършва само с операнди от целочислени типове. Какъв е резултатът от изчисляването на изразите:
a/ 1 % 3
б/ 1 % 10
в/ ' a' % 'A'
г/ 1.6 % 3

5. При действие && левият операнд се изпълнява винаги първи. Ако левият операнд има стойност 0 , резултатът е 0. Да се пресметне стойността на израза:

v > u && u*v != 0 при u =2, v = 1

6. При действие && десният операнд се изпълнява само ако левият операнд е различен от 0:



7. При действие || левият операнд се изпълнява винаги първи. Ако левият операнд има стойност различна от 0, резултатът е 1.



8.Да се пресметне стойността на израза:

u*v != 0 || v > u при u =2, v = 1

9. При действие || десният операнд нe се изпълнява, ако левият операнд е верен:



10. Действието << е с по- нисък приоритет от действие + и с по-висок приоритет от действие > / по-голямо/. Има ли грешка в следния код? Каква?
int x = 11, y = 12;
cout << x+y << endl;
cout << y>x;
 
 
 
 
преди план следва