Основные конструкции языка

<< Click to Display Table of Contents >>

Navigation:  Проект > Элементы дерева объектов > Палитра ФБ > Служебные > Программа ST >

Основные конструкции языка

Операции условного выбора.

IF… THEN…ELSE

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

Синтаксис:

IF <логическое_выражение> THEN

<Список_инструкций1>;

ELSE

<Список_инструкций2>;

END_IF;

Если логическое выражение истинно, то выполняется Список_инструкций1, в противном случае Список_инструкций2.

Пример:

if (davl>5) then (*Если давление выше 5*)

klap:=false; (*Закрыть клапан*)

else klap:=true; (*Иначе открыть клапан*)

end_if;

CASE

С помощью инструкции CASE можно сопоставить различным значениям переменной различные инструкции.

Синтаксис:

CASE <переменная> OF

<Значение_переменной1>: <Список_инструкций1>;

<Значение_переменной2>: <Список_инструкций2>;

<Значение_переменной3>,< Значение_переменной4>: <Список_инструкций2>;

<Значение_переменной5>..< Значение_переменной10>: <Список_инструкций2>;

……

<Значение_переменной_i>: <Список_инструкций_i>;

ELSE <Список_инструкций_исключения>;

CASE работает следующим образом:

• Если <переменная> принимает значение равное < Значение_переменной_i> то выполняется <Список_инструкций_i>

• Если <переменная> не соответствует ни одному из перечисленных значений, то выполняется <Список_инстукций_исключения>

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

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

Пример:

case in2 of (*Переменная*)

1: out:=1; (*Инструкции*)

  out1:=2;

2: out:=2;

3,4: out:=3;

5..10: out:=4;

else out:=5;

end_case;

Циклы.

Цикл FOR

Цикл FOR можно использовать в том случае, если некоторую последовательность действий (инструкций программы) нужно выполнить определенное количество раз.

Синтаксис:

FOR <счетчик:=нач_знач> TO <конечн_знач> BY <величина шага> DO

< Список_инструкций >;

END_FOR;

FOR работает следующим образом. В начале, переменной <счетчик> присваивается значение равное <нач_знач>, затем выполняются инструкции внутри цикла. После каждого цикла <счетчик> увеличивается на значение равное <величина шага>  и сравнивается с <конечн_знач>, если значение счетчика меньше конечного значения – цикл выполняется. Параметр BY <величина шага> - необязательный, в случае его отсутствия <счетчик> увеличивается на единицу.

Пример:

for i:=0 to 10 BY 2 do

out1:=out1+5;

end_for;

Цикл WHILE

Условием выхода из цикла WHILE является логическое выражение. Цикл WHILE используется в том случае, если некоторую последовательность действий (инструкций программы) надо выполнить несколько раз, причем необходимое число повторений во время разработки программы неизвестно, и может быть определено только во время исполнения программы.

Примером использования цикла WHILE является поиск элементов в массиве.

Синтаксис:

WHILE <логическое_выражение> DO

< Список_инструкций >;

END_WHILE;

Инструкции внутри цикла WHILE выполняются до тех пор пока <логическое_выражение> является истинным. Если <логическое_выражение> еще до первого выполнения цикла имеет значение false, то инструкции не выполняются ни разу. Если <логическое_выражение> будет иметь неизменным значение true, то цикл будет выполнятся бесконечно.

Пример:

WHILE out1<10 DO

out1:=out1+1;

end_while;

Цикл REPEAT.

Цикл REPEAT схож с циклом WHILE, с одним лишь отличием – проверка условия выполнения инструкций осуществляется в конце цикла, а не в начале как у цикла WHILE. Таким образом цикл REPEAT выполняется как минимум один раз.

Синтаксис:

REPEAT

< Список_инструкций >;

UNTIL <логическое_выражение>

END_REPEAT;

Инструкции внутри цикла REPEAT выполняются до тех пор пока <логическое_выражение> является ложным. Таким образом <логическое_выражение> - это условие выхода из цикла.

Пример:

REPEAT

out1:=out1+1;

UNTIL out1>10

END_REPEAT;

Инструкция EXIT.

Инструкцию EXIT можно использовать в циклах FOR, WHILE, REPEAT если необходимо прервать выполнения цикла.

Пример:

REPEAT

out1:=out1+1;

if out1=8 then

exit;

end_if;

UNTIL out1<10

END_REPEAT;

 

Ссылки:

Описание стандарта