русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Оператор циклу з післяумовою.


Дата додавання: 2014-11-27; переглядів: 921.


Попередній оператор перевіряє умову виходу із циклу перш, ніж виконувати оператори тіла циклу. Базова структура “ЦИКЛ ДО” вимагає виконання тіла циклу до першої перевірки умови виходу із циклу. Такій структурі відповідає оператор циклу з післяумовою:

REPEAT

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

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

………………

<оператор n>

UNTIL <ЛВ>;

Службове слово REPEAT оголошує цикл і відкриває його тіло, яке складають наступні оператори. Службове слово UNTIL закриває тіло циклу , а <ЛВ> містить умову виходу із циклу.

Тіло циклу може бути пустим або містити один чи більше операторів. В останньому випадку операторні дужки не потрібні: їх роль виконують службові слова REPEAT…UNTIL.

Умова виходу із циклу – це логічне значення, змінна або вираз з логічним результатом. Але на відміну від оператора циклу з передумовою , алгоритм виконання оператора циклу з післяумовою має такий зміст: виконувати тіло циклу, поки не стане істинною умова, тобто поки <ЛВ> не набере значення TRUE. Якщо це не відбудеться ніколи, цикл буде вічним:

REPEAT UNTIL FALSE;

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

В тілі циклу повинні міститися оператори, що змінюють значення змінних, які визначають, в свою чергу, значення <ЛВ>. В наведеному вище прикладі ця вимога не виконана.

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

Приклад. Скласти програму для обчислення значення функції

з похибкою ε , тобто знайти суму нескінченого ряду з точністю ε.

аким чином, умовою виходу із циклу буде виконання нерівності < ε, де загальний член ряду . При обчисленні зручно використати рекурентну формулу:

.

 

Програма матиме вигляд:

PROGRAM EX ;

VAR

X,EPS,AN,S: REAL;

N: INTEGER;

BEGIN

WRITELN(‘ВВЕСТИ X,EPS);READ(X,EPS);

N:=0;AN:=1;S:=1;

REPEAT

N:=N+1;

AN:=AN*X/N;

S:=S+AN

UNTIL ABS(AN)<EPS;

WRITELN(‘S= ‘,S,’ N=’,N)

END.

Завершуючи цю главу, треба згадати, що в базових структурах блоки “процес” можуть означати не лише лінійний процес обчислення за формулою, а будь-який складний процес, в тому числі розгалужений та циклічний. Тоді в тіло циклу треба вводити не лише оператори присвоювання, а також умовні оператори та оператори циклу. Такі алгоритми та програми звуться “розгалуження в циклі” та “цикл в циклі”. Щодо останніх, то глибина вкладення може бути досить великою і обмежується не можливостями Турбо Паскалю, а можливостями комп’ютера.

 


<== попередня лекція | наступна лекція ==>
Оператор циклу з передумовою. | Скалярні типи даних.


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн