- •Методические указания
- •Содержание
- •1. Организация работы программ на паскале
- •1.1. Организация работы программ линейной структуры
- •1.2. Организация работы программ циклической структуры
- •1.2.1. Оператор цикла с предусловием while ... Do
- •1.2.2. Оператор цикла repeat ... Until
- •1.2.3. Оператор цикла с параметром (со счетчиком) for... Do
- •1.2.4. Вложенные циклы
- •1.3. Организация итерационных циклов в программе
- •2. Задание на лабораторную работу Вариант 1
- •Вариант 2
- •Вариант 3
- •Вариант 4
- •Вариант 5
- •Вариант 6
- •Вариант 7
- •Вариант 8
- •3. Контрольные вопросы к лабораторной работе
- •Библиографический список
- •Методические указания
- •394026 Воронеж, Московский просп., 14
1.2.1. Оператор цикла с предусловием while ... Do
Этот оператор организует так называемый цикл «ПОКА», или цикл с предусловием, так как проверка проводится перед началом очередной итерации (неизвестно количество повторений цикла):
WHILE < Условие > DO
< тело цикла >;
Оператор while позволяет многократно выполнять одни и те же действия в зависимости от некоторого < Условия >, которое записывается между ключевыми словами while и do и должно быть выражением булевского типа, т. е. принимать только значения True или False.
Цикл выполняется, пока <Условие> истинно. Как только <Условие> нарушается, выполнение цикла завершается.
Если тело цикла состоит из одного оператора, то операторные скобки Begin - End можно не ставить:
while < Условие > do
Оператор;
Если тело цикла состоит из нескольких операторов, то операторные скобки Begin - End необходимо ставить:
while < Условие > do
begin
Оператор;
……..
Оператор;
end;
Опишем работу цикла while более подробно. Сначала, при входе в цикл, вычисляется < Условие >:
Если <Условие> равно False, то вход в цикл не выполняется, управление передается оператору, следующему непосредственно за операторами тела цикла. Так что при определенной ситуации цикл может ни разу не выполниться.
Если же <Условие> равно True, то происходит вход в цикл и однократное выполнение операторов его тела. Как только достигнем конца тела цикла, управление снова передается на его заголовок, где снова вычисляется < Условие >. Если значение < Условия > все еще равно True (что зависит от изменения значений переменных во время предыдущего выполнения операторов цикла), то тело цикла выполняется еще один раз, и так далее. Как только очередное вычисление <Условия> цикла достигнет значения False, работа цикла завершается.
Например, рассмотрим программу с использованием оператора цикла с предусловием, когда в качестве логического < Условия > стоит выражение 2*А < = 3*N +1.
Program 111;
Var N, A: integer;
Begin
A: = l;
N: = 2;
While 2*A< = 3*N+l Do
Begin
A: = A + 2;
N: = N+1;
End;
WriteLn ('A = ', A =, 'B = ',B =);
End.
Переменные А и N, а также логическое выражение 2*A<= 3*N+1b процессе выполнения программы принимают значения, представленные в таблице 1.
Таблица 1
Идентификаторы и выражение |
Проходы цикла |
|||
|
Первый |
Второй |
Третий |
Четвертый |
А |
1 |
3 |
5 |
7 |
N |
1 |
2 |
3 |
4 |
2*A<=3*N+1 |
2< = 4 |
6< = 7 |
10<=10 |
14<=13 |
Условие True или False |
True Истинно |
True Истинно |
True Истинно |
False Ложно |
Всего цикл проработает четыре раза. При А = 7 и N = 4 логическое выражение 2*A< = 3*N+1 становится ложным (False) и управление передается за пределы цикла.