Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Consp_p1.rtf
Скачиваний:
12
Добавлен:
22.08.2019
Размер:
7.3 Mб
Скачать

12. Оператор цикла do

Оператор DO предназначен для создания циклов, обеспечивающих многократное выполнение группы операторов в программе.

Оператор DO по сравнению c IF является более мощным инструментом для организации циклов. Форма записи следующая:

DO m i=i1 , i2 , i3

где m – метка оператора, являющегося последним в области цикла DO;

i – переменная цикла, изменяющаяся от начального значения i1 до конечного значения i2 с шагом i3.

Пример:

DO 8 I=1,13,2

M=I*I область цикла

8 WRITE(6,*) I,M

. . .

Оператор цикла DO работает следующим образом:

1). Переменной цикла i присваивается начальное значение i1, затем выполняются все операторы в области цикла, включая и последний с меткой m. Затем к величине переменной i прибавляется величина шага i3 и полученное новое значение переменной цикла сравнивается с конечным значением i2. Если новое значение переменной цикла больше чем значение i2, то осуществляется выход из цикла и выполнение передаётся оператору, следующему после метки m. Если значение переменной цикла i меньше, чем i2, то повторяется вычисление в области цикла, начиная с оператора, следующего после DO.

Внимание:

После окончания цикла переменная цикла сохраняет всегда значение большее, чем конечное значение цикла i2. В случае выхода из цикла до его завершения переменная сохранит свое текущее значение.

В качестве оператора, являющегося последним в цикле DO, предпочтительнее ставить оператор CONTINUE, который не выполняет никаких действий, а просто показывает, что на нём закончился цикл.

Оператор CONTINUE чаще всего является последним оператором цикла DO в тех случаях, когда последним оператором цикла DO может оказаться один из операторов:

IF(арифметический), PAUSE, STOP или другой управляющий оператор.

Пример:

. . .

DO 4 I=1,8,2

X=X+2.

. . .

IF(X) 4,2,3

Так как последним оператором тела DO не может быть арифметический оператор IF

4 CONTINUE

. . .

Если шаг цикла сделать отрицательным, а начальное и конечное значение положительным, то произойдёт зацикливание программы до переполнения разрядной сетки ЭВМ (-32767).

Начиная с версии ФОРТРАН–77 в качестве переменной цикла можно использовать переменные вещественного типа. Например :

DO 7 X=XN , XK , DX

...

7 WRITE(*,*) X , Y

Примечание:

Оператор цикла DO не предусматривает корректировку шага DX.

Задача:

По введенному значению n вычислить n! (факториал от n) и вычислить сумму квадратов, используя оператор цикла DO.

C Программа №6. Вычисление суммы и факториала от N

WRITE(6,*)’Введите N

READ(5,*) N

C Вычисление суммы N

S=0.

При вычислении суммы необходимо обнулять ячейку памяти (в данном случае S), так как может оказаться, что эта переменная уже имеет некоторое значение и в результате решение будет неправильным.

DO 2 I=1,N

S=S+I**2

2 CONTINUE

C Вычисление факториала

P=1.

DO 3 I=1,N

3 P=P*I

C Вывод результата

WRITE(6,*)’Сумма S=’,S,’ факториал =’,P

PAUSE

STOP

END

Вычисление суммы работает следующим образом:

Переменной S присваивается значение ноль. Затем по циклу к переменной S прибавляется величина i2 за каждый проход по циклу.

Для вычисления произведения или факториала сначала переменной Р присваивается значение 1. Затем в цикле Р умножается на I и результат записывается в Р.

Примечание: Если величина шага в операторе цикла DO равна единице, то шаг можно не указывать.

Задача:

Найти все значения функции ,если x изменяется в пределах: X=XH XK c шагом dx. Определить максимальное и минимальное значения.

Если значение <0, то результат вывести в левой части экрана, а если >0 – в правой части.

C Программа №7. Максимум и минимум функции

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