Оператор цикла с постусловием

Примеры использования цикла с предусловием

Цикл с предусловием

Назначение циклов

Лекция№9. Простые и вложенные циклы

 

План:

1. Назначение циклов;

2. Цикл с предусловием;

3. Цикл с постусловием;

4. Цикл с параметром;

5. Вложенные циклы.

 

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

В языке Паскаль предусмотрено три вида операторов цикла:

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

- - оператор цикла с последующим условием;

- - оператор цикла с параметром.

Для всех трех операторов цикла характерна одна особенность: повторяющиеся действия записываются всего лишь один раз. Вход в цикл возможен только через его начало. Необходимо предусмотреть выход из цикла, в противном случае циклические действия будут повторяться бесконечно.

 

Оператор цикла с предварительным условием записывается следующим образом:

While условие Do Оператор;

Здесь While и Do – служебные слова.

Условие – какое-либо логическое выражение.

Оператор – Простой или составной оператор.

Оператор цикла с предусловием действует следующим образом. Каждый раз предварительно проверяется условие, если оно истинно, то выполняется оператор, стоящий сразу за словом Do, после его выполнения, снова проверяется условие и так продолжается до тех пор, пока условие не станет ложным. Если условие ложно, то осуществляется переход на оператор, стоящий сразу после оператора цикла.

 

Пример1.

Вычислить у=х2 при х=2, 4, 6, 8, 10.

Program cikl1;

Var X,Y:Integer;

Begin

X:=2;

While x<=10 Do

Begin

Y:=Sqr(X);

Writeln(‘X=’,X:3, ‘Y=’,Y:5);

X:=X+2;

End;

End.

 

Пример 2.

Вычисление квадратного корня из вводимых чисел.

Program cikl2;

Var

X,Y:Integer;

C:Char;

B:Boolean;

Begin

B:=True;

While B Do

Begin

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

Readln(X);

If X>=0 Then Writeln(‘Корень из ’, Х, ‘ равен ’, Sqrt(X))

Else Writeln(‘Действительного ответа нет’);

While Not((C=’Y’)Or(C=’N’) Do

Begin

Write(‘Желаете ввести еще одно число? (Y/N) ’);

Readln(C);

End;

If C= ‘N’ Then B:=False;

End;

End.

 

Оператор цикла с последующим условием выглядит следующим образом:

Repeat

Операторы циклической

части программы

Until Условие выхода из цикла;

Слова Repeat (повторять) и Until (До тех пор) являются служебными словами. Условие выхода из цикла – любое логическое выражение. Операторы циклической части программы -–любое количество любых операторов.

Оператор цикла с последующим условием действует следующим образом. Операторы циклической части программы выполняются повторно (по крайней мере один раз) до тех пор, пока значение логического выражения ложно. Условием прекращения циклических вычислений является истинное значение условия. В отличие от изученного нами оператора While в операторе цикла с постусловием сначала выполняются циклические вычисления, а затем уже производится проверка условия.

 

Пример:

Вычислить у=х2 при х=2, 4, 6, 8, 10.

Program cikl3;

Var x,y:Integer;

Begin

X:=2;

Repeat

Y:=Sqr(x);

Writeln(x:3,y:5);

X:=x+2;

Until x>10;

End.

Сначала задается первое значение аргумента х=2, затем внутри циклической части выполняются следующие действия:

1. 1. Вычисляется значение у при текущем значении х;

2. 2. Значения х и у выводятся на экран монитора;

3. 3. Вычисляется новое значение х прибавлением к нему двойки.

4. 4. Производится проверка: если х>10, то конец цикла, иначе переходим на шаг циклической части алгоритма.