Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Особенности присвоения значений переменнымСодержание книги
Поиск на нашем сайте При присвоении значения переменной типа TYPE1 переменной типа TYPE2 нужно учитывать следующее:
VAR a: REAL:= -1564.343; END_VAR VAR b: USINT:= 50; END_VAR a = b; //корректная операция b = a; //некорректная операция
VAR a: BOOL; END_VAR VAR b: SINT:= -50; END_VAR a = b; //a = TRUE, корректная операция b = a; //b = 1, корректная операция
Определены следующие операторы, образующие предложения Техно ST: Return if Case While Repeat For Break Exit Continue операторы определения переменных; оператор индексирования элементов массива; Goto Оператор return Определены 2 варианта задания данного оператора: return {выражение} Действие: выход из функции Техно ST. Значением функции является значение {выражения}; Return Действие: выход из функции-блока Техно ST. Пример RETURN (2 + ARG_000 ** 2); Оператор if-then-else Данный оператор начинается с ключевого слова if и заканчивается ключевым словом end_if. Определены 3 варианта задания данного оператора: Вариант 1 if {выражение} then {последовательность предложений} end_if Действие: если {выражение} истинно, выполняется {последовательность предложений}, иначе никаких действий не производится. Вариант 2 if {выражение} then {последовательность предложений1} else {последовательность предложений2} end_if Действие: если {выражение1} истинно, выполняется {последовательность предложений1}, иначе выполняется {последовательность предложений2}. Вариант 3 if {выражение1} then {последовательность предложений1} elsif {выражение2} then {последовательность предложений2} … elsif {выражениеN} then {последовательность предложенийN} else {последовательность предложений} end_if Действие: выполняется первая по порядку {последовательность предложений}, для которой соответствующее {выражение} истинно. Если все {выражения} ложны, выполняется {последовательность предложений}, следующая за ключевым словом else. Количество блоков " elsif {выражение} then {последовательность предложений}" не ограничено. Пример В результате выполнения следующего кода переменной VAR_000 присваивается значение 200. Выполняется только одно, первое по порядку действие, для которого условие истинно, поэтому действие, следующее за конструкцией ELSIF...THEN, выполнено не будет, несмотря на то, что условие VAR_002 < 1 истинно: VAR VAR_000: INT; END_VAR VAR VAR_002: REAL:= 0.5; END_VAR IF VAR_002 < 2 THEN VAR_000 = 200; ELSIF VAR_002 < 1 THEN VAR_000 = 500; ELSE VAR_000 = 300; END_IF; Оператор case Определены 2 варианта задания данного оператора. Вариант 1 case {выражение} of {список значений}: {последовательность предложений} ... {список значений}: {последовательность предложений} end_case Вариант 2 case {выражение} of {список значений}: {последовательность предложений} ... {список значений}: {последовательность предложений} else {последовательность предложений} end_case Список значений представляет собой набор целых чисел или набор диапазонов целых чисел, разделенных запятой. Диапазон задается в виде {нижняя граница}.. {верхняя граница} Действие: если результат вычисления {выражения} принадлежит множествам, заданным {списками значений}, выполняется соответствующая {последовательность предложений}. Если результат вычисления {выражения} не принадлежит ни одному из заданных множеств, выполняется {последовательность предложений}, следующая за ключевым словом else. Пример В результате выполнения следующего кода VAR_001=500: VAR VAR_000: INT; END_VAR VAR VAR_001: INT; END_VAR CASE VAR_000 + 4 OF 0.. 2: VAR_001 = 200; 3, 4, 5: VAR_001 = 500; END_CASE; Оператор while Синтаксис: while {выражение} do {последовательность предложений} end_while Действие: пока {выражение} истинно, выполняется {последовательность предложений}. Пример После выполнения следующего кода VAR_001=16: VAR VAR_000: INT:= 10; END_VAR VAR VAR_001: INT; END_VAR WHILE VAR_000 > 2 DO VAR_000 = VAR_000 - 1; VAR_001 = VAR_001 + 2; END_WHILE; Оператор repeat Синтаксис: repeat {последовательность предложений} until {выражение} end_repeat Действие: пока {выражение} истинно, выполняется {последовательность предложений}. Если {выражение} ложно, {последовательность предложений} выполняется 1 раз. Пример После выполнения следующего кода VAR_001=20: VAR VAR_000: INT:=10; END_VAR VAR VAR_001: INT; END_VAR REPEAT VAR_001 = VAR_001 + 2; VAR_000 = VAR_000 + 1; UNTIL VAR_000 < 20 END_REPEAT; Оператор for Синтаксис: for {инициализация переменной цикла} to {выражение1} by {выражение2} do {последовательность предложений} end_for Инициализация переменной цикла имеет вид: {имя переменной}:={выражение} Действие: пока значение переменной цикла меньше или равно значению {выражения1} выполняется {последовательность предложений}. По завершении каждого цикла к переменной цикла прибавляется значение {выражения2}; если оно не задано, прибавляется 1. С помощью оператора for нельзя построить цикл с убывающим счетчиком. Для создания таких циклов нужно использовать операторы while и repeat. Пример После выполнения следующего кода VAR_001=22: VAR VAR_000: INT:=10; END_VAR VAR VAR_001: INT; END_VAR FOR VAR_000 = 10 TO 20 DO VAR_001 = VAR_001 + 2; END_FOR; Операторы break и exit Операторы break и exit эквивалентны. Синтаксис: Break Exit Действие: выход за пределы цикла. В случае вложенных циклов выход осуществляется только из текущего цикла и не затрагивает внешние. Оператор continue Синтаксис: Continue Действие: переход в конец цикла, т.е. выражения, следующие за оператором continue до конца цикла, не выполняются. Операторы определения переменных Операторы определения переменных могут быть заданы вручную (кроме операторов определения глобальных переменных) или с помощью табличного редактора. В языке ST определены следующие операторы данного типа: Var {определение переменной} ... {определение переменной} end_var
var_global {определение переменной} ... {определение переменной} end_var
var_arg {определение переменной} ... {определение переменной} end_var
var_input {определение переменной} ... {определение переменной} end_var
var_output {определение переменной} ... {определение переменной} end_var
var_inout {определение переменной} ... {определение переменной} end_var После ключевого слова end_var точка с запятой не ставится. Действие: определяет новую переменную. При использовании совместно с constant задает константу. Оператор var... end_var используется для создания локальных переменных и структур; может использоваться в основной программе или ее компоненте (функции). Оператор var_global... end_var используется для создания глобальных переменных; может использоваться вне основной программы и ее компонентов (функций). Оператор var_arg(var_input)... end_var используется для определения аргументов (основной программы или ее функций), передаваемых по значению. Определение аргумента с помощью этого оператора равнозначно заданию аргумента типа вход в табличном редакторе. Оператор var_output(var_inout)... end_var используется для определения аргументов (основной программы или ее функций), передаваемых по ссылке. Определение аргумента с помощью оператора var_output...end_var равнозначно заданию в табличном редакторе аргумента типа выход, а определение аргумента с помощью оператора var_inout...end_var равнозначно заданию аргумента типа вход/выход. Создание аргументов вручную с помощью указанных операторов может использоваться только в отладочных программах – для таких аргументов нельзя задать привязку. Аргументы рабочей программы следует создавать с помощью табличного редактора. Выражение {определение переменной} имеет вид: {имя переменной}: {тип переменной}; {имя переменной}: {тип переменной}:={выражение}; {имя переменной}: array [] of {тип переменной}; {имя переменной}: array [{размерности массива}] of {тип переменной}; {имя переменной}: array [{размерности массива}] of {тип переменной}:={начальные значения}; Выражения {размерности массива} задаются в виде диапазонов изменения индексов массива, разделенных запятой. Диапазон изменения индексов массива имеет вид {нижняя граница}.. {верхняя граница} или {размер массива} обозначающий диапазон от 0 до {размер массива}-1. В случае, если размерность массива не указана, он считается пустым и ожидается его инициализация в ходе выполнения программы. Выражения {начальные значения} имеют вид списка начальных значений элементов массива, разделенных запятой. Каждое начальное значение имеет вид выражения, вычисление которого дает реальное начальное значение, или конструкции {целочисленная константа} ({выражение}) где {целочисленная константа} задает количество элементов, которым присваивается это значение. При присвоении начальных значений элементам массива первым изменяется последний индекс массива. Область действия имени переменной определяется по следующим правилам:
При привязке переменной по имени она ищется в следующем порядке: локальные, аргументы функции, переменные-члены структуры, глобальные.
|
|||
|
Последнее изменение этой страницы: 2016-08-10; просмотров: 416; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.216.198 (0.006 с.) |