1 of 17

Алгоритми з повтореннями для опрацювання величин. Цикл із передумовою.

Урок 61

8

2 of 17

Алгоритми з повтореннями.�Цикл із передумовою

Розділ 8 § 39

Для організації повторення дій (циклів) при записі алгоритмів мовою Lazarus використовують три різновиди операторів циклу:

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

з параметром

з передумовою

з післяумовою

8

© Вивчаємо інформатику teach-inf.at.ua

3 of 17

Алгоритми з повтореннями.�Цикл із передумовою

Розділ 8 § 39

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

Кожне виконання тіла циклу називають ітерацією.

8

© Вивчаємо інформатику teach-inf.at.ua

4 of 17

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

Розділ 8 § 39

Оператор повторення While (цикл «Поки») призначений для організації повторного виконання оператора, поки залишається істинною умова виконання циклу.

Синтаксис оператора:

While <умова> do

begin

<оператори тіла циклу>

end;

Вираз логічного типу

Оператори, які виконуються при кожній ітерації

8

© Вивчаємо інформатику teach-inf.at.ua

5 of 17

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

Розділ 8 § 39

Виконання оператора циклу While починається з обчислення значення логічного виразу — умови повторення циклу. Якщо умова:

Істинна

Хибна

то виконуються оператори тіла циклу і керування повертається на перевірку умови

то виконується оператор, який є наступним після оператора While

8

© Вивчаємо інформатику teach-inf.at.ua

6 of 17

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

Розділ 8 § 39

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

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

8

© Вивчаємо інформатику teach-inf.at.ua

7 of 17

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

Розділ 8 § 39

8

© Вивчаємо інформатику teach-inf.at.ua

8 of 17

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

Розділ 8 § 39

Логіка цього циклу змушує програму працювати вічно (нескінченний цикл).

Num := 0;

While Num < 20 do

Label1.Caption := IntToStr(Num)

Для переривання нескінченного циклу треба натиснути сполучення клавіш

8

© Вивчаємо інформатику teach-inf.at.ua

9 of 17

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

Розділ 8 § 39

Щоб побачити зміну значень у ході виконання циклу, в тіло циклу включать виклик методу:

Application.ProcessMessages

8

© Вивчаємо інформатику teach-inf.at.ua

10 of 17

Розділ 8 § 39

var A: Integer;

begin

А := 1; // Початкове значення А

While А о 100 do

begin

А := А + 1;

Label1.Caption := IntToStr(A);

Application.ProcessMessages; // обробка повідомлень

Sleep(100); // зупинка на 0,1 с

end;

end;

Поки А менше за 100, збільшувати значення А на одиницю і виводити значення змінної у Label.

Для призупинення роботи програми на 100 мілісекунд використано процедуру Sleep.

8

© Вивчаємо інформатику teach-inf.at.ua

11 of 17

Алгоритм обчислення суми n членів числової послідовності

Розділ 8 § 39

Алгоритм обчислення n-го члена послідовності натуральних чисел і суми п членів складається з таких дій:

1

задаються початкові значення А, — першого члена послідовності,�n — кількості членів, які потрібно обчислити;

2

задаються початкові значення лічильника членів послідовності�(і := 0) і суми (S := 0);

3

поки номер і-то члена послідовності, який обчислено, не досягне значення n— заданої кількості членів, повторюються дії: номер поточного доданка збільшується на 1; обчислюється значення наступного доданка А, обчислене значення А додається до суми S.

8

© Вивчаємо інформатику teach-inf.at.ua

12 of 17

Алгоритм обчислення суми n членів числової послідовності

Розділ 8 § 39

Знайти суму 20 елементів послідовності чисел

2,5; 3,0; 3,5; 4,0...

// Задаються початкові значення:

S := 0; // суми S

і := 0; // лічильника доданків і

А := 2.5; // доданка А

While і < 20 do begin

S := S + A; // додається до суми S

А := А + 0.5; // обчислюється наступне значення доданка А

і := і + 1

end;

8

© Вивчаємо інформатику teach-inf.at.ua

13 of 17

Розділ 8 § 39

var і: Integer; A, S: Double;

begin

// Задаються:

S:=1; // початкове значення суми S

А:=1; // значення першого доданка А

і:=1; // номер першого доданка

While A>0.01 do begin

і := і + 1;

А := 1/і; // Обчислення доданка А

S := S + А;

Label2.Caption := FormatFloat('0.####', A);

end;

Edit1.Text := FormatFloat('0.###', S);

end;

 

8

© Вивчаємо інформатику teach-inf.at.ua

14 of 17

Домашнє завдання

Проаналізувати

§ 39, ст. 190-195

Розділ 8 § 39

8

© Вивчаємо інформатику teach-inf.at.ua

15 of 17

Питання для самоперевірки

Розділ 8 § 39

8

© Вивчаємо інформатику teach-inf.at.ua

16 of 17

Працюємо за комп’ютером

Вправа 39, ст.194-195

Розділ 8 § 39

8

© Вивчаємо інформатику teach-inf.at.ua

17 of 17

Дякую за увагу!

8