Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
інформатика.docx
Скачиваний:
2
Добавлен:
27.04.2019
Размер:
85.49 Кб
Скачать

Циклічні алгоритми.

Циклом називається повторення одних і тих самих дій. У мові Pascal є кілька різних операторів циклу. Розглянемо кожен із них.

Оператор циклу For.

Якщо потрібно повторити цикл наперед відоме число разів, то зручно використовувати оператор циклу for (для):

for i:=n1 to n2 do <тіло циклу>;

Змінна і називається змінною циклу, яка змінюється від значення n1 до n2 з кроком 1. Тобто, перший раз тіло циклу виконається для значення i=n1, другий раз для значення i=n1+1, і т.д. Останній раз тіло циклу виконається для значення i=n2. Якщо n1>n2, то тіло циклу не виконається жодного разу. Наприклад, рядок програми

for i:=1 to 10 do Writeln('Цикл виконується ', i ,'-й раз !');

надрукує на екрані дисплея 10 повідомлень:

Цикл виконується 1-й раз !

Цикл виконується 2-й раз !

. . . . . . . . .

Цикл виконується 10-й раз !

Якщо потрібно щоб значення параметра циклу зменшувалось від більшого значення до меншого, то використовують такий варіант циклу for:

for i:=5 downto 1 do Writeln('Через ', i ,' кроків закінчиться цикл !');

Крок, на який змінюється параметр циклу for завжди 1 (for-to) або -1 (for-downto).

У наведених прикладах тіло циклу складалось із одного оператора. Якщо потрібно виконати в циклі цілий блок операторів, використовують операторні дужки begin-end. Наприклад, наступний фрагмент виводитиме на екран табличку значень функції на проміжку [-1; 1] з кроком 0.1.

for i:=-10 to 10 do

begin

x:=i*0.1;

y:=Sqr(x);

Writeln('При х=',x:8:4,'y= ',y:8:4);

end;

Записи x:8:4 та y:8:4 означають, що для виведення дійсних чисел x та у відведеться 8 позицій, 4 з яких - для запису знаків після коми.

Оператор циклу while.

Якщо кількість повторень циклу невідома наперед, або якщо крок параметру циклу відмінний від одиниці, то використовують оператор циклу while (поки). Синтаксис оператора while такий:

while <умова> do <тіло циклу>;

По іншому оператор циклу while називають циклом із передумовою. Цикл виконується поки вказана <умова> приймає істинне значення (True). І як тільки умова прийме хибне значення (False), цикл припиниться і програма перейде на виконання наступного оператора.

Наприклад,

while c<>'q' do

begin

Writeln('Введіть значення');

Readln(c);

end;

У наведеному прикладі програма пропонуватиме ввести значення змінної с, поки з клавіатури не буде введено символ 'q'. Але, якщо перед початком циклу с буде дорівнювати 'q' тіло циклу не виконається жодного разу, так як умова c<>'q' прийме значення False.

Оператор циклу repeat - until

У випадках, якщо потрібно, щоб тіло циклу виконалось принаймні один раз, використовують цикл із післяумовою repeat - until (повторювати поки):

repeat

<тіло циклу>

until <умова>;

Тіло циклу обов'язково виконується перший раз, потім перевіряється вказана<умова>, і якщо вона виконується, то програма виходить з циклу, інакше тіло циклу повторюється до тих пір, поки умова не прийме значення True. Зазначимо, що<умова> в циклі repeat - until є умовою виходу із циклу, а в циклі while - умовою продовження циклу. Для однієї задачі ці умови є протилежними.