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

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


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

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


11. Действията < /по-малко/ и > /по-голямо/ са бинарни. Изпълняват се от ляво на дясно. Резултатът от сравнението е 1, ако неравенството е изпълнено. Ако неравенството не е изпълнено, резултатът е 0. Какво ще се изведе от кода:



12. Допустимо е обединяване на действие присвояване. В резултат може да се присвои една и съща стойност на няколко променливи.

Пример:
int v1,v2,v3 = 5;
v1 = v2 = v3; // v1 и v2 приемат стойност 5

13. Ако типа на променливата и операнда при действие присвояване са различни, стойността на операнда се преобразува така, че да съответства на типа на променливата. Възможна е загуба на информация.

Пример:
int a ;
a = -3.9 ; // а приема стойност -3, вместо -3.9.
char c = 42.9;
cout << "c = "<< c; // извежда c = *

14. Oбединеното действие присвояване се извършва от дясно на ляво.

Пример:
int x;
double y ;
y = x = -3.9; // x приема стойност -3, y приема стойност -3
x = y = -3.9; // x приема стойност -3, y приема стойност -3.9

15. Ако ++ предхожда променливата, тя участва в изчисляването на израза с новата си стойност. Ако ++ е след променливата, тя участва в изчисляването на израза със старата си стойност. Каква е стойността на v след присвояването:



16. Действието (тип)операнд /принудително преобразуване типа на резултата/ е унарно. То е с по-висок приоритет от делението. Извършва се от дясно на ляво. Какво се извежда от кода:



17. Какво ще се изведе от кода? Задължителни ли са скобите в cout<<(z ? x:y); ?



18. Пример за операция , /запетая/. Какво ще се изведе от кода?



Резултатът от изпълнението на операция “,” е стойността на втория операнд, типът на резултата е типът на втория операнд.

19. Да се изведе най-голямото число, принадлежащо на типа long int. Tо е равно на 2n-1 - 1 , където n е брой на битовете, заемани от типа:
#include < iostream.h >  
#include < math.h >		   
#include < iomanip.h >		   
int main()						   
{									   
	cout<<"Най-голямото число от типа  long int e ";
	cout<<( long int) (pow(2,sizeof(long int)*8 -1) -1);	
return 0;				
}		
20. Да се изведе най-голямото число, принадлежащо на типa unsigned long int. Tо е равно на 2n - 1 , където n е брой на битовете, заделени за типа.

21. Да се състави програма за въвеждане на време в секунди и преизчисляването му в часове, минути и секунди:
#include < iostream.h >
int main()					 
{
     int seconds, sec, min, hour;	 
     cout << "Въведете време в секунди:  ";
     cin >> seconds;							  
     hour = seconds/3600;
     min  = seconds%3600/60;						 
     sec  = seconds%3600%60;	
     cout << seconds << " секунди са равни на  " << hour << "  часа, " << min << " минути и  "<< sec    << " секунди. ";
return 0;			
} 
22. Да се въведе дължина в милиметри и се преизчисли в метри, сантиметри и милиметри.
23. Да се състави програма за проверка дали цяло число k, въведено от клавиатурата, се дели точно на 5.
24. Да се изчисли коефициентът на дифузия Dg на газове по формулата:

където Ma и Mb са молни маси, Va и Vb са обеми, p е налягане, t е температура.

25. Да се изчисли скоростната константа на химична реакция по зависимостта на Арениус:
, където R e константа, равна = 0,813, Ко, Е и Т са реални променливи.

26. Да се състави програма за изчисляване на плътността на газовете по уравнението на Клапейрон:



където Т, Т0 са температури, P и P0 са налягания, М е молна маса.
 
 
 
 
преди план следва