Для чего нужен оператор

от admin

Операторы

Одним из ключевых понятий любого языка программирования является понятие "оператор". Без овладения этим понятием в полной мере написание программ не представляется возможным. От того, насколько быстро и правильно программист усвоит, что такое операторы и как они применяются в программе, зависит, как скоро он начнёт писать программы.

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

Любая программа содержит операторы. Наиболее близкой аналогией оператору является предложение. Операторы образуют программу так же, как обычные предложения образуют текст рассказа или повести.

Свойства операторов

Различаются два вида свойств операторов — общeе и собственные.

Общее свойство операторов

Все операторы имеют одно общее свойство — они исполняются.

Можно сказать, что оператор — это инструкция, содержащая руководство к действию (описание приказа). Для компьютера выполнять запущенную на нём программу означает (последовательно переходя от одного оператора к другому) выполнять предписания (инструкции, приказы), содержащиеся в операторах.

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

Собственные свойства операторов

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

Типы операторов

Различают два типа операторов — простые и составные.

Простые операторы

Простые операторы в языке MQL4 заканчиваются знаком ";" (точка с запятой). С помощью этого разделителя компьютер может определить, где заканчивается один и начинается другой оператор. Знак ";" (точка с запятой) так же необходим в программе, как "." (обычная точка) необходима в обычном тексте для разделения предложений. Один оператор может располагаться в нескольких строках, несколько операторов можно располагать в одной строке.

Каждый простой оператор заканчивается знаком ";" (точка с запятой).

Примеры простых операторов:

Составные операторы

Составной оператор состоит из нескольких простых, разделенных знаком ";", и оформляется фигурными скобками. Чтобы можно было использовать несколько операторов там, где ожидается присутствие только одного, предусматривается составной оператор (который также называют "блоком"). Список операторов в составном операторе выделяется фигурными скобками, а свидетельством окончания составного оператора является наличие закрывающей фигурной скобки.

Пример использования составного оператора в условном операторе. Сначала идет условный оператор if(выражение), за ним следует составной оператор. Составной оператор содержит список исполняемых операторов.


Рис. 17. Составной оператор.

Тело составного оператора заключено в фигурные скобки. Каждый составной оператор заканчивается закрывающей фигурной скобкой.

Примеры составных операторов:

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

Примеры использования простых операторов:

Несколько простых операторов могут быть объединены в составной оператор без строгой необходимости.

Это — редко встречающаяся, но вполне допустимая конструкция. В этом случае операторы, заключённые в фигурные скобки, называют блоком операторов. Такое использование допустимо. Обрамление фигурными скобками делается по воле программиста для удобства представления кода. Пример блока операторов:

Требования к операторам

Операторы должны быть записаны в текст программы в соответствии с правилами форматирования (представления в программе). Ни один оператор не может быть составлен вне этих правил. Если же программа содержит оператор, составленный вопреки правилам форматирования, то при компиляции программы редактор MetaEditor выдаст сообщение об ошибке. Это значит, что в таком виде программа (содержащая ошибочный оператор) не может использоваться.

Выражение "Формат оператора" следует понимать как набор правил форматирования, присущих виду оператора. Каждый вид оператора имеет свой формат. Форматы операторов подробно рассматриваются в соответствующих разделах главы Операторы.

Порядок исполнения операторов

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

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

Это значит, что и простые и составные операторы исполняются просто подряд, один за другим (подобно тому, как мы читаем строки стихов — сначала верхнюю строку, потом следующую ниже, следующую и т.д.). Если в одной строке находится несколько операторов, то они исполняются последовательно один за другим слева направо, после чего исполняются операторы в следующей строке, расположенной ниже.

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

Пример написания и исполнения операторов

По внешнему виду текст программы (содержащий операторы) напоминает обычный текст или записи математических уравнений. Однако это сходство — только внешнее. В обычном тексте допускается произвольная последовательность записей, в то время как в программе необходимо соблюдение строго определённого порядка.

В качестве примера рассмотрим, как работает оператор присваивания. Для этого возьмём решение простой системы линейных уравнений и сравним, как некоторые математические вычисления отражаются в обычном тексте и как — в тексте программы, в операторах.

Задача 7. Дана система уравнений:
Y = 5
Y — X = 2
Требуется найти численное значение переменной Х.

Вариант 1. Текст составлен обычным способом на листе бумаги.

Вариант 2. Текст программы.

И в первом, и во втором варианте записи (строки) содержат законченный смысл. Тем не менее, строки из первого варианта не могут в таком виде использоваться в программе, потому что их вид не соответствует формату оператора присваивания.

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

Оба оператора в Варианте 2 являются операторами присваивания. Любой оператор присваивания отдаёт компьютеру буквально следующий приказ:

Вычислить значение выражения справа от знака равенства и присвоить полученное значение переменной слева от знака равенства.

По этой причине в операторе присваивания слева от знака равенства не может находиться ничего, кроме переменной. Например, запись 5 — Х = 2, используемая в первом варианте, содержит ошибку, потому что набор символов 5 — Х не является переменной. Поэтому не существует и ячейки памяти, в которую должно быть помещено численное значение выражения, вычисленного справа от знака равенства.

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

1. Переход к оператору (строка 1).

2. Обращение к правой части оператора (правая часть находится между знаком равенства и точкой с запятой).

3. Компьютер обнаружил, что правая часть оператора содержит численное значение.

4. Запись численного значения (5) в ячейку памяти переменной Y.

5. Переход к следующему оператору (строка 2).

6. Обращение к правой части оператора.

7. Компьютер обнаружил, что правая часть оператора содержит выражение.

8. Вычисление численного значения правой части оператора (5 — 2).

9. Запись численного значения (3) в ячейку памяти этой переменной Х.

Выполнение компьютером действий 1 — 4 есть исполнение первого оператора (строка 1). Выполнение компьютером действий 5 — 9 есть исполнение второго оператора (строка 2).

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

Например, при решении математических задач производится немало промежуточных вычислений. Они могут помочь математику найти правильное решение, но оказываются бесполезными с точки зрения программирования. В качестве операторов в программу необходимо вносить только содержательные вычисления: например, исходные значения одних переменных или формулы для вычислений других. В предыдущем примере первый оператор несёт информацию о численном значении переменной Y, а второй оператор — формулу для вычисления интересующей нас переменной X.

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

с точки зрения математической логики и здравого смысла кажется ошибочной. Но она вполне приемлема, если воспринимать её как оператор (кстати, именно этот оператор имеет широкое применение).

В этом операторе вычисляется новое значение переменной Х: выполняя оператор присваивания (то есть вычисляя значение правой части оператора), компьютер обратится к ячейке памяти, несущей численное значение переменной Х (например, в момент обращения оно окажется равным 3), вычислит выражение в правой части оператора присваивания (3 + 1) и полученное значение (4) запишет в ячейку памяти переменной Х. В результате исполнения этого оператора присваивания переменная Х получит новое значение — (4). Компьютер будет удерживать это значение переменной Х до тех пор, пока переменная Х не встретится в левой части от знака равенства в каком-нибудь другом операторе присваивания. В этом случае будет вычислено новое значение этой переменной, которое она будет удерживать до следующего возможного изменения.

Операторы

Опера́тор (позднелат. operator — работник, исполнитель, от operor — работаю, действую) — то же, что отображение.

Термин оператор встречается в разных разделах математики, его точное значение зависит от раздела. Как правило, под операторами понимают какие-то особые (для данной области математики) отображения, например в функциональном анализе под операторами понимают отображение ставящее в соответствие функции другую функцию («оператор на пространстве функций» звучит лучше, чем «функция от функции»).

Наиболее часто встречающиеся операторы:

    : Операторы на пространствах функций (дифференцирование, интегрирование, свертка с ядром, преобразование Фурье). : Отображения (в особенности линейные) векторных пространств (проекторы, повороты координат, гомотетии, умножения вектора на матрицу). : Преобразование последовательностей (свертки дискретных сигналов, медианный фильтр и т. п.).

Содержание

Основная терминология

Пусть оператор A действует из множества X в множество Y .

x\in X

  • Оператор может быть не всюду определен; тогда говорят о его области определения DA = D(A) .
  • Для результат применения оператора A к x обозначают A(x) или Ax .
  • Если X и Y — векторные пространства, то в множестве всех операторов из X в Y можно выделить класс линейных операторов.
  • Если X и Y — векторные топологические пространства, то в множестве операторов из X в Y естественно выделяется класс непрерывных операторов, а также класс линейных ограниченных операторов и класс линейных компактных операторов (называемые также вполне непрерывными).

Простые примеры

Оператор, действующий над пространствами функций — это правило, согласно которому одна функция преобразуется в другую. Преобразование функции x(t) согласно правилу A в другую функцию y(t) имеет вид y(t) = A<x(t)> или, проще, y = Ax .

Примерами подобных преобразований — умножение на число: y(t) = cx(t) и дифференцирование: \scriptstyle y(t)=\frac<dx(t)></p>
<dt>» width=»» height=»» />. Соответствующие операторы называются операторами умножения на число, дифференцирования, интегрирования, решения дифференциального уравнения и т. д.</p>
<p>Определяя оператор, мы рассматривали только преобразование функции <i>x</i>(<i>t</i>) в другую функцию <i>y</i> того же аргумента <i>t</i> . Такое сохранение аргумента при определении оператора вовсе не является обязательным: оператор может преобразовывать функцию одного аргумента в функцию другого аргумента, например:</p>
<p> <img decoding=

или преобразование Фурье из временной в частотную область:

F(\omega)=\mathcal<F>\<f(t)\>.» width=»» height=»» /></p>
<p>Отличие оператора от простой суперпозиции функций в данном случае заключается в том, что значение функции <i>y</i> , вообще говоря, в каждой точке <i>t</i> зависит не только от <i>x</i>(<i>t</i>) , а от значений функции <i>x</i> во <i>всех</i> точках <i>t</i> . Поясним на примере преобразования Фурье. Значение этого преобразования (спектр функции) в точке ω меняется при непрерывном изменении исходной функции в окрестности любой точки <i>t</i> .</p>
<p>Изучением общих свойств операторов и применением их к решению различных задач занимается теория операторов. Например, оказывается, что у оператора умножения вектора на матрицу и оператора свёртки функции с весом есть много общих свойств.</p>
<p><img decoding=

Фундаментальным для практики является класс так называемых линейных операторов. Он также является наиболее исследованным. В качестве примера линейного оператора можно привести операцию умножения n -мерного вектора на матрицу размером . Этот оператор отображает n -мерное пространство векторов в m -мерное.

Линейные операторы

Оператор L (действующий из векторного пространства в векторное же) называется линейным однородным (или просто линейным), если он обладает следующими свойствами:

  1. может применяться почленно к сумме аргументов: L(x1 + x2) = L(x1) + L(x2) ;
  2. скаляр (постоянную величину) c можно выносить за знак оператора: L(cx) = cL(x) ;
Читать:
Как отменить коммит в pycharm

Из 2) следует, что для линейного однородного оператора справедливо свойство L(0) = 0 .

Оператор L называется линейным неоднородным, если он состоит из линейного однородного оператора с прибавлением некоторого фиксированного элемента:

L\<x\>=L_0\<x\>+\varphi» width=»» height=»» />,</p>
<p>где <i>L</i><sub>0</sub> — линейный однородный оператор.</p>
<p>В случае линейного преобразования дискретных функций (последовательностей, векторов) новые значения функций <i>y</i><sub><i>k</i></sub> являются линейными функциями от старых значений <i>x</i><sub><i>k</i></sub> :</p>
<p><img decoding=

В более общем случае непрерывных функций двумерная матрица весов принимает вид функции двух переменных , и называется ядром линейного интегрального преобразования:

\varphi(t)=\int\limits_V\!K(t,\omega)f(\omega)\,d\omega=K\<f(\omega)\>.» width=»» height=»» /></p>
<p><img decoding=

Функция-операнд f(ω) в данном случае называется спектральной функцией. Спектр может быть и дискретным, тогда f(ω) заменяется вектором W . В этом случае представимо конечным или бесконечным рядом функций:

\varphi(t)=\sum_<i=1>^n T_i(t)w_i.» width=»» height=»» /></p>
<h3>Единичный (тождественный) оператор</h3>
<p>Оператор <i>E</i> , ставящий в соответствие каждому вектору   alt=»\mathbf» width=»» height=»» /> сам вектор   alt=»\mathbf» width=»» height=»» />, очевидно, линейный; он называется единичным или тождественным оператором.</p>
<p>Частный случай линейного оператора, возвращающий операнд в неизменном виде:</p>
<p><img decoding=

то есть как матричный оператор определяется равенством

\sum_k E_<ik>\,a_k=a_i» width=»» height=»» /></p>
<p>и как интегральный оператор — равенством</p>
<p><img decoding=

.

i\neq k

Единичная матрица Eik записывается большей частью с помощью символа δik = δki (символ Кронекера). Имеем: δik = 1 при i = k и δik = 0 при .

Единичное ядро E(x,t) записывается в виде E(x,t) = δ(tx) (дельта-функция). δ(xt) = 0 всюду, кроме x = t , где функция становится бесконечной и притом такой, что

\int\limits_\alpha^\beta\!\delta(x-t)\,dt=1

.

Запись

В математике и технике широко применяется условная форма записи операторов, аналогичная алгебраической символике. Такая символика в ряде случаев позволяет избежать сложных преобразований и записывать формулы в простой и удобной форме. Аргументы оператора называются операндами, число операндов называется арностью оператора (например, одинарный, бинарный). Написание операторов можно систематизировать следующим образом:

  • префиксная: где первым идёт оператор и операнды следом, например:
  • постфиксная: если символ оператора следует за операндами, например:
  • инфиксная: оператор вставляется между операндами, применяется преимущественно с двоичными операторами:
  • позиционная: знак оператора опускается, оператор присутствует неявно. Чаще всего не пишется оператор произведения (переменных, численного значения на физическую единицу, матриц, композиция функций), например, 3 кг. Такая способность одного оператора действовать над разнородными сущностями достигается перегрузкой операторов;
  • подстрочная или надстрочная слева или справа; главным образом используется для операций возведения в степень и выбора элемента вектора по индексу.

Как можно заметить, запись оператора часто принимает сокращённую форму от общепринятой записи функций. При использовании префиксной или постфиксной записи скобки опускаются в большинстве случаев, если известна арность оператора. Так, одинарный оператор Q над функцией f обычно для краткости записывается Qf вместо Q(f) ; скобками пользуются для ясности, например, операция над произведением Q(fg) . Q , действующий на f(x) , также записывают (Qf)(x) . Для обозначения некоторых операторов вводятся специальные знаки, например, унарные n! (факториал «!», справа от операнда), − n (отрицание, слева) или каллиграфические символы, как в случае с Фурье-преобразованием функции \mathcal<F>\<f(t)\>» width=»» height=»» />. Возведение в степень <i>n</i> <i>x</i> можно считать бинарным оператором двух аргументов либо степенной или показательной функцией одного аргумента.</p>
<h2>Оператор (математика)</h2>
<p>Термин <i>оператор</i> встречается в разных разделах математики, его точное значение зависит от раздела. Как правило, под операторами понимают какие-то особые (для данной области математики) отображения, например в функциональном анализе под операторами понимают отображение ставящее в соответствие функции другую функцию («оператор на пространстве функций» звучит лучше, чем «функция от функции»).</p>
<p>Наиболее часто встречающиеся операторы:</p>
<ul>
: Операторы на пространствах функций (дифференцирование, интегрирование, свертка с ядром, преобразование Фурье). : Отображения (в особенности линейные) векторных пространств (проекторы, повороты координат, гомотетии, умножения вектора на матрицу). </ul>
<h3>Содержание</h3>
<h3>Основная терминология</h3>
<p>Пусть оператор <img decoding=

SQL
  • Операторы в программировании

Wikimedia Foundation . 2010 .

Полезное

Смотреть что такое «Оператор (программирование)» в других словарях:

Оператор — В Викисловаре есть статья «оператор» Оператор может означать: Оператор (математика)  то же, что математическая функция; Оператор (биология)  последовательность ДНК, принимающая участие в регуляции активности генов; Оператор… … Википедия

оператор — 4.22 оператор (operator): Какой либо объект, осуществляющий работу системы. Примечание 1 Роль оператора и роль пользователя могут возлагаться одновременно или последовательно на одно и то же лицо или организацию. Примечание 2 В контексте данного… … Словарь-справочник терминов нормативно-технической документации

Программирование — процесс составления упорядоченной последовательности действий (программы (См. Программа)) для ЭВМ; научная дисциплина, изучающая программы для ЭВМ и способы их составления, проверки и улучшения. Каждая ЭВМ является автоматом,… … Большая советская энциклопедия

ПРОГРАММИРОВАНИЕ ТЕОРЕТИЧЕСКОЕ — математическая дисциплина, изучающая математич. абстракции программ, трактуемых как объекты, выраженные на формальном языке, обладающие определенной информационной и логич. структурой и подлежащие исполнению на автоматич. устройствах. П. т.… … Математическая энциклопедия

оператор ЭЭ оборудования и/или ЭЭ систем — 3.17. оператор ЭЭ оборудования и/или ЭЭ систем (operator of an EDM equipment and/or system): Человек, который осуществляет программирование, установку, регулировку, наблюдение за работой, техническое обслуживание и чистку станка. Источник: ГОСТ Р … Словарь-справочник терминов нормативно-технической документации

Генетическое программирование — В искусственном интеллекте генетическое программирование (ГП) автоматическое создание или изменение программ с помощью генетических алгоритмов. С помощью этой методологии «выращиваются» программы, всё лучше и лучше (в соответствии с определенной… … Википедия

Функциональное программирование — Парадигмы программирования Агентно ориентированная Компонентно ориентированная Конкатенативная Декларативная (контрастирует с Императивной) Ограничениями Функциональная Потоком данных Таблично ориентированная (электронные таблицы) Реактивная … Википедия

Структурное программирование — Эта статья или раздел нуждается в переработке. Пожалуйста, улучшите статью в соответствии с правилами написания статей … Википедия

Цикл (программирование) — У этого термина существуют и другие значения, см. цикл. В данной статье или разделе имеется список источников или внешних … Википедия

Функциональное программирование на Питоне — Функциональное программирование является одной из парадигм, поддерживаемых языком программирования Python. Основными предпосылками для полноценного функционального программирования в Python являются: функции высших порядков, развитые средства… … Википедия

Похожие статьи