Что такое операция в программировании
Перейти к содержимому

Что такое операция в программировании

  • автор:

Операция (программирование)

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

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

Английское слово 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 деление по модулю С, Java, PHP, Pascal
a++
a—
увеличение на 1 с присваиванием (инкремент)
уменьшение на 1 с присваиванием (декремент)
С, Java, PHP
a ^ b или a ** b возведение в степень BASIC, Fortran, Ruby
Логические
a & b , или a && b , или a and b И практически все
a | b , или a || b , или a or b ИЛИ
~a , или !a , или not a НЕ
a = b или a == b

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

меньше, меньше или равно

См. также

  • Логическое выражение
  • Операнд

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

Ссылки

  1. Перевод компьютерных терминов. Часть 1. Процессор

Операции

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

Минутка юмора

Приходит программист к пианисту посмотреть на новый рояль. Долго ходит вокруг, хмыкает, потом заявляет: Клавиатура неудобная: всего 84 клавиши, половина функциональных, ни одна не подписана, хотя. shift нажимать ногой — это оригинально!

Предложить статью

Самое интересное

  • Log – натуральный логарифм
  • ShellExecute – открыть папку или приложение
  • Pow – возведение числа в степени
  • Chart – графики и диаграммы
  • StringGrid – таблица строк и столбцов

printОперации

printАрифметические операции и присваивание

Следует различать термины «операция» (выполняемое действие) и «оператор» (обозначение для операции). Во-первых, в разных языках программирования для одной и той же операции могут применяться разные обозначения, например, деление нацело в Python обозначается «//«, а в Pascal — «div«. Во-вторых, одно обозначение может использоваться для разных операций в зависимости от типа аргументов, например, в С++ «<<`` может означать операцию сдвига битов для целых чисел или операцию вывода для потоков ввода-вывода. В С такая неоднозначность только одна: символ ``/`` может обозначать обычное деление или деление нацело, если оба аргумента операции -- целые числа.

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

«`c
int a; // a=?
a=5; // a=5
a=7.5; // a=7
a=1e10; // переполнение a=INT_MAX
«`

Можно присвоить значение нескольким переменным:

«`c
int a,b,c;
a=b=c=1; // a=1, b=1, c=1
double x;
x=a=7.5; // эквивалентно a=7.5; x=a;
«`

Для выполнения арифметических действий используются операции «x+y«, «x-y«, «x*y« и «x/y«. Операции умножения и деления имеют более высокий приоритет, чем сложение и вычитание, при необходимости используются скобки. Арифметические операции выполняются слева направо. Для смены знака используется операция «-x«.
Тип результата арифметической операции определяется максимумом из размеров аргументов, поэтому при вычислениях с целыми возможно переполнение. Если один из аргументов имеет вещественный тип, то второй аргумент тоже преобразуется к вещественному типу.
«`c
double a;
a = 2+2*2; // a=6
a = -a; // a=-6
a=10000*1000000; // переполнение a=1410065408
a=10000.0*1000000; // a=1e10
«`

Если оба аргумента операции «x/y« являются целыми, то выполняется деление нацело. Для выполнения обычного деления один из аргументов операции нужно преобразовать в вещественное. Для этого нужно использовать операцию преобразования: «(тип)e«.
Для нахождения остатка от деления используются операция «x%y«, оба аргумента операции должны иметь целый тип.

Часто при выполнении вычислений требуется выполнить одно арифметическое действие на переменной и результат вычислений поместить в ту же переменную. Для этого в языке С были добавлены специальные операции «x+=y«, «x-=y«, «x*=y«, «x/=y« и «x%=y«.

«`c
int a=5;
a+=6; // эквивалентно a=a+6; результат a=11
a*=a+1; // эквивалентно a=a*(a+1); результат a=132
«`

Пи выполнении циклов часто нужно изменять значение переменной на 1. Для этих целей в С используются операции «++x« (инкремент) и «—x« (декремент).

«`
int a=1;
++a; // эквивалентно a+=1; результат a=2
—a; // эквивалентно a-=1; результат a=1
«`

Кроме префиксной формы инкремента и декремента в С иногда используется постфиксные формы этих операций: «x++« и «x—«. Отличаются они возвращаемым значением, результатом постфиксной формы является значение изменяемой переменной до изменения.

«`
int a, b=1;
a=++b; // результат a=2, b=2
// эквивалентно оператору a=(b=b+1);
a=b++; // результат a=2, b=3
// эквивалентно операторам int temp=b; b=b+1; a=temp;
«`

Порядок вычисления аргументов большинства бинарных операций в языке С определяется компилятором и может зависеть от его настроек. Поэтому не рекомендуется использовать в одном выражении несколько операций, изменяющих одну и ту же переменную, например «++i — ++i«.

Операцию присваивания можно использовать внутри выражения, чтобы запомнить промежуточные результаты. С помощью операции «x,y« можно сделать несколько последовательных вычислений, сначала вычисляется левый аргумент операции, затем правый и его значение является результатом этой операции.

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

Операция (программирование)

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

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

Oops something went wrong:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *