Поняття виразу. Операція присвоєння. Перетворення та приведення типів

Поняття виразу. Операція присвоєння. Перетворення та приведення типів


Зміст



1. Що називається виразом у мовах програмування?

Вирази – це поєднання операторів, літералів та змінних. Вирази використовуються для проведення обчислень, деяких дій тощо. У виразах можуть використовуватись імена функцій.

Приклади виразів.

a*8+5
Math::Sqrt(x)+Math::Sin(x+2)
sigma + gamma/20.0

2. Який загальний вигляд операції присвоєння? Приклади

Операція присвоєння використовується для задавання деякого значення змінній. Значення, що присвоюється може бути результатом деякого виразу.

У мові C/C++ операція присвоєння позначається символом = (дорівнює).

Загальний вигляд операції присвоєння у поєднанні з виразом:

змінна = вираз;

де

  • змінна – ім‘я змінної, якій присвоюється значення виразу;
  • вираз – деякий вираз, що може бути використаний згідно синтаксису мови C/C++.

Приклади операції присвоєння.

a = 8;
b = a + Math::Sqrt(x)+Math::Sin(x+2);
sigma = (double) (2.0 / b);

3. Як використовується операція присвоєння при ініціалізації змінних? Приклади

Загальний вигляд операції присвоєння при ініціалізації змінних:

тип ім‘я_змінної = вираз_або_значення;

де

тип – тип змінної, що ініціалізується;

вираз_або_значення – значення виразу або константна величина. Якщо використовується значення виразу, то змінні, що входять у цей вираз мають бути вже оголошені на даний момент (див. приклад).

Приклади ініціалізації змінних.

...
// Ініціалізація змінних
int a = 8, b = 25;
double c = 3.550093;
bool f = false;
char sym = 'A';

// Ініціалізація змінних з виразом
float x = 3.5;
float y = x + 2.8;
float z = x*x + y*y*y;
float zz = Math::Sqrt(z+5.0);

...

4. Як здійснюється перетворення типів у виразах?

Якщо у виразі зустрічаються два операнди різних типів, то діють наступні правила:

  • усі операнди перетворюються до типу самого найбільшого операнду. Процес такого перетворення називається розширенням типу (integral promotion);
  • усі типи char та short int перетворюються до типу int. Процес такого перетворення називається цілочисельним розширенням (integer promotion);
  • якщо один з операндів має тип double, тоді будь-який інший операнд приводиться до типу double. Навіть, у випадку з типом char, відбувається приведення до типу double;
  • після перетворення обидва операнди мають однаковий тип, який є типом результату операції.

Нижче наведено приклади автоматичного перетворення типів.

Перетворення між типами char та int:

char c;
int d;

c = 'A';
d = c; // d = 65

d = 67;
c = d; // c = 'C'

Перетворення між типами int та float:

int d = 28;
float x;

x = d;       // x = 28.0 - тип float
d = 5.0 + 5; // d = 10 - тип int

Перетворення між типами float і double

float f;
double d;
int size;

f = 2.54f;
d = f; // d = 2.54 - типу double
d = 2.0f + 8.5; // результат типу double

5. Як здійснюються перетворення, що зв‘язані з типом bool?

Якщо вираз містить цілочисельний тип, то значення типу bool автоматично перетворюються в цілі числа 0 та 1. Значенню 0 відповідає значення false. Значенню 1 або ненульовому значенню відповідає значення true.

Приклад. Фрагмент коду, що демонструє перетворення для типу bool

bool b;
int a;

a = 0;
b = a; // b = False

a = 1;
b = a; // b = True

a = 50;
b = a; // b = True

6. Який загальний вигляд операції приведення типу?

Загальний вигляд операції приведення типу:

(тип) вираз

де

тип – тип, до якого потрібно привести результат обчислення виразу.

Приклади використання операції приведення типів.

int a;
float x;

a = 5;
x = a/2; // x = 2.0
x = (float)(a/2); // x = 2.0
x = (float)a/2; // x = 2.5 - типу float

x = a/2.0; // x = 2.5 - типу float

x = (int) (8/3.0);   // x = 2
x = (float) (8/3.0); // x = 2.666667

Рекомендація. З метою отримання необхідної точності при обчисленні виразів що містять цілочисельні та дійсні значення, бажано завжди робити операцію приведення типу до типу змінної, якій присвоюється значення.

7. Які особливості застосування круглих дужок та символів “пробіл” у виразах?

Щоб покращити читабельність, у програмах використовуються:

  • символи “пробіл”;
  • символи табуляції (клавіша Tab);
  • круглі дужки ( ). Круглі дужки дозволяють також підвищити пріоритет операцій, що містяться в них. Кількість круглих дужок не впливають на швидкість обчислення виразу.


Зв’язані теми