Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
5 Методическое пособие изучения Паскаль.doc
Скачиваний:
10
Добавлен:
01.03.2025
Размер:
743 Кб
Скачать
☆

Глава 6 организация циклических прцессов.

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

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

В языке ПАСКАЛЬ имеется три вида операторов цикла: 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

1

3

5

7

N

1

2

3

4

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).