PDA

Просмотр полной версии : Условия в цикле



Wanted
21.11.2008, 14:11
:confused: Вопрос скорее про синтаксис языка ST. Необходимо создать несколько одинаковых условий. Вот упрощенный вариант:

IF SET1=TRUE THEN
p1:=TRUE;
END_IF
...
IF SET16=TRUE THEN
p16:=TRUE;
END_IF

Так вот, можно не писать это все 16 раз, а задать какую-либо переменную, к примеру n и задать его в цикле от 1 до 16, чтобы было только одно условие типа этого:

FOR n:=1 TO 16
DO
IF SET(n)=TRUE THEN
p(n):=TRUE;
END_IF
END_FOR

Или синтаксис языка такого не позволяет?

Wanted
21.11.2008, 14:33
:confused: :confused: :confused:

Малышев Олег
21.11.2008, 15:19
x:array [1..20] of bool

if x[i] then

Wanted
21.11.2008, 15:23
Большое спасибо. Сам задумывался насчет массивов, но не придумал, как правильно использовать :)

Wanted
21.11.2008, 22:32
FOR n:=1 TO 16 DO
SET(n):=p(n);
END_FOR

-----------

А для Вашего конкретного случая ( N = 16 ) :

var
set, p : word;
..


set:=p; ;)

Так я пробовал :) Но получится ли если SET1..16 это входы а P1..16 это выходы? Т.е. SET и P - BOOL

Wanted
23.11.2008, 11:12
Так я пробовал :) Но получится ли если SET1..16 это входы а P1..16 это выходы? Т.е. SET и P - BOOL

я пишу упрощенные примеры, не буду же я расписывать программу полностью :)