ОРГАНІЗАЦІЯ ЦИКЛІВ В Turbo Pascal'і.
![]() |
Зміст | Задачі | ![]() |
При розробці алгоритмів розв'язування багатьох задач виникає необхідність повторення ряду кроків. Для організації таких повторень(циклів) при написанні програми на мові Паскаль використовується три різновидності операторів циклу: з параметром, з передумовою та післяумовою. Якщо число повторів тіла циклу наперед відоме, то частіше всього використовується оператор циклу з параметром.
Загальний вигляд оператора циклу з параметром:
for <параметр циклу>:=N1 to N2 do <тіло циклу >;
де N1 та N2 - початкове та кінцеве значення параметра циклу, тіло циклу може бути простим або складеним оператором. <Параметр циклу > ще називають лічильником циклу. Оператор for забезпечує виконання тіла циклу до тих пір, поки не будуть перебрані всі значення параметра циклу від початкового до кінцевого. Параметр циклу, його початкове та кінцеве значення повинні бути одного і того ж скалярного типу. При цьому можливий будь який стандартний тип, крім real. Якщо N1 та N2 цілі числа, а параметр циклу - цілочисельна змінна, то крок завжди рівний одиниці.
Приклад.
s:=0; for i:=1 to 20 do s:=s+i;
Для i=1, 2, 3,... , 20 буде виконуватись оператор присвоєння
S:=S+i, який накопичує в змінній S суму перших 20 натуральних чисел. Якщо N1 та N2-символьного типу, а їх значення відповідно рівні 'A' та 'Z', то параметр циклу прийматиме послідовні значення, які співпадають з алфавітом: A, B, C, D E .., Z.
Цикл по спадних значеннях параметра від N2 до N1 має вигляд:
for <параметр циклу> := N2 downto N1 do <тіло циклу>;
В цьому випадку параметр циклу приймає послідовні спадаючі значення даного типу від N2 до N1.
Приклад.
S:=0;for i:=20 to 1 do S:=S+i;
Параметр і змінюється від 20 до 1 з кроком –1.
Для оператора циклу з параметром існують деякі обмеження:оскільки параметр циклу
не може бути дійсного типу, то задати крок відмінний від 1 або -1 не можна;
значення параметра циклу, початкового та кінцевого значень параметрів циклу
змінювати в процесі виконання не можна; увійти в цикл можна тільки через його
початок, а вийти за допомогою оператора переходу по мітці, яка розташована зовні
даного циклу або за допомогою однієї з процедур Exit i Halt.
В тому випадку , коли крок параметра циклу відмінний від 1 і –1, або наперед
невідома кількість повторень тіла циклу, необхідно використовувати один з двох
інших типів оператора циклу: з передумовою чи післяумовою.
Оператор циклу з передумовою має вигляд:
While <умова> do <тіло циклу>
Виконання оператора починаючи з перевірки умови. Якщо вона
істинна (відповідний логічний вираз приймає значення true), то виконується тіло
циклу. Виконання операторів циклу повторюється до тих пір, поки умова не тане
хибною. Якщо ж умова була хибною при першому входженні до циклу, то тіло циклу
не виконується ні разу. Зрозуміло, що в тілі циклу повинен бути оператор, який
впливає на умову. В противному випадку, якщо умова істинна, то цикл буде виконуватись
нескінченну кількість разів. (Таку ситуацію називають зацикленням або "вічним
циклом").
Оператор циклу з післяумовою подібний до оператора циклу з передумовою, але
умова перевіряється після виконання операторів, що складають тіло циклу.
Загальний вигляд оператора циклу з післяумовою:
Repeat <тіло
циклу>
Until <умова>;
Виконання оператора <repeat> починається з виконання операторів тіла циклу. потім перевіряється умова і, якщо вона істинна, то здійснюється вихід з циклу. Якщо ж умова хибна, то знову виконується тіло циклу та перевіряється умова. Відмітимо, що на відміну від циклу з передумовою вихід з циклу з післяумовою здійснюється при істинності умови. Зарезервовані слова repeat та until грають роль операторних дужок. Тому операторні дужки begin та end є лишніми (хоч їх наявність не є помилковою).
![]() |
Зміст | Задачі | ![]() |