logo
методичка_1_05_ВНУ

Цикл з післяумовою

Іншим способом організації циклічного процесу, коли кіль­кість повторень невідома, є використання оператора циклу з післяумовою. Загальний вигляд цього оператора такий:

repeat

<оператор 1>;

<оператор 2>;

......................

<оператор n>

until <умова>;

де <умова> - це логічний вираз; <оператор 1> ... <оператор n> - будь-які оператори мови Паскаль.

Дія оператора з післяумовою подібна до дії оператора з передумовою (while), однак перевіряється умова закінчення циклу після виконання кожного циклу. Тому цикл з післяумо­вою виконується мінімум один раз. У ньому виконуються всі оператори, записані між словами repeat і until, які відіграють роль операторних дужок. Оператори виконуються доти, доки умова дорівнює false.

Фрагмент програми обчислення мінімальної кількості членів гармонічного ряду, сума яких перевищує деяку границю, із застосуванням оператора циклу з післяумовою:

sum:=0;

numb:=0;

repeat

numb:=numb+1;

sum:=sum+1/numb

until sum>board;

Задаючи циклічні обчислення за допомогою операторів з перед- і післяумовою, треба враховувати таке:

  1. перед кожним виконанням циклу умова його закінчення повинна бути визначена, тобто мати конкретне значення;

  2. тіло циклу повинно містити оператори, які впливають на умову закінчення, інакше цикл буде виконуватись безкінеч­но;

  3. умова закінчення циклу повинна врешті-решт викона­тися.

Наведемо приклад, коли цикл доцільно організувати за до­помогою оператора циклу з післяумовою. Нехай треба вводити по черзі символи і виводити їх, доки не буде введено символ "*".

{Введення і виведення символу до введення символу ‘*’}

program DrucSym;

uses

Crt;

var

sym: char;

begin

repeat

read(sym);

writeln(sym)

until sym = '*'

end.

Тут перевірка умови можлива тільки після введення чер­гового символу.