и вычисление результата цикла end
For % инициирование цикла Approx := 1.0; Sign := 1.0; Denom := 1.0; i := 1 while i <= Cycles do % предусловие завершения цикла Sign := -Sign; % однократные Denom := Denom + 2.0; % присваивания Approx := Approx + Sign / Denom; % образуют i := i + 1 % тело цикла returns Approx * 4.0 % выбор и вычисление результата цикла end for |
Пример 11.1. Вычисление числа пи |
Закрыть окно |
for i in [1..Cycles/2] do % пространство параллельно исполнимых итераций val := 1.0/real(4*i-3) - 1.0/real(4*i-1); % тело цикла, для каждого i исполняемое независимо returns sum( val ) % выбор и свертка результатов всех итераций цикла end for * 4.0 % вычисление результата выражения |
Пример 11.2. Это выражение также вычисляет число пи |
Закрыть окно |
for i in [1..2] dot j in [3..4] do % для пар индексов [1,3] и [2,4] returns product (i+j) % произведение сумм end for % = 24 |
Пример 11.3. В for- выражениях операция dot может порождать пары индексов при формировании пространства итерирования |
Закрыть окно |
for i in [1..2] cross j in [3..4] do % для пар [1,3], [1,4], [2,3] и [2,4] returns product (i+j) % произведение сумм end for % = 600 |
Пример 11.4. В for- выражениях операция cross может порождать пары индексов при формировании пространства итерирования |
Закрыть окно |
for I := 1 while I < S do K := I; I := old I + 2; % значение из предыдущей итерации J := K + I; returns product(I+J) end for |
Пример 11.5. Итеративное for-выражение с обменом данными между итерациями |
Закрыть окно |
function Sum (N); % Сумма квадратов result (+ ( sqw (1 .. N))); |
Пример 11.6. |
Закрыть окно |