Константы и переменные
Понятия "константа" и "переменная" рассматриваются в одном разделе, потому что эти понятия очень близки по своей сущности.
Понятие константы
Константа — это составная часть программы; объект, имеющий значение.
Понятие "константа" в программе аналогично тому же понятию, используемому в математических уравнениях.
Это — неизменная величина. Для более полного описания сущности константы, используемой в алгоритмическом языке, обратимся к известным физическим и математическим константам.
Человечеством открыты такие константы, значение которых от нас не зависит. К ним в физике относится, например, ускорение свободного падения, равное 9,8 м/с/с, а в математике - число пи = 3,14. Константы такого рода не могут быть признаны аналогией константы в алгоритмическом языке.
В математических уравнениях также используется понятие константы. Например, в уравнении Y = 3 * X + 7 числа 3 и 7 являются константами. Значение таких констант в полной мере зависит от воли человека, составившего уравнение. Это - ближайшая аналогия констант, используемых в программах на MQL4.
Константа (в виде значения) заносится программистом в код на этапе его создания. Константа характеризуется только своим значением, поэтому термины
"константа" и "значение константы" являются полными синонимами.
Примеры констант:
37, 3.14, true, "Kazan"
Рис. 4. Константа в памяти компьютера.
Свойства констант
Свойством константы является её способность удерживать значение, заданное программистом,
в течение времени работы программы и сообщать это значение программе
при запросах программы (рис. 5). Для каждой константы, содержащейся в программе, компьютер
отводит часть памяти необходимого размера. Значение константы не может быть изменено во время исполнения программы ни программистом, ни компьютером (рис. 6).
|
Значение константы всегда остаётся неизменным. |
Рис. 5. Состояние ячейки памяти константы при сообщении значения программе.
|
Значение константы не может быть изменено в процессе работы программы. |
Рис. 6. Изменение значения константы во время работы программы невозможно.
Понятие переменной
Переменная - это составная часть программы, имеющая значение и название.
Понятие переменной в языке MQL4 аналогично понятию переменной, принятому в математике. Разница между ними состоит лишь в том, что значение переменной в математике подразумевается, а значение переменной в исполняющейся программе хранится в специально отведенной для этого ячейке памяти компьютера.
Термин "идентификатор переменной" является полным синонимом терминов "имя переменной" и "название переменной". Переменная заносится создателем кода в его текст на этапе программирования в виде имени переменной. Имя переменной (идентификатор) может состоять из букв, цифр, знака подчёркивания. Однако начинаться оно должно с буквы. Язык MQL4 чувствителен к регистру букв, т.е. S и s - не одно и то же.
Примеры идентификаторов переменных: Alpha, alFa, beta, NuMbEr, Num, A_37, A37,
qwerty_123
Следующие идентификаторы представляют названия разных переменных: a_22 и А_22;
Massa и MASSA.
Примеры значений переменных: 37, 3.14, true, "Kazan".
Свойства переменной
Свойством переменной является её способность получать некоторое значение от программы, удерживать его в течение времени работы программы и сообщать это значение программе при запросах программы. Для каждой переменной в программе компьютер отводит часть памяти необходимого размера. Обратимся к рис. 7 и проследим, как устроены переменные.
Рис. 7. Переменная в памяти компьютера.
В ячейке памяти компьютера содержится значение переменной. Это значение может быть затребовано для обработки и изменено программой.
Имя переменной никогда не изменяется. При создании кода программист может назначить переменной любое имя, но с момента, когда готовая программа запущена в
работу, ни у программиста, ни у компьютера, ни у программы нет технической возможности изменить название переменной.
Если на пути выполнения программы встречается имя переменной, то программа обращается к этой переменной, чтобы получить для обработки её значение. Если программа обратилась к переменной, последняя сообщает программе своё значение. При этом значение переменной остаётся неизменным. Программа же получает в своё распоряжение копию значения, содержащегося в ячейке памяти, выделенной для этой переменной (рис. 8).
|
При сообщении значения переменной программе оно остаётся неизменным. Название (имя) переменной никогда не изменяется. |
Рис. 8. Состояние ячейки памяти переменной при сообщении значения программе.
В течение некоторого времени переменная не имеет отношений с исполняемой программой. В это время программа может обращаться к другим переменным или производить необходимые вычисления. В период между случаями общения с программой переменная удерживает своё значение, т.е. сохраняет его неизменным.
В соответствии с выполняющимся алгоритмом, заложенным в программу, может потребоваться изменение значения переменной. В этом случае программа сообщает переменной её новое значение, а переменная получает это значение от программы. При этом в ячейке памяти производятся необходимые преобразования, в результате которых предыдущее значение переменной удаляется, а на его месте образуется новое значение переменной, сообщённое программой (рис. 9).
|
Значение переменной может быть изменено в результате воздействия программы. Название (имя) переменной остаётся неизменным всегда. |
Рис. 9. Состояние ячейки памяти переменной при получении значения от программы.
Примеры констант и переменных в программе
В программе константы и переменные встречаются в операторах. В данном тексте программы А и В являются переменными, а 7 и 3 - константами:
A = 7;
B = A + 3;
Проследим, как программа работает с константами и переменными. Исполняя эти строки, программа выполнит следующие шаги:
Первая строка:
- Константа 7 сообщает своё значение программе.
- Переменная А получает значение 7 от программы.
Вторая строка:
- Программа обнаружила выражение справа от знака равенства и стремится его вычислить.
- Константа 3 сообщает своё значение программе.
- Программа обращается к переменной А по имени.
- Переменная А сообщает своё значение (7) программе.
- Программа производит вычисления (7 + 3).
- Переменная В получает значение 10 от программы.
В процессе работы программы значение переменной может быть изменено. Например, в программе может встретиться строка, в которой написано следующее:
В = 33;
В этом случае при исполнении программы будет выполнено следующее:
- Константа 33 сообщает своё значение программе.
- Переменная В получает (новое) значение 33 от программы.
Легко заметить, что на некотором этапе выполнения программы переменная В получает значение 10, а в ходе дальнейших вычислений - значение 33. В результате этих событий название переменной В остаётся неизменным, а значение переменной изменяется.
На рис. 10 показаны константы и переменные в тексте программы:
Рис. 10. Константа и переменная в программе.