Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
TP_6W.DOC
Скачиваний:
15
Добавлен:
07.06.2015
Размер:
319 Кб
Скачать
☆

8. Цикл.

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

Существует три основных вида циклов: цикл while, цикл repeat и цикл for. Рассмотрим их.

8.1. Цикл while.

Цикл while используется для проверки некоторого условия в начале цикла. Введите следующую программу:

Program Hello;

Var

Count: Integer;

Begin

Count: = 1;

While (Count <= 10) do

Begin

Writeln (‘ Здравствуй и прощай !’ );

Inc (Count);

End;

Writeln (‘ Это конец’);

End.

Во-первых, сначала переменной Count присвоится значение равное 1. Затем, при входе в цикл проверяется условие: значение Count меньше или равно 10. Если да, то выполняется тело цикла (операторы, находящиеся между ключевыми словами begin…end.) На экран выводится сообщение «Здравствуй и прощай». Значение Count увеличивается на 1. Возврат на начало цикла. Значение Count проверяется заново и тело цикла выполняется вновь, до тех пор пока значение переменной Count удовлетворяет условию. Как только значение Count становится равным 11, цикл завершается, и на экран выводится сообщение «Это конец».

Формат оператора цикла While:

While выражение Do оператор;

В цикле While вычисляется выражение. Если оно имеет результат – True, выполняется оператор. В противном случае выполнение цикла завершается.

8.2. Цикл Repeat … Until

Второй цикл Repeat … Until рассмотрим на примере программы DORATIO.PAS:

Program DoRatio;

Var

A, B: Integer;

Ratio: Real;

Ans: Char;

Begin

Repeat

Write(‘Введите два числа’);

ReadLn(A, B);

Ratio := A/B;

WriteLn(‘Отношение равно’, Ratio);

WriteLn(‘Повторить? (Y/N)');

ReadLn(Ans);

Until UpCase(Ans) = ‘N’;

End.

Как описывалось ранее, в этой программе повторяется выполнение операторов, пока ответ на вопрос – n или N (Повторить? Y/N). Другими словами, Repeat и Until повторяются до тех пор, пока значение выражения при Until не будет True.

Формат цикла:

Repeat

Оператор;

Оператор;

…………

Оператор;

Until выражение.

Существуют три основных отличия от цикла While:

  • операторы в цикле Repeat выполняются хотя бы один раз, потому что проверка выражения осуществляется в конце тела цикла. В цикле While, если значение выражения False, тело его пропускается сразу.

  • цикл Repeat выполняется пока выражение не станет True, в то время, как цикл While выполняется до тех пор, пока выражение имеет значение True. При замене одного типа цикла на другой необходимо на это обращать особое внимание. Рассмотрим программу HELLO, где цикл While заменен на цикл Repeat:

program Hello;

var

Count: Integer;

Begin

Count := 1;

Repeat

WriteLn(‘Здравствуй и прощай!’);

Inc(Count);

Until Count > 10;

WriteLn(‘Это конец”);

End.

Отметим, что теперь переменная Count проверяется на значение больше 10 (а в While было Count <= 10).

В заключение, в цикле Repeat может использоваться просто группа операторов, а не составной оператор. При использовании этого цикла не используются слова Begin … End, как в случае с циклом While.

Запомните, что цикл Repeat выполнится хотя бы один раз, в то время, как цикл While может ни разу не выполниться в зависимости от значения выражения.

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