У сучасному житті дуже складно обійтися без арифметичних операцій. Нам постійно доводиться щось рахувати: додавати, множити, віднімати, ділити і т.д. Програмування – не виняток. Вам в 99.9% випадків доведеться ними користуватися, при написанні своїх програм. Боятися їх не варто – всі арифметичні операції – прості, зрозумілі і знайомі нам зі школи.
Розглянемо арифметичні операції в наступній таблиці.
Тут особливу увагу слід приділити діленню по модулю (%). Ця операція досить часто використовується в рішенні певних завдань. Приклад її застосування: якщо нам необхідно поділити по модулю 9 на 4 (9 % 4), результат буде дорівнювати 1 (це залишок – те, що на 4 вже не ділиться націло). ще приклади: 20 % 8 = 4 ( 8 поміщається в 20-ти 2 рази: 8 * 2 = 16, 20 – 16 = 4 залишок від ділення ), 3 % 2 = 1, 99 % 10 = 9, 9 % 10 = 9. Важливо:
- ділення по модулю застосовується тільки до цілочисельних перемінним ;
- не можна ділити по модулю на 0;
Приклад:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | #include <iostream> using namespace std; int main() { setlocale(LC_ALL, "rus"); int number1 = 18; int number2 = 4; cout << "number1 = " << number1 << endl; cout << "number2 = " << number2 << endl; cout << "number1 + number2 = " << number1 + number2 << endl; cout << "number1 - number2 = " << number1 - number2 << endl; cout << "number1 * number2 = " << number1 * number2 << endl; cout << "number1 / number2 = " << number1 / number2 << endl; cout << "number1 % number2 = " << number1 % number2 << endl; cout << endl; return 0; } |
Тут ви бачите, що при поділі num1 на num2, на екрані з'явилася тільки ціла частина – 4 (хоча точне значення 4.5). Дрібна частина відсікається, так як змінні визначені, як цілочисельні – int. А в результаті поділу по модулю ми бачимо 2 – то що залишилося в залишку від ділення 18 на 4.
Ще що хотілося б розглянути в даній статті – це так звані комбіновані (або складові) оператори. Крім виконання своєї арифметичної ролі, вони одночасно виконують роль присвоювання значень змінним. Ось список таких складових операторів:
Покажу на прикладі:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | #include <iostream> using namespace std; int main() { setlocale(LC_ALL, "rus"); int number1 = 10; int number2 = 4; cout << "number1 = " << number1 << endl; cout << "number2 = " << number2 << endl; number1 += number2; // эквивалентно записи number1 = number1 + number2 cout << "Результат от += : " << "number1 = " << number1 << endl; number1 -= number2; // number1 = number1 - number2 и т.д. cout << "Результат от -= : " << "number1 = " << number1 << endl; number1 *= number2; cout << "Результат от *= : " << "number1 = " << number1 << endl; number1 /= number2; cout << "Результат от /= : " << "number1 = " << number1 << endl; number1 %= number2; cout << "Результат от %= : " << "number1 = " << number1 << endl; cout << endl; return 0; } |
Хоча для когось, з першого погляду, ці оператори можуть здатися заплутаними, повірте, до них дуже швидко можна звикнути і успішно застосовувати в своїх програмах. Треба тільки трохи попрактикуватися з їх застосуванням. Ваш код буде виглядати компактніше. Також, використання комбінованих операторів є ознакою хорошого тону в програмуванні. Тому, хоч і не буде помилкою в коді використання складання окремо від присвоювання – number1 = number1 + number2;, краще використовувати скорочений варіант запису number1 += number2;
Результат:
У цій статті були розглянуті тільки бінарні оператори – ті які застосовуються для арифметичних операцій з двома змінними (операндами). В одній з наступних, ми познайомимося з унарними операторами (для операцій з однією змінною) – инкрементом і декрементом, а в майбутньому – і з тернарним оператором (якому необхідно три операнда).
Бажано закріпити отримані знання практикою – Завдання: Арифметичні операції в С++
супер, досить доступно все розписано! Треба тільки звертати увагу що простий бінарний оператор типу ” + ” робить просто додавання, а складовою бінарний оператор типу ” += ” крім складання (або ін.) ще й привласнює значення першої змінної (в даному випадку number1) кожен раз при обчисленні…
спасибі автору!
Дякую! Зараз буду вчитися використовувати арифметичні операції
А мені сподобалося, я все прекрасно зрозумів, є бінарні оператори, вони застосовуються для двох змінних допустимо в вашому прикладі: number1 += number2; тут дві змінні, значить бінарний, а є ще унарні тернарние, ось приклад унарна: 34++ або 23–, а може і так: ++34 или –23; приклад ternarnogo: ? перше твердження : друге твердження. Вообщем спасибі за все, я буду далі вивчати
Дякую за курс!
Поясніть чому неправильно видає результати “-=” і “/=”?
Операції виконують все правильно. Показуйте свої результати, якщо у вас що не так.
Разом з = може використовуватися знак будь-бінарної операції … например:
=&& , =| , =% , =<> …
І все дає правильні результати … тільки їх потрібно правильно тлумачити (що повинно вийти).
Не треба забувати що значення змінної number1 змінюється з кожною операцією.
Все просто. Ти кожен раз привласнюєш 1 змінної нове значення, не зраджуючи старе. Просто переглянь послідовність ще раз.
У мене не з'являється помилка в iostream
фігня повна самий тупий сайт.
Ну так “говно” – воно і в Африці говно … : проходите мимо, Не затримуйтесь!
Все дуже доступно і зрозуміло, велике спасибі за уроки.
як здійснити операцію “розподіл по модулю” для чисел в форматі float, довгий поплавок або doublе???
для речових чисел така операція як “розподіл по модулю” не має сенсу і не визначена.