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

43

Тема 3. Базовая управляющая конструкция “цикл”. Циклические вычислительные процессы. Операторы цикла языка Фортран

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

Часть программы (группа последовательных операторов), заканчивающаяся командой перехода (передачи управления) на начало этой части, называется циклом.

Для грамотной реализации любого циклического вычислительного процесса необходимо выполнить действия, представленные в виде обобщенного алгоритма на рис. 3.1.

Рисунок 3.1 Схема алгоритма циклической структуры

Подготовка цикла состоит в определении начальных значений переменных, изменяемых в цикле, до начала выполнения цикла

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

Модификация – это изменение значений переменных цикла перед каждым новым повторение цикла.

Условие продолжения цикла (команда перехода) состоит в проверке условия продолжения или окончания цикла, т.е. определяет сколько раз нужно повторить тело цикла.

Существует несколько видов цикла: с предусловием, с постусловием и параметром. Их отличия заключаются в местоположениеи условия выхода из цикла относительно тела цикла и самим логическим выражением в этом условии. При решении одной и той же задачи для любого цикла тело остается неизменным.

Работу всех видов операторов цикла в Фортране рассмотрим на примере задачи о табулировании функции. Табулирование – представление функции в табличном виде, где определенным значениям х соответствуют y, принадлежащие функции. Обычно выполняется для значений х из определенного промежутка. Заранее известно либо количество точек в которых нужно найти значение функции, либо расстояние между двумя соседними (шаг табулирования) (рис. 3.2).

Необходимо найти значение функции yi=f(xi) на заданном промежутке [ab] для определенного количества точек, где каждое последующее значение xi отличается от предыдущего на шаг табулирования dx.

Пусть f(x)=x2, a=-2, b=2, dx=1.

Рисунок 3.2 Графическое представление задачи табулирования функции

3.1. Оператор цикла do (бесконечный цикл)

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

do

[операторы]

end do

В данном случае отсутствует условие выхода из цикла. Так что [операторы] в теле цикла будут выполняться бесконечно.

Выход из цикла возможен, если ввести в цикл условие, при истинности которого, выполняется оператор принудительного выхода из цикла Break. Схема алгоритма такой конструкции приведена на рис. 3.3

do

[операторы]

If (logical_expr) then

Break

endif

end do

Рисунок 3.3 Схема алгоритма конструкции оператора цикла do с прерыванием

Использование рассмотренной конструкции оператора цикла для решения задачи табулирования функции f(x)=x2 будет выглядеть следующим образом (рис. 3.4):

Рис. 3.4

X=a

Do

Y=x**2

X=x+dx

If (x>b) then

Break

Endif

enddo

Первоначально (на этапе подготовки цикла) x=a. После входа в цикл в точке x=a вычисляется соответствующее значение y. Далее вычисляется следующее значение x=x+dx (модификация цикла). Проверяем условие прерывания x>b. Если оно не выполняется, то происходит возврат на начало тела цикла и тело цикла повторяется. И так до тех пор, пока значение выражения x>b не примет значение ИСТИНА, после чего происходит выход из цикла.

Условие ставится после внутри тела цикла, но после блока операторов. Поэтому такой вид цикла do можно назвать циклом с постусловием.

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