Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
При решении многих задач вычислительный процесс имеет циклический характер. Это означает, что часть операторов многократно выполняется при различных значениях переменных. Применение циклов в программе позволяет эффективно использовать машину, приводит к уменьшению длины программы и сокращению времени на ее составление и отладку.
В языке ПАСКАЛЬ имеется три вида операторов цикла: 1) оператор с предварительным условием (предусловием); 2) оператор цикла с последующим условием (постусловием); 3) оператор цикла с параметром.
Операторы для записи циклов являются сложными, так как в их состав входят другие операторы.
Для всех операторов цикла характерна следующая особенность. Повторяющиеся вычисления записываются всего лишь один раз. Вход в цикл возможен только через его начало. Переменные оператора цикла должны быть определены до входа в циклическую часть. Необходимо предусмотреть выход из цикла: или по естественному его окончанию, или по оператору перехода. Если этого не предусмотреть, то циклические вычисления будут повторяться бесконечно. В этом случае говорят, что произошло «зацикливание» выполнения программы.
Цикл с предварительным условием (с предусловием) используется, как правило, в тех случаях, когда заранее неизвестно число повторений цикла.
Форма записи оператора цикла с предусловием:
WHILE _ логическое выражение _DO
BEGIN
операторы циклической части программы
END;
Здесь WHILE (пока) и DO (выполнить) - служебные слова.
Оператор цикла действует следующим образом. Предварительно проверяется значение логического выражения. Пока оно истинно, выполняются операторы циклической части. Как только; оно становится
ложным, происходит выход из цикла. Если с самого начала значение
логического выражения ложно, то операторы циклической части не
выполнятся ни разу.
Обратите внимание на то, что операторы циклической части, заключенные в операторные скобки BEGIN - END, представляют собой составной оператор.
Возможен случай, когда в циклической части стоит оператор перехода, передающий управление за пределы цикла. В такой ситуации цикл может завершиться до его естественного окончания (при истинном значении логического выражения).
Если в циклической части стоит всего один оператор, то операторные скобки BEGIN — END можно не указывать и оператор цикла принимает вид
WHILE_логическое выражение_ DO_оператор
Рассмотрим фрагмент программы с использованием оператора цикла с предусловием:
A:=1;
N:=1;
WHILE 2*A<=3*N+1 DO
BEGIN
A:=A+2;
N:=N+1;
END;
Пока условие 2A<=3N + 1 является истинным (т. е. 2 А оказывается меньше или равно 3N + 1), выполняются операторы циклической части: значение А увеличивается на 2 и результат вновь присваивается переменной А; значение N увеличивается на 1 и результат обозначается снова именем N. Начальные значения переменных заданы до начала оператора цикла.
Переменные А и N, а также логическое выражение принимают следующие значения в процессе выполнения этой части программы:
A | ||||
N | ||||
2A<=3N+1 | 2<=4 | 6<=7 | 10<=10 | 14<=13 |
Истинно или ложно | Истинно | Истинно | Истинно | Ложно |
Следует заметить, что циклическая часть программы выполнилась три раза:
1) А= 1 +2 = 3; N=1+1=2
2) А = 3 + 2 — 5; N=2+1=3
3) А = 5 + 2==7; N=3+1=4
При А = 7 и N = 4 логическое выражение становится ложным и управление передается за пределы цикла (т. е. за END).
Дата публикования: 2014-11-02; Прочитано: 1790 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!