русс | укр

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

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


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


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


Дата додавання: 2014-02-04; переглядів: 1351.


Оператори повторення

Тема: Оператори циклу в мові Паскаль. Цикл з параметром. Цикл з передумовою. Цикл з післяумовою. Порівняльний аналіз операторів циклу. Оператор переходу.

Цикл - алгоритмічна структура для запису багаторазово повторюваних дій.

Оператори повторення мови Turbo Pascal підтримують напряму три із чотирьох класичних керуючих конструкцій повторення: цикл із передумовою (while), цикл із післяумовою (repeat) і цикл із лічильником (for).

 

Операторwhileразом з оператором caseє самими універсальними керуючими конструкціями. За допомогою операторів caseможна записати умову розгалуження довільної складності, а за допомогою оператора whileможна записати будь-яку циклічну дію.

Спрощено загальну структуру оператора циклу із передумовою можна зобразити одним із двох наступних способів.

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

Оператор whileдозволяє багаторазово виконувати ті самі дії залежно від деякої Умови, що записується між ключовими словами whileі do і повинне бути виразом логічного типу, тобто приймати тільки значення True або False.

Опишемо роботу циклу whileбільш докладно. Спочатку, при вході в цикл, обчислюється Умова. Якщо вона дорівнює False, то вхід у цикл не виконується й керування передається операторові, що випливає безпосередньо за Операторами тіла циклу. Якщо ж Умова дорівнює True, то відбувається вхід у цикл і однократне виконання Операторів його тіла. Як тільки досягнуто кінець тіла циклу, керування знову передається на його заголовок, де знову обчислюється Умова. Якщо значення Умови усе ще дорівнює True (що залежить від зміни значень змінних під час попереднього виконання Операторів циклу), то тіло циклу виконується ще один раз, і так далі. Як тільки чергове обчислення Умови циклу дає значення False, робота циклу завершується.

З метою порівняння властивостей операторів циклу while, repeat і for при описі роботи кожного з них розглянемо, як з їхньою допомогою записується той самий фрагмент програми, що обчислює суму елементів масиву розмірністю в n елементів.

Const n = 20; Begin . . . Summa := 0; i := 1; {Повинні бути початкові установки змінних, що стоять в умові циклу} while i <= ndo begin Summa := Summa + A[i]; i := i + 1;{Як мінімум в одному операторі тіла циклу повинна бути зміна} {змінних умови циклу, що приводять в результаті до хибності умови} end . . . end.

 
 

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

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

 

Спрощено загальну структуру оператора repeat можна представити так:

repeat Оператор; Оператор;Оператор untilУмова

Помітимо, що на відміну від while, оператор repeatне вимагає використання складеного оператора, коли в його тілі необхідно записати більше одного оператора.

Крім того, оператор repeat є не настільки універсальним, як оператор while, оскільки його Умоварозташовується наприкінці тіла циклу й оператори його тіла будуть, на відміну від циклу while, завжди виконуватися як мінімум один раз. Це означає, що оператор repeat не годиться для запису циклів, у яких може виникати ситуація, коли тіло циклу не повинне виконуватися жодного разу.

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

Загальний принцип роботи циклу repeat такий же, як у циклу із передумовою, але навідміну від while, Умоваперевіряється не перед виконанням тіла циклу, а після нього, і керування циклом repeat прямо протилежно керуванню циклом while. Toбто цикл триває поки Умовадорівнює False і закінчується, коли Умовастає рівною True.

Constn = 20; Begin . . . Summa : = 0; i := 1; {Повинні бути початкові установки змінних, що стоять в умові циклу} Repeat Summa := Summa + A[i]; i : = i + 1; {Як мінімум в одному операторі тіла циклу повинна бути зміна} {змінні умови циклу, що приводить в результаті до хибності умови} until i > n . . . end.

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


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