Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Оператор цикла с предварительным условием



При решении многих задач вычислительный процесс имеет циклический характер. Это означает, что часть операторов многократно выполняет­ся при различных значениях переменных. Применение циклов в про­грамме позволяет эффективно использовать машину, приводит к умень­шению длины программы и сокращению времени на ее составление и отладку.

В языке ПАСКАЛЬ имеется три вида операторов цикла: 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 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.01 с)...