Elementor Header #8

7.Коммутативная операция

1. Введение

Коммутативная операция — это математическая операция, результат которой не зависит от порядка операндов. В C# такие операции широко используются в арифметике и алгебре.


2. Коммутативные операции в C#

В программировании коммутативность означает, что:

a∘b=b∘aa \circ b = b \circ a

Где \(\circ\) — это оператор (например, сложение или умножение).


3. Примеры коммутативных операций

3.1. Сложение (+)

Сложение чисел является коммутативной операцией:

				
					int a = 5, b = 3;
Console.WriteLine(a + b); // 8
Console.WriteLine(b + a); // 8

				
			

Результат не зависит от порядка чисел.

3.2. Умножение (*)

Умножение также является коммутативной операцией:

				
					int x = 4, y = 7;
Console.WriteLine(x * y); // 28
Console.WriteLine(y * x); // 28

				
			

4. Операции, не являющиеся коммутативными

Некоторые операции в C# не являются коммутативными, так как порядок операндов влияет на результат.

4.1. Вычитание (-)
				
					int a = 10, b = 4;
Console.WriteLine(a - b); // 6
Console.WriteLine(b - a); // -6

				
			
Console.WriteLine(b - a); // -6

Результаты разные, значит операция не коммутативна.

4.2. Деление (/)
				
					int x = 20, y = 5;
Console.WriteLine(x / y); // 4
Console.WriteLine(y / x); // 0 (из-за целочисленного деления)

				
			

Порядок важен, поэтому операция не является коммутативной.

4.3. Возведение в степень (Math.Pow)
				
					Console.WriteLine(Math.Pow(2, 3)); // 8
Console.WriteLine(Math.Pow(3, 2)); // 9

				
			
, значит операция не коммутативна.

 

5. Побитовые коммутативные операции

Некоторые побитовые операции также являются коммутативными:

ОператорОписаниеПример
&Побитовое «И»5 & 3 == 3 & 5
``Побитовое «ИЛИ»
^Исключающее ИЛИ5 ^ 3 == 3 ^ 5

 

Пример:

				
					int a = 5, b = 3;
Console.WriteLine(a & b); // 1
Console.WriteLine(b & a); // 1

Console.WriteLine(a | b); // 7
Console.WriteLine(b | a); // 7

Console.WriteLine(a ^ b); // 6
Console.WriteLine(b ^ a); // 6

				
			

Заключение

Коммутативные операции позволяют менять порядок операндов без изменения результата. В C# к таким операциям относятся:

Коммутативные операции:

  • Сложение (+)
  • Умножение (*)
  • Побитовые &, |, ^

Некомиутативные операции:

  • Вычитание (-)
  • Деление (/)
  • Возведение в степень (Math.Pow)

Знание свойств операций помогает писать более понятный и предсказуемый код! 🚀

6. Тестовое задание

Напишите программу, которая:

  1. Запрашивает у пользователя два числа.
  2. Проверяет, являются ли сложение и умножение коммутативными.
  3. Показывает, что вычитание и деление не являются коммутативными.
Пример кода:
				
					using System;

class Program
{
    static void Main()
    {
        Console.Write("Введите первое число: ");
        int num1 = Convert.ToInt32(Console.ReadLine());

        Console.Write("Введите второе число: ");
        int num2 = Convert.ToInt32(Console.ReadLine());

        Console.WriteLine($"Сложение коммутативно: {num1 + num2} == {num2 + num1}");
        Console.WriteLine($"Умножение коммутативно: {num1 * num2} == {num2 * num1}");

        Console.WriteLine($"Вычитание не коммутативно: {num1 - num2} != {num2 - num1}");
        
        if (num2 != 0 && num1 != 0)
        {
            Console.WriteLine($"Деление не коммутативно: {num1 / num2} != {num2 / num1}");
        }
        else
        {
            Console.WriteLine("Деление невозможно из-за деления на ноль.");
        }
    }
}

				
			

Попробуйте написать и запустить этот код, чтобы убедиться в правильности выполнения операций и особенностях работы с числами с плавающей точкой.

logo