Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Архив WinRAR / 2_Посібник_С_002.doc
Скачиваний:
39
Добавлен:
17.05.2015
Размер:
2.7 Mб
Скачать

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

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

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

Відомості про арифметичні операції зведені в таблиці.

Таблиця 4.2– Арифметичні операції

Дія

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

Алгебраїчний вираз

Вираз мовою С

Додавання

+

t+ 9

t+ 9

Віднімання

-

r–f

r–f

Множення

*

ab

a* b

Ділення

/

x/y чиx:yчи

x / y

Залишок від ділення

%

z mod w

z % w

Як видно з таблиці арифметичні вирази мовою С записуються в стрічку, так як в такому вигляді легче ввести програму в комп’ютер.

Операція множення (*) виконує множення операндів.

Приклад 3. Множення операндів

int k=5;

float f=0.2;

double g;

g=f*k;

Тип добутку fйkперетвориться до типу double, потім результат присвоюється змінній g.

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

Приклад 4.Операція ділення.

int a = 7, b = 5, c = 0, d;

d = a/b; /* d = 1, залишок відкинуто */

d = b/a; /* d = 0, залишок відкинуто */

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

Приклад 5.Визначення лишка від ділення операндів

int a = 7, b = 5, c = 0, d;

d = a % b; /* d = 2 – залишок від цілого поділу 7/5. */

d = b % a; /* d = 5 – залишок від цілого поділу 5/7. */

d = b % c; /* повідомлення про помилку */

4.3 Операції приведення типів

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

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

У процесі обчислення виразу операнди різних типів приводяться до єдиного за та­ким правилом:

- будь-яке char,shortабоenumперетворяться вintабоunsigned;

- якщо після першого кроку протиріччя в розходженні типів не усунені, то відбува­ється додаткове перетворення типів операндів відповідно до ієрархії типів:

int<unsigned<long< unsigned long<float<double<long double.

Оператор явного перетворення типу має вигляд:

Соседние файлы в папке Архив WinRAR