Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
О.О.П / ооп / 4_кол / Лекції / ООП (2.Початкові відомості мови С).doc
Скачиваний:
26
Добавлен:
30.05.2020
Размер:
351.74 Кб
Скачать

Операції і вирази

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

a+b 12.5 - z 2*(X+Y)

х++ х+++b --n*2 n*=1

Три перші вираження мають традиційну форму для мов програмування високого рівня, тому їх сенс очевидний. Наступні чотири вираження специфічні для мови Сі.

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

Арифметичні операції

До арифметичних операцій відносяться:

—   віднімання або унарний мінус;

+   складання або унарний плюс;

*   множення;

/   ділення;

%   ділення по модулю (аналог Mod в Паскале);

++ унарна операція збільшення на одиницю (інкремент);

-- унарна операція зменшення на одиницю (декремент).

Усі операції, окрім ділення по модулю, застосовані до будь-яких числових типів даних. Операція % застосована тільки до цілих чисел.

 Розглянемо особливості виконання операції ділення. Якщо ділиме і дільник — цілі числа, то і результат — ціле число. В цьому випадку операція / діє аналогічно Div в Паскале. Наприклад, значення вираження 5/3 дорівнюватиме 2, а при обчисленні 1/5 вийде 0.

Якщо хоч би один з операндів має речовий тип, то і результат буде речовим. Наприклад, операції 5. / 3, 5. / 3., 5/3. дадуть речовий результат 1.6666.

Операції інкремента і декремента можуть застосовуватися тільки до змінних і не можуть — до констант і виразів. Операція ++ збільшує значення змінної на одиницю, операція — зменшує значення змінної на одиницю. Обидва знаки операції можуть записуватися як перед операндом (префіксна форма), так і після операнда (постфіксна форма), наприклад: ++X або X++, --а або а--. Три наступні оператори дають один і той же результат:

х=х+1; ++х; х++

Відмінність проявляється при використанні префіксною і постфіксною форм у виразах. Проілюструємо це на прикладах. Перший приклад:

а=3; b=2;

с=а++*b++;

В результаті виконання змінні отримають наступні значення: а=4, b=3, c=6.

Другий приклад:

а=3; b=2;

с=++а*++b;

Результати будуть такими: а = 4, b = 3, с = 12.

Пояснення наступне: при використанні постфіксної форми операції ++ і -- виконуються після того, як значення змінної було використане у вираженні, а префіксні операції — до використання. Тому в першому прикладі значення змінної з обчислювалося як твір 3 на 2, а в другому — як твір 4 на 3.

По убуванню старшинства арифметичні операції розташовані в наступному порядку:

++, --

— (унарний мінус)

*, /, %

+, -

Однакові за старшинством операції виконуються в порядку зліва направо. Як і в Паскалі, для зміни порядку виконання операцій у виразах можуть застосовуватися круглі дужки.