Главная страница » C# » 7.Коммутативная операция
Коммутативная операция — это математическая операция, результат которой не зависит от порядка операндов. В C# такие операции широко используются в арифметике и алгебре.
В программировании коммутативность означает, что:
Где \(\circ\)
— это оператор (например, сложение или умножение).
+
)Сложение чисел является коммутативной операцией:
int a = 5, b = 3;
Console.WriteLine(a + b); // 8
Console.WriteLine(b + a); // 8
Результат не зависит от порядка чисел.
*
)Умножение также является коммутативной операцией:
int x = 4, y = 7;
Console.WriteLine(x * y); // 28
Console.WriteLine(y * x); // 28
Некоторые операции в C# не являются коммутативными, так как порядок операндов влияет на результат.
-
)
int a = 10, b = 4;
Console.WriteLine(a - b); // 6
Console.WriteLine(b - a); // -6
Console.WriteLine(b - a); // -6
Результаты разные, значит операция не коммутативна.
/
)
int x = 20, y = 5;
Console.WriteLine(x / y); // 4
Console.WriteLine(y / x); // 0 (из-за целочисленного деления)
Порядок важен, поэтому операция не является коммутативной.
Math.Pow
)
Console.WriteLine(Math.Pow(2, 3)); // 8
Console.WriteLine(Math.Pow(3, 2)); // 9
Некоторые побитовые операции также являются коммутативными:
Оператор | Описание | Пример |
---|---|---|
& | Побитовое «И» | 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
)Знание свойств операций помогает писать более понятный и предсказуемый код! 🚀
Напишите программу, которая:
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("Деление невозможно из-за деления на ноль.");
}
}
}
Попробуйте написать и запустить этот код, чтобы убедиться в правильности выполнения операций и особенностях работы с числами с плавающей точкой.
Телефон: +375 33 910-08-92
Email: info@codefor.tech
Адрес: г. Барановичи, ул. Пирогова, д. 7
© 2024-2025 Все права защищены. CodeFor.