На цьому уроці ми поговоримо про арифметичні і логічні операції, без яких складно уявити будь-яку програму.
Всі операції діляться на два типи: унарні і бінарні. До унарних належать операції, в яких бере участь один операнд. В бінарних операціях - два операнда. Операнд - це дані, які приймають участь в операції. Наприклад, оператор додавання «+» - бінарний 2 + 3, тут операндами є числа 2 і 3 Список бінарних арифметичних операцій наведено в таблиці:
Операція |
Запис |
Додавання |
a + b |
Віднімання |
a - b |
Ділення |
a / b |
Умножение |
a * b |
Знаходження остачі від ділення |
a % b |
При діленні двох цілих чисел результатом також буде ціле число. Наприклад при діленні 9/5 результатом буде число 1 Щоб отримати точний результат з десятковою комою, потрібно щоб ділене і / або дільник були float або double. Наприклад, при діленні 9 / 5f (суфікс F вказує, що дана константа типу float) результатом буде 1,8.
Оператор «%» повертає остачу від ділення. Результатом операції 9% 5 буде 4 Прикладом застосування оператора «%» може бути процес перевірки числа на парність. Для цього ми шукаємо остачу від ділення числа на 2. Якщо число парне, результатом буде 0, якщо непарне - 1.
Щоб підвищити пріоритет операції, використовуються дужки, як і в звичайній арифметиці.
2 + 2 * 2 = 6
(2 + 2) * 2 = 8
При використанні оператора «+» для рядків, він виконує операцію конкатенації. Конкатенація - об'єднання декількох об'єктів (наприклад рядків) в один.
static void Main(string[] args)
{
string str1 = "Hello", str2 = "World";
Console.WriteLine(str1 + ", " + str2); //виводить на екран "Hello, World"
}
Унарні оператори в Сі-шарп
Унарних арифметичних операторів в Сі-шарп є всього два: інкрементація «++» і декрементація «-»;
Інкрементація збільшує операнд на одиницю, а декрементація - зменшує на одиницю.
static void Main(string[] args)
{
int a = 0, b = 5;
a++; // a=1;
b--; // b=4
}
Інкрементація і декрементація може бути префіксною і постфіксною. При префіксній формі оператор стоїть перед операндом, а при постфіксной-після.
Префіксна форма спочатку збільшує (зменшує) значення, і після цього виконується решта дію, а при постфіксной формі навпаки - спочатку виконається всі дії, а після збільшиться (зменшиться) значення:
static void Main(string[] args)
{
int a = 2, b = 3, c, d = 3;
c = a + ++b; // c = 6, спочатку інкремент, потім додавання
с = a + d++; // c = 5, спочатку додавання, а потім інкремент
}
Скрізь де можна використовувати інкрементацію / декрементацію варто це робити, так як вона працює швидше оператора додавання / віднімання.
В Сі-шарп також є можливість використання короткої форми виразу:
static void Main(string[] args)
{
int a = 2, b = 3;
a += b; // рівноцінно виразу a = a + b;
a -= b; // рівноцінно виразу a = a - b;
a *= b; // рівноцінно виразу a = a * b;
a /= b; // рівноцінно виразу a = a / b;
a %= b; // рівноцінно виразу a = a % b;
}
Клас Math
У класі Math зібрані всі основні тригонометричні функції, функція піднесення числа до степеня, знаходження квадратного кореня та інші.
Для зведення числа до степеня, використовується функція Pow ([число], [степінь]);
static void Main(string[] args)
{
float a, b = 9;
a = (float) Math.Pow(b, 2); // Підносимо змінну до степеня 2. Pow () повертає результат в типі даних double, тому ми тут застосували явне перетворення. Звичайно, можна було обійтися без перетворення, оголосивши змінну типу подвійний double.
Console.WriteLine(a); // выводит на экран число 81
Console.ReadKey();
}
Для знаходження квадратного кореня служить функція Sqrt ([число]); повертається результат також в типі даних double.
static void Main(string[] args)
{
double a, b = 9;
a = Math.Sqrt(b);
Console.WriteLine(a); // виводить на екран число 3
Console.ReadKey();
}
Для знаходження косинуса і синуса використовуються cos ([кут в радіанах]) і sin ([кут в радіанах]) відповідно.
180 [градусів] = пі [радіан].
Щоб перевести градуси в радіани, необхідно значення в градусах помножити на Пі і розділити на 180. Число Пі оголошено константою в класі Math.
static void Main(string[] args)
{
double a;
a = Math.Cos(60 * Math.PI / 180); // переводимо 60 градусів в радіани
Console.WriteLine(a); // виводить на екран 0.5
a = Math.Sin(60 * Math.PI / 180);
Console.WriteLine(a); // виводить на екран 0.866…
Console.ReadKey();
}
Логічні оператори в Сі-шарп
Логічні оператори в Сі-шарп використовують для роботи з логічним типом даних (BOOL), який може приймати тільки два значення - істино чи хибно. Їх можна розділити на дві категорії: прості логічні оператори та оператори порівняння.
В Сі-шарп є наступні логічні оператори:
! - Оператор «НЕ» є унарним і повертає протилежне значення операнда.
static void Main(string[] args)
{
bool a, b = true, c = false;
a = !b; // a = false
a = !c; // a = true
}
|| - Оператор «АБО» є бінарним і повертає хибно тільки тоді, коли обидва операнди дорівнюють хибним, в інших випадках результат буде істинно;
static void Main(string[] args)
{
bool a, bTrue = true, bFalse = false;
a = bFalse || bFalse; // a = false
a = bFalse || bTrue; // a = true
a = bTrue || bFalse; // a = true
a = bTrue || bTrue; // a = true
}
&& - Оператор «І» є бінарним і повертає істинно тільки тоді, коли обидва операнди дорівнюють істинно, в інших випадках результат буде хибним;
До операторів порівняння належать:
Оператор |
Назва |
> |
більше |
< |
менше |
>= |
більше або дорівнює |
<= |
меьше або рівно |
== |
рівно |
!= |
нерівно |
static void Main(string[] args)
{
bool a;
int b = 2, c = 3, d = 2;
a = b > c; // a = false
a = b < c; // a = true
a = b >= c; // a = false
a = b >= d; // a = true
a = b == c; // a = false
a = b == d; // a = true
a = b != c; // a = true
}
Логічні оператори в першу чергу використовуються в умовних операторах, про які ми поговоримо в наступному уроці.
Домашнє завдання
Є прямокутний трикутник з катетами a= 5, b= 7. Знайдіть площу трикутника, s=?. Використовуючи теорему Піфагора, знайдіть довжину гіпотенузи, с =?. Крім цього, знайдіть довжину гіпотенузи ще й за допомогою теореми косинусів. Кут між катетами, думаю і так зрозуміло, 90 градусів :) Чи не пам'ятаєте формулу - шукайте в пошуковику.