C# - Урок 4 - Операторы арифметические и логические

C# - Урок 4 - Операторы арифметические и логические

В прошлых статьях и видео мы познакомились с типами данных и видами переменных В этом уроке мы поговорим об арифметических и логических операциях, без которых сложно представить какую-нибудь программу.

C# предоставляет множество операторов, которые являются символами, указывающими, какие операции (математические операции, индексирование, вызов функции и т. д.) следует выполнять в выражении. Вы можете перегрузить многие операторы, чтобы изменить их значение при применении к определяемому пользователем типу.

Полный список всех операторов: Основные операторы Унарные операторы Мультипликативные операторы Операторы сложения Операторы сдвига Относительные операторы и операторы тестирования типа Операторы равенства Оператор логического И Оператор логического исключающего ИЛИ Оператор логического ИЛИ Условный оператор И Условный оператор ИЛИ Оператор объединения с NULL Условный оператор Назначение и лямбда-операторы Переполнение при арифметической операции

Все операции делятся по количеству учавствоваших данных (операндов).

Бинарные операции

В бинарных операциях – два операнда. Например, оператор сложения «+» – бинарный 2+3, здесь операндами являются числа 2 и 3.

Список бинарных арифметических операций:

a + b Сложение a - b Вычитание a / b Деление a * b Умножение a % b остатка от деления

рассмотрим примеры в программе

int a, b; int plus, minus, ymnog, ostatok; float del, del2;

Console.Write("Введите 1 число \t"); a = Convert.ToInt32(Console.ReadLine());

Console.Write("\n\nВведите 2 число \t"); b = Convert.ToInt32(Console.ReadLine());

//складываем (+) plus = a + b;

//вычитаем (-) minus = a - b;

//умножаем (*) ymnog = a * b;

//делим целочисленно (/) del = a / b; //при делении 9/5 результатом будет число 1

//делим точно (/) del2 = (float)a / b; //Чтобы получить точный результат с десятичной //точкой, нужно чтобы делимое и/или делитель //были типа float или double. //Остаток (%) ostatok = a % b;

//вывод результатов Console.WriteLine("Сложение \t\t", plus); Console.WriteLine("Вычитание \t\t", minus); Console.WriteLine("Умножение \t\t", ymnog); Console.WriteLine("Деление целочисленное \t", del); Console.WriteLine("Деление дробное \t", del2); Console.WriteLine("Остаток \t\t", ostatok);

Вводим 1 число 13 , а 2 число 6 и видим результаты:

Теперь введем числа 20 и 5

Как видите, результат целочисленного и точного деления одинаковый, а остаток = 0

Унарные операции

Теперь перейдем к унарным операциям, в которых участвует один операнд. Унарных арифметических операторов в Си-шарп есть всего два: инкрементация «++» и декрементация «--»;

Инкрементация увеличивает операнд на единицу, а декрементация - уменьшает на единицу.

int a = 0, b = 5; a++; // a=1; Инкрементация увеличивает операнд на единицу b--; // b=4 декрементация - уменьшает на единицу

//вывод результатов Console.WriteLine("а = 0"); Console.WriteLine("а++ = ", a++);

запускаем проект и видим результат.

Инкрементация и декрементация может быть префиксной и постфиксной.

При Префиксной форме оператор стоит перед операндом, а при постфиксной-после. Префиксная форма сначала увеличивает(уменьшает) значение, и после этого выполняются остальные действия, а при постфиксной форме наоборот - сначала выполнятся все действия, а после увеличится(уменьшится) значение:

int a1 = 2, b1 = 3, b2 = 3, c1, с2; c1 = a1 + ++b1; // c1 = 6, сначала инкремент, потом сложение с2 = a1 + b2++; // c2 = 5, сначала сложение, потом инкремент Console.WriteLine("\nc1 = a1 + ++b1 = ", c1); Console.WriteLine("d1 = a1 + b2++ = ", с2);

В первом примере мы сначала увеличиваем значение переменной b1, а затем складываем во втором в начале находим сумму, а затем меняем значение переменной b2.

Везде где можно использовать инкрементацию/декрементацию стоит это делать, так как она работает быстрее оператора сложения/вычитания.

В Си-шарп также есть возможность использования краткой формы выражения:

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;

В Visual Basic.net мы также использовали вариант a += b когда складывали строки.

Класс Math

Коме простых действий есть сложные вычисления такие как возведение в степень, нахождение тригоном функций, нахождение квадратного корня и другие. Все они собраны в Математическом Классе (Math)

b = (float)Math.Pow(a, 2); //возведение числа a в степень 2

Console.WriteLine("квадратный корень = ", a, c);

Подробней про этот класс на mdsn.

Для нахождения косинуса и синуса используются cos([угол в радианах]) и sin([угол в радианах]) соответственно.

Чтобы перевести градусы в радианы, необходимо значение в градусах умножить на Пи и разделить на 180. Число Пи объявлено константой в классе Math. 180 [градусов] = пи [радиан].

вводим переменную и задаем ей в начале значение кос 180 - что равно -1 , а за тем син 30 = 0,5

double a; a = Math.Cos(180 * Math.PI / 180); // переводим 60 градусов в радианы Console.WriteLine(a); // выводит на экран -1 a = Math.Sin(30 * Math.PI / 180); Console.WriteLine(a); // выводит на экран 0.5 Console.ReadKey();

Логические операторы в Си-шарп

Логические операторы в Си-шарп служат для работы с логическим типом данных (bool), который может принимать только два значения – true или false. Их можно разделить на две категории: простые логические операторы и операторы сравнения.

В Си-шарп есть следующие логические операторы:

! – оператор «НЕ» является унарным и возвращает противоположное значение операнда.

bool a, b = true, c = false; a = !b; // a = false a = !c; // a = true

|| - оператор «ИЛИ» является бинарным и возвращает false только тогда, когда оба операнда равны false, в остальных случаях результат будет true;

static void Main(string[] args)

📎📎📎📎📎📎📎📎📎📎