Wiki-стаття "Команди повторення (циклу)."

Матеріал з Iteach WIKI
Перейти до: Навігація, пошук

Команди повторення (циклу)

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

  • оператор циклу з параметром (For);
  • оператор циклу з передумовою (While);
  • оператор циклу з післяумовою (Repeat).

Вказівка повторення з передумовою (Цикл — while) Вказівка повторення з передумовою — whileпризначена для організації багатократного виконання групи вказівок (тіло циклу) до тих пір, поки залишається істинною умова виконання циклу. Значення службового слова while— поки вказівка повторення з передумовою записується у вигляді:

while<умова>do

begin

<вказівка1>;

<вказівка2>;

<вказівкаN>


end;

Наприклад.

while I<4 do

begin

S:=S+I;

I:=I+I;

end;

Виконується ця вказівка таким чином. Обчислюється значення виразу-умови. Якщо умова істинна (приймає значення TRUE), то виконується група вказівок (тіло циклу). Виконання програми знову повертається до перевірки умови циклу. Якщо умова хибна (приймає значення FALSE), то виконується вказівка, яка знаходиться після вказівки повторення з передумовою.

Примітка.

1. Якщо умова у вказівці повторення хибна при першій же перевірці, то тло циклу не виконується жодного разу. Умова вказівки є умовою входження і цикл.

2. Умову вказівки повторення з передумовою необхідно підбирати таким чином, щоб в деякий момент вона змінила своє значення з TRUE на FALSE, інакше виникне ситуація "зациклювання" програми.

3. Програмісту необхідно самому потурбуватись про необхідність збільшення (зменшення) лічильника циклу на 1. Це можна зробити таким чином І:=І+1.

4. Входження в тіло вказівки повторення можливе тільки через заголовок цієї вказівки.

Вказівка повторення з післяумовою (Цикл-repeat-until)

Вказівка повторення з післяумовою призначена для організації багатократного виконання групи вказівок (тіло циклу) до тих пір, поки умова виконання циклу не стане істинною,

repeat

<вказівка1>;

<вказівка2>;

<вказівкаN>

until<умова>;

Наприклад.

repeat

S:=S+I;

I:=I+1

untilI>=4;

Службові слова вказівки означають:

repeat— повторювати, until— поки.

Вказівка повторення з післяумовою виконується таким чином. Спочатку виконуються вказівки, які входять в тіло циклу. Потім обчислюється значення умови-виразу. Якщо умова хибна (тобто має значення FALSE), то знову виконуються вказівки тіла циклу. Якщо умова стає істинною (TRUE), то виконання циклу припиняється і виконується наступна вказівка програми.

Примітка.

1. Тіло циклу, яке складається з групи вказівок, не потрібно брати в дужки (begin — end), оскільки службові слова repeat — untilвідіграють роль дужок.

2. Тіло циклу у вказівці повторення з післяумовою виконується щонайменше один раз.

3. Умова вказівки є умовою виходу з циклу.

4. Входження в тіло вказівки повторенням можливе тільки через заголовок цієї вказівки.

Вказівка повторення з параметром (FOR— ТО — DO).

Вказівка повторення з параметром призначена для організації багатократного виконання тіла циклу для значень параметра циклу з деякої впорядкованої дискретної множини.

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

1. for<параметр:=вираз1>to<вираз2>do

begin

<вказівка1>;

<вказівка2>;

<вказівкаN>;

end;


2. for<параметр:=вираз1>downto<вираз2>do

begin

<вказівка1>;

<вказівка2>;

<вказівкаN>;

end;

Параметр вказівки(лічильник, індекс) — це змінна скалярного (цілого, символьного, логічного або перелічувального) типу, крім дійсного.

Вираз 1 (початковий параметр вказівки) — це деяка константа такого ж самого типу, що й параметр вказівки.

Вираз 2(кінцевий параметр вказівки) — це деяка константа такого ж самого типу, що й параметр вказівки.

Якщо в тілі вказівки повторення з параметром необхідно виконати тільки одну вказівку, то складеної вказівки begin... endвикористовувати не потрібно.

for<параметр:=вираз1>to<вираз2>do

<вказівка1>;

Вказівка повторення з параметром виконується таким чином:

Вказівка For — to — do.

Наприклад.

For i:=К to M do

begin

<вказівка1>;

<вказівка2>;

<вказівкаN>;

end;


Параметру циклу і присвоюється початкове значення К. Він порівнюється з кінцевим значенням М. Якщо К<=М, то виконується тіло вказівки повторення. Значення К автоматично збільшується на 1 (тобто стає наступним елементом) і знову порівнюється зі значенням М. Якщо під час перевірки отримаємо, що К>М, то виконання вказівки повторення припиняється і виконується наступна після неї вказівка програми.

Якщо під час першого порівняння К і М виявиться що К>М, то тіло вказівки не виконується жодного разу.

2. Вказівка For — downto— do.

Наприклад.

for i:=K downto M do

begin

<вказівка1>;

<вказівка2>;

<вказівкаN>;

end;

Параметру циклу і присвоюється початкове значення К. Він порівнюється з кінцевим значенням М. Якщо К>=М, то виконується тіло вказівки повторення. Значення К автоматично зменшується на 1 (тобто стає попереднім елементом) і знову порівнюється зі значенням М. Якщо під час перевірки отримаємо, що К<М, то виконання вказівки повторення припиняється і виконується наступна після неї вказівка програми. Якщо під час першого порівняння К і М виявиться, що К<М, то тіло вказівки не виконується жодного разу.

Примітка.

1. Вказівку повторення з параметром зручно використовувати в тих випадках, коли попередньо можна визначити кількість повторень.

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

3. Параметр циклу повинен бути описаним у розділі змінних.

4. Значення параметра циклу після закінчення виконання вказівки повторення володіє кінцевим значенням, тому перед повторним його використанням йому необхідно знову присвоїти нове початкове значення.

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

Цикл з передумовою While (поки умова істинна) Цикл з постусловіем Repeat (до істинності умови)

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

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

3. Цикл працює поки умова істинна (поки True) 3. Цикл працює поки умова помилкова (поки False)

4. Цикл завершується, коли умова стає помилковим (до False) 4. Цикл завершується, коли умова стає істинним (до True)

5. Цикл може не виконатися жодного разу, якщо початкове значення умови при вході в цикл False 5. Цикл обов'язково виконається як мінімум один раз

6. Якщо в тілі циклу потрібно виконати більше одного оператора, то необхідно використовувати складений оператор 6. Незалежно від кількості операторів у тілі циклу, використання складеного оператора не потрібно

Цикл з лічильником (з параметром) For

• Початкова установка змінної лічильника циклу до заголовка не потрібно

• Зміна в тілі циклу значень змінних, що стоять у заголовку не допускається

• Кількість ітерацій циклу незмінно і точно визначається значеннями нижньої і верхньої меж і кроку збільшення

• Нормальний хід роботи циклу може бути порушений оператором goto або процедурами Break і Continue

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