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

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может ни разу не выполниться в зависимости от значения выражения.

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