русс | укр

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

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


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


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


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


Циклічний обчислювальний процес (ЦВП) характеризується повторенням тих самих обчислень над деяким набором даних. Числом повторень циклу управляє спеціальна змінна, називана його лічильником або керуючої змінної циклу. На лічильник накладається умова, що визначає, доки слід виконувати цикл.

Повторюваний блок обчислень називають тілом циклу. У тілі циклу повинне бути забезпечена зміна значення лічильника, щоб він міг завершитися. Якщо тіло циклу полягає більш, ніж з одного оператора, воно полягає в операторные дужки begin ... end;. Однократне виконання тіла циклу називають його кроком.

Таким чином, для програмування циклу досить визначити умова, що управляє числом його повторень і описати оператори, що утворюють тіло циклу. Із цього погляду, теоретично можливі всього два види циклів – перевірка умови або передує виконанню тіла циклу, або відбувається після нього. Зобразимо ці цикли у вигляді блок-схем з відповідними описами:

условие
тело цикла

Цикл із передумовою: спочатку перевіряється умова, потім, залежно від того, істинно воно або неправильно, або виконується тіло циклу, або випливає перехід до оператора, що випливає за тілом циклу. Після завершення тіла циклу керування знову передається на перевірку умови. Природно, передбачається, що в тілі циклу була забезпечена деяка зміна вхідних в умову змінних – а якщо ні, то відбудеться зациклення й програма "зависне".

условие
тело цикла

Цикл із після-умовою: спочатку виконується тіло циклу, потім керування передається на перевірку умови. Залежно від істинності або хибності умови, тіло циклу виконується повторно або ж відбувається перехід до оператора, що випливає за тілом циклу. Усі, сказане про можливе зациклення для циклу із передумовою, справедливо й для циклу з після-умовою.

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

У мові Паскаль реалізовано обоє виду циклів. Цикл із передумовою має наступний загальний вид:

while логічний_вираз do begin

{оператори тіла циклу}

end;

Роботу циклу можна описати словами: "поки логічне вирази дійсне, повторюється тіло циклу".

Логічне вирази будується за правилами, вивченим у главі 7. Тіло циклу можуть утворювати будь-які оператори Паскаля. Якщо в тілі циклу всього один оператор, операторные дужки можна й не писати.

Загальний запис циклу з після-умовою наступна:

repeat

{оператори тіла циклу}

until логічний_вираз;

Працює цикл із після-умовою у такий спосіб: "тіло циклу повторюється доти, поки логічне вирази не стане дійсним". Зверніть увагу, що, на відміну від while, цикл repeat у Паскалі працює, поки умова неправильна. Ця відмінність підкреслюється використанням ключового слова until (" доти, поки не") замість while (" доти, поки"). Крім того, у вигляді виключення, тіло циклу repeat, навіть якщо воно складається з декількох операторів, можна не містити в операторные дужки.

Досить часто цикли взаємозамінні. Представимо, наприклад, що для кожного зі значень змінної x=1,2,…,20, потрібно виконати деякий розрахунки (математично цей закон зміни x можна записати як або ). Покажемо загальний вид циклів while і repeat:

x:=1; while x<=20 do begin {оператори розрахунків} x:=x+1; end; x:=1; repeat {оператори розрахунків} x:=x+1; until x>20;

Як видне з лістингу, що управляє змінної x в обох випадках привласнене початкове значення 1, обоє циклу змінюють значення x і, відповідно, умова циклу, оператором x:=x+1;, але для циклу repeat умова "перевернене" ("поки x не стане більше 20"), а тіло не укладене в операторные дужки.

Найчастіше використання одного із циклів виглядає більш бажаним. Наприклад, обробка введення користувача із клавіатури зручніше за допомогою repeat (спочатку користувач повинен нажати клавішу, потім випливають перевірки й обробка).

 


<== попередня лекція | наступна лекція ==>
Директиви компілятора й обробка помилок уведення | Цикл із лічильником і дострокове завершення циклів


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