русс | укр

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

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


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


Множення, ділення і залишок від ділення


Дата додавання: 2015-01-08; переглядів: 1068.


Операція множення (*) повертає результат перемножування двох операндів. Стандартна операція множення визначена для типів int, uint, long, ulong, float, double і decimal. До величин інших типів її можна застосовувати, якщо для них можливе неявне перетворення до цих типів (див. рис. 3.1). Тип результату операції дорівнює “найбільшому” з типів операндів, але не менше int. Якщо обидва операнди цілочисельні або типу decimal і результат операції перевищує допустиме значення, то генерується виключення System OverflowException. Всі можливі значення для дійсних операндів приведені в таблиці 3.2. Символами х і у позначені кінцеві додатні значення, символом z - результат операції дійсного множення. Якщо результат дуже великий, він приймається рівним значенню “нескінченність”, якщо дуже малий, він приймається за 0. NAN (not а number) означає, що результат не є числом.

 

Таблиця 3.2.

Результати дійсного множення

 

* +y +0 -0 +∞ -∞ NaN
+x +z -z +0 -0 +∞ -∞ NaN
-x -z +z -0 +0 -∞ +∞ NaN
+0 +0 -0 +0 -0 NaN NaN NaN
-0 -0 +0 -0 +0 NaN NaN NaN
+∞ +∞ -∞ NaN NaN +∞ -∞ NaN
-∞ -∞ +∞ NaN NaN -∞ +∞ NaN
NaN NaN NaN NaN NaN NaN NaN NaN

 

Операція ділення (/) визначена для типів int, uint, long, ulong, float, double і decimal. Якщо обидва операнди цілочисельні, результат операції округляється вниз до найближчого цілого числа. Якщо дільник дорівнює 0, генерується виключення System. DivideByZeroException.

Якщо хоч би один з операндів дійсний, дробова частина результату ділення не відкидається, а всі можливі значення приведені в таблиці 3.3. Символами х і у позначені кінцеві додатні значення, символом z - результат операції дійсного ділення. Якщо результат дуже великий він приймається рівним значенню “нескінченність”, якщо дуже малий, він приймається за 0.

 

Таблиця 3.3.

Результати дійсного ділення

 

/ +y +0 -0 +∞ -∞ NaN
+z -z +∞ -∞ +0 -0 NaN
-z +z -∞ +∞ -0 +0 NaN
+0 +0 -0 NaN NaN +0 -0 NaN
-0 -0 +0 NaN NaN -0 +0 NaN
+∞ +∞ -∞ +∞ -∞ NaN NaN NaN
-∞ -∞ +∞ -∞ +∞ NaN NaN NaN
NaN NaN NaN NaN NaN NaN NaN NaN

 

Для фінансових величин (тип decimal) при діленні на 0 і переповнюванні генеруються відповідні виключення, при зникненні порядку результат рівний 0.

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

х - (х / у) * у.

Якщо дільник дорівнює нулю, генерується виключення System.DivideByZeroException. Тип результату операції дорівнює “найбільшому” з типів операндів, але не менше int.

Для фінансових величин (тип decimal) при отриманні залишку від ділення на 0 і при переповнюванні генеруються відповідні виключення, при зникненні порядку результат дорівнює 0. Знак результату дорівнює знаку першого операнда. Якщо хоч би один з операндів дійсний, результат операції обчислюється за формулою

х - n * у,

де n - найбільше ціле, яке менше або дорівнює результату ділення х на у. Всі можливі комбінації значень операндів приведені в таблиці 3.4. Символами х і у позначені кінцеві додатні значення, символом z - результат операції залишку від ділення.

 

Таблиця 3.4.

Результати дійсного залишку від ділення

 

% +y +0 -0 +∞ -∞ NaN
+x +z z NaN NaN x x NaN
-x -z -z NaN NaN -x -x NaN
+0 +0 +0 NaN NaN +0 +0 NaN
-0 -0 -0 NaN NaN -0 -0 NaN
+∞ NaN NaN NaN NaN NaN NaN NaN
-∞ NaN NaN NaN NaN NaN NaN NaN
NaN NaN NaN NaN NaN NaN NaN NaN

 

Приклад застосування операцій множення, ділення і отримання залишку представлений в лістингу 3.4.

Лістинг 3.4. Операції множення, ділення і отримання залишку

using System;

namespace Consoleapplicationl

{

class Classl

{

static void Main( )

{

int x = 11, у = 4;

float z = 4;

Console.WriteLine(z * у ) ; // Результат 16

Console.WriteLine(z * 1e308 ); // Результат "нескінченність"

Console.WriteLine(x / у ); // Результат 2

Console. WriteLine(x / z ); // Результат 2.75

Console.WriteLine(x % у ); // Результат 3

Console.WriteLine(1e-324 / 1e-324 ); // Результат NaN

}

}

}

Декілька операцій одного пріоритету виконуються зліва направо. Для прикладу розглянемо вираз 2 / х • у. Ділення і множення мають один і той же пріоритет, тому спочатку 2 ділиться на х, а потім результат множиться на у. Якщо ж ми хочемо, щоб вираз х • у був в знаменнику, слід укласти його в круглі дужки або спочатку поділити чисельник на х, а потім на у:

 

2 / (х • у) или 2 / х /у.

 


<== попередня лекція | наступна лекція ==>
Операції заперечення | Операції складання і віднімання


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