Оператори циклу з передумовою WHILE - DO

Цикл з попередньою умовою використовується, як правило, у тих випадках, коли заздалегідь не відоме число повторень циклу.

Форма запису оператора циклу з передумовою:

WHILE <логічний вираз> DO

BEGIN

<Оператори циклічної частини програми>

END;

тут WHILE (поки) і DO (виконати) − службові слова; <логічний вираз> − вираз булевого типу.

Виконання оператора розпочинається з перевірки істинності логічного виразу. Якщо він має значення TRUE, то виконується циклічна частина програми. Потім виконання оператора циклу повторюється до тих пір, поки логічний вираз не стане рівним FALSE. Як тільки виходить значення FALSE, керування передається операторові, що йде за оператором циклу. Якщо вираз булевого типу FALSE при першому вході в цикл, то циклічна частина програми не виконується жодного разу [2].

Проілюструємо використання оператора циклу з передумовою.

Приклад 3.2. Знайти суму ряду з точністю .

При складанні програми вважати, що точність досягнута, якщо для поточного члена ряду аi виконується співвідношення аiε.

У таких задачах для обчислення поточного члена ряду аi раціонально використати рекурентне співвідношення: , де коефіцієнт заздалегідь обчислюється.

Для цього прикладу

 

program pr32;

uses crt;

const eps = 0.1E-3;

var i: integer; y, Sum: real;

begin clrscr;

sum:=0; {Обнуляємо лічильник} i:=1; y:=1/3; {при i=1}

WHILE y>=eps DO

begin

sum:=sum+y;

writeln('i=', i:2, ' y ', y:8:5, ' sum=', sum:8:5);

i:=i+1; y:=y*(i+1)/(2*i+1)

end;

readkey end.