русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Порядок виконання операцій


Дата додавання: 2014-04-22; переглядів: 2303.


Порядок обчислення значення виразу базується на таких правилах:

1) з двох сусідніх операцій першою буде виконана та, пріоритет якої вищий;

2) операції однакового пріоритету виконуються зліва направо або з права наліво залежно від асоціативності, встановленої для даної групи операцій (табл. 4.1);

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

Стандарт мови програмування С++ не встановлює порядку звертання до операндів в процесі виконання операції. Тобто, у виразі

 

w = (a + b) * (a - b);

 

операцію множення гарантовано буде виконано перед операцією присвоєння і після обчислення значень виразів у дужках. Але який з двох операндів – виразів (a+b) чи (a-b) буде обчислений першим – не визначено. В деяких випадках значення виразу залежить від порядку звертання до операторів. Наприклад

 

d = c + twice(&c);

 

Функція twice вдвічі збільшує значення змінної, адреса якої передана їй в якості параметра, і повертає нове значення. Нехай початкове значення змінної с дорівнює 5. Тоді значення виразу, що буде присвоєний змінній d, може дорівнювати 5+10=15, якщо першим буде вибраний лівий операнд, а потім – правий; або 10+10=20, якщо спочатку обчислюється правий операнд, тобто відбувається виклик функції, яка змінює значення с. Необхідно уникати виразів, результати обчислення яких можуть бути неоднозначними.

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

До арифметичних належать такі операції (згідно з порядком старшинства операції):

1) - (зміна знака операнда, унарна операція);

2) * / % (множення, ділення, остача від ділення, бінарні операції);

3) + - (додавання, віднімання, бінарні операції).

Операції * / + - виконуються над операндами всіх числових типів (цілих і дійсних), операція % потребує двох цілочислових операндів. Результат виконання всіх арифметичних операцій над двома операндами цілого типу завжди є цілим.

 

#include <iostream>

#include <cmath>

using namespace std;

int main(){

int a = 7, b = 3; // 7 = 3 * 2 + 1

cout << a / b << endl; // 2

cout << a % b << endl; // 1

cout << (double)a / b << endl; // 2.3333

}

 


<== попередня лекція | наступна лекція ==>
Вирази і операції. Поняття виразу, операнда, операції | Порозрядні операції


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн