Yurijnd.com
Четверг, 06.02.2025, 19:42
Меню сайта

Вход на сайт

Поиск

Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz

  • Статистика

    Онлайн всего: 3
    Гостей: 3
    Пользователей: 0

    Арифметические и логические операции в Си-шарп 

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

    Все операции делятся на два типа: унарные и бинарные. К унарным относятся операции, в которых участвует один операнд. В бинарных операциях – два операнда. Операнд – это данные, которые принимают участие в операции. Например, оператор сложения «+» – бинарный 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); // возводим переменную b в степень 2. Pow() возвращает результат в типе данных double, поэтому мы тут применили явное преобразование. Конечно, можно было обойтись без преобразования, объявив переменную a типа 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), который может принимать только два значения – true или false. Их можно разделить на две категории: простые логические операторы и операторы сравнения.

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

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

     

    static void Main(string[] args)
    {
       bool a, b = true, c = false;
       a = !b; // a = false
       a = !c; // a = true
    }

    || - оператор «ИЛИ» является бинарным и возвращает false только тогда, когда оба операнда равны false, в остальных случаях результат будет 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
    }

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

    static void Main(string[] args)
    {
       bool a, bTrue = true, bFalse = false;
       a = bFalse && bFalse; // a = false
       a = bFalse && bTrue; // a = false
       a = bTrue && bFalse; // a = false
       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
    }

    Логические операторы в первую очередь используются в условных операторах, о которых мы поговорим в следующем уроке.

    Домашнее задание

    Есть прямоугольный треугольник с катетами а=5, b=7. Найдите площадь треугольника, s=?. Используя теорему Пифагора, найдите длину гипотенузы, с=?. Кроме этого, найдите длину гипотенузы еще и с помощью теоремы косинусов. Угол между катетами, думаю и так понятен, 90 градусов :) Не помните формулу - ищите в поисковике.


    PS. Буду очень благодарен, если поделитесь с друзьями этой статьей с помощью кнопок социальных сетей в конце поста.
    Copyright MyCorp © 2025
    Сделать бесплатный сайт с uCoz