Здесь - условное выражение, - простые или составные операторы.
Если в условных выражениях сравниваются элементы двух соответствующих параллельных массивов, то эти приведенные условные конструкции вызывают параллельное исполнение операторов ,.
if a[10:90] < a[10:90 shift-1] then a[#]:=a[#]+1 else a[#]:=a[#]-1;
вызывает увеличение значений элемента , массива на единицу, если он меньше своего левого соседа; иначе значение элемента уменьшается на единицу. Обработка все элементов , производится параллельно
В параллельных ЯВУ обычно определены также операторы выбора вида
Программа вызывает параллельную обработку всех элементов массива . В зависимости от значений этих элементов параллельно выполняются 1, 2 или 3. Например, если в массиве имеется по 10 элементов со значениями , , , , , то при исполнении программы будет параллельно выполняться десять раз 1, двадцать раз - 2 и двадцать раз - 3 (всего 50!)
for <INDEX> := <LOWER> by <INC> to <UPPER> do <S>;
Здесь - условное выражение, - простой или составной оператор, INDEX – массив параметров цикла, LOWER, UPPER, INC – массивы, содержащие нижние, верхние границы и инкременты соответствующих параметров цикла.
производит параллельное увеличение всех 50 первых элементов массива на единицу до тех пор, пока элемент не станет больше или равен элементу
Пример 4
Рассмотрим фрагмент Actus-программы
const
sq=1:50;
var
i: array [1:50] of integer;
aa: array [1:50,1..100] of real;
begin
………………..
for i[1:50]:= seq by 2 to 100 do aa[#,i[#]]:=aa[#,i[#]]+1.0;
Эта программа на каждом «витке» цикла вызывает увеличение значений параметров цикла на 2 до тех пор, пока они не достигнут 100. После 25 «витков» цикла уровень параллелизма начнет уменьшаться: