Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
64
Добавлен:
02.05.2014
Размер:
868.35 Кб
Скачать

Условные обозначения логических операторов на блок-схемах

If арифметический if логический

11. Табулирование функции

Табулирование функции– это вычисление какой-либо функции с аргументом, изменяющейся в каких-то пределах.

Задача:

Вычислить и напечатать все значения функции:

f=sinx2-excos2x,

если xизменяется в пределах отадоbс шагомdx.

С Программа № 5. Циклы с оператором IF.

WRITE(6,*)’Введите Xнач, Xкон, шагцикла’

READ(5,*) XN,XK,DX

С Блок корректировки шага

N=(XK-XN)/DX+1 определяем количество вычислений на отрезке a ÷ b

DX=(XK-XN)/(N-1) уточняем значение шага

C Переменной цикла присваиваем начальное значение

X=XN

C Вычисляем значение функции

11 F=SIN(X*X)–EXP(X)*COS(X)**2

У показателя степени 2 точку ставить нельзя, т.к. нельзя возвести отрицательное число в вещественную степень.

С Выводим результат вычисления на экран

WRITE(6,*)’При Х=’,X,’ значение функции равно’,F Выводим на экран значение аргумента Х и соответствующее ему значение функции F.

C Задаём приращение аргумента

X=X+DX

С Проверяем условие повторения цикла

IF(X.LE.XK) GO TO 11

PAUSE

STOP

END

Для организации цикла с помощью оператораIFмы сделали:

1). Х присвоили XN:

X=XN

2). Сделали вычисление значения Fв области цикла:

F=SIN(X*X)–EXP(X)*COS(X)**2

3). Увеличили значение аргумента на величину шага цикла:

X=X+DX

4). С помощью IFлогического проверили условие повторения цикла:

IF(X.LE.XK) GO TO 11

При вычислении значений этой функции, например, при Х, изменяющемся от 1 до 10 с шагом 2, текущее значение Х будет равно 1,3,5,7,9. Т.е. не будет получено последнее значение функции на заданном отрезке. Поэтому в программе и применяется блок корректировки шага. Количество вычислений на отрезке будет N=(10-1)/2+1=5 (целое число). Новое, уточненное значениеDXбудет равно (10-1)/(5-1)=2.25

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

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

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

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

Соседние файлы в папке Программирование на Фортране