Вы находитесь на странице: 1из 5

Операция

(программирован
ие)
Текущая версия страницы пока не проверялась опытными участниками и может значительно отличаться от
версии , проверенной 19 января 2017 года; проверки требуют 6 правок .

Опера́ция — конструкция в языках программирования, аналогичная по записи


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

Наиболее часто применяются арифметические, логические и строковые операции. В


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

Операция и инструкция

Английское слово operator, соответствующее термину «операция», иногда ошибочно


переводят как «оператор». На самом деле (по историческим причинам) русский
термин «оператор» обозначает то же, что и «инструкция», которой соответствует
английское statement[1]. Путаница усугубилась тем, что в C присваивание и инкремент/
декремент являются и операторами, и операциями.
Операция и функция

Фактически, операция — это та же функция, но записываемая особым образом. По


этой причине логично иметь возможность определять операции для произвольных
типов таким же образом, как и методы — чтобы можно было работать с ними точно
так же, как и с элементарными типами. Эта возможность называется «перегрузка
операций» и присутствует в большинстве языков 4—5 поколений. В таких языках
транслятор фактически подставляет вместо выполнения операции вызов
соответствующей ей функции.

Типы операций

Операции делятся по количеству принимаемых аргументов на:

унарные — один аргумент (отрицание, унарный минус);

бинарные — два аргумента (сложение, вычитание, умножение и т. д.);

тернарные — три аргумента («условие ? выражение1 : выражение2»).

Синтаксис операций

Поскольку операции аналогичны по записи алгебраическим выражениям, для них, как


и для последних, существует 3 варианта синтаксиса:

префиксная (польская) (+ab) нотация;

инфиксная (a+b) нотация;

постфиксная (обратная польская) (ab+) нотация.

Для бинарных и тернарных (с 3 операндами) операций в подавляющем большинстве


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

Список типовых операций

Операции обычно переходят из языков в родственные — например, операции языка С


присутствуют в языках C++, Java, JavaScript и многих других.
Языки
Знак Выполняемая операция
программирования

a = b или a := b присваивание практически все

Арифметические

a + b сложение аргументов практически все

a - b вычитание практически все

-a изменение знака практически все

a / b , a div b деление практически все

остаток от деления (деление по


a % b , a mod b практически все
модулю)

увеличение на 1 с
a++
присваиванием (инкремент)

С, Java, PHP
a-- уменьшение на 1 с
присваиванием (декремент)

BASIC, Fortran, Ruby,


a ^ b или a ^^ b или
возведение в степень Python, Haskell (все
a ** b
3)

Логические

a & b , или a && b , или конъюнкция (логическое


a and b умножение)

a | b , или a || b , или дизъюнкция (логическое


a or b сложение)

инверсия (логическое
~a , или !a , или not a
отрицание)
практически все
a = b или a == b

проверка на равенство

a <> b или a /= b или


проверка на неравенство
a != b

a > b , a >= b
больше, больше или равно

a < b , a <= b меньше, меньше или равно

a ? b : c тернарный условный оператор С, C++, Java, PHP


(если условие a истинно, всё
выражение равно b, иначе c)

Строковые

a + b или a & b или


a.b (PHP) или a..b конкатенация (слияние) практически все
(Lua) или a ++ b (Haskell)

Битовые

a & b, a and b (Pascal, Kotlin), a


Побитовая конъюнкция C/C++, Java, C#,
/\ b (Prolog), a .&. b (Haskell)
Ruby, Python, Pascal,
a | b, a or b (Pascal, Kotlin), a \/
Побитовая дизъюнкция Kotlin, Prolog, Haskell
b (Prolog), a .|. (Haskell)

C/C++, Java, C#,


~a, not a (Pascal), inv a (Kotlin),
Побитовое отрицание Ruby, Python, Pascal,
\a (Prolog)
Kotlin, Prolog

a ^ b, xor (Pascal, Kotlin) Исключающее ИЛИ

a << b, a shl b (Pascal, Kotlin) Побитовый сдвиг влево C/C++, Java, C#,
Ruby, Python, Pascal,

Kotlin
a >> b, a shr b (Pascal, Kotlin) Побитовый сдвиг вправо

См. также

Логическое выражение

Битовые операции

Операнд

Примечания

1. Перевод компьютерных терминов. Часть 1. Процессор (http://www.lingvoinfo.com/?li


nk=104) . Дата обращения: 7 декабря 2010. Архивировано (https://web.archive.org/w
eb/20130923153803/http://lingvoinfo.com/?link=104) 23 сентября 2013 года.
В статье не хватает ссылок на источники (см. также рекомендации по поиску).
Узнать больше
Источник —
https://ru.wikipedia.org/w/index.php?
title=Операция_(программирование)&oldid=12
0763663


Последний раз редактировалась 2 месяца назад участником InternetArchiveBot

Вам также может понравиться