Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Тема 3.doc
Скачиваний:
0
Добавлен:
04.11.2018
Размер:
450.56 Кб
Скачать

3.2. Оператор цикла do со счетчиком (или с параметром)

Схема алгоритма конструкции оператора цикла do со счетчиком приведена на рис. 3.5.

Рисунок 3.5 Схема алгоритма конструкции цикл do.со счетчиком.

Синтаксис оператора цикла do с параметром имеет следующий вид:

do v=expr1,expr2,[expr3]

[операторы]

end do

Здесь vпараметр (переменная) цикла, expr1начальное значение параметра цикла, expr2конечное значение параметра цикла, expr3шаг изменения параметра цикла (может быть не указан). Тогда по умолчанию он считается равным 1.

Переменная в операторе do предпочтительнее целая, но допускается вещественная или вещественная двойной точности. Начало, конец и шаг (expr1, expr2, expr3)– выражения одного типа: целого, вещественного или вещественного двойной точности. Конструкция do выполняется поэтапно.

Сначала выполняются все необходимые начальные установки:

  • вычисляются выражения, определяющие expr1, expr2, expr3и вычисленные значения преобразуются к типу переменной цикла v;

  • переменной v присваивается значение начало (expr1);

  • устанавливается счетчик числа повторений цикла, число повторений цикла – целое, неотрицательное, вычисляется по формуле:

N=max(0, int[ (expr2expr1+expr3)/expr3 ].

Здесь функция int(..) вычисляет целую часть частного, причем N=0 в случаях:

если expr1>expr2 и expr3>0;

если expr2>expr1 и expr3<0.

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

  • шаг не может быть равен нулю;

  • если шаг опущен, то он подразумевается равным единице;

  • expr3>0 подразумевает возрастание переменной цикла (v);

  • expr3<0 подразумевает убывание переменной цикла (v).

После начальных установок начинается выполнение цикла, которое содержит три пункта, выполняемые повторно:

1. проверяется значение N – счетчика числа повторений, если N=0, цикл завершается,

2. если N≠0, выполняются [операторы],

3. N=N-1, v=v+ expr3. Переход к пункту 1

Выполнение цикла регламентируется следующим образом

  • переменная v изменяется автоматически самим оператором do, поэтому изменять переменную цикла v в теле цикла запрещено,

  • цикл нормально завершается по достижении N=0,

  • оператор CYCLE, встретившийся в теле цикла, прерывает пункт 2 и вызывает переход к пункту 3

  • оператора EXIT, встретившийся в теле цикла, прерывает цикл и завершает его досрочно, сохранив достигнутое значение переменной цикла v.

Цикл по вещественной переменной имеет неустойчивый характер (из-за особенностей вещественного типа). Поэтому целесообразно его оформлять в следующем виде:

do v=expr1,expr2+expr3/2,expr3

[операторы]

end do

В том случае, если шаг изменения параметра цикла положительный и expr1 ≤ expr2, циклический процесс выполняется как минимум один раз. Выходом из цикла является выполнение условия v > expr2.

В том случае, если шаг изменения параметра цикла отрицательный и expr1 ≥ expr2, циклический процесс выполняется как минимум один раз. Выходом из цикла является выполнение условия v < expr2.

Решение задачи табулирования функции с использования оператора цикла с параметром будет иметь следующий вид (схема алгоритма рис. 3.6):

expr1 = a

expr2 = b

expr3 = dx

Рис. 3.6

Do v=a,b,dx

Y=x**2

enddo

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]