1 of 27

Цикл з передумовою

За новою програмою

Урок 43

8

2 of 27

Запитання

Розділ 6 § 6.7

  1. Який вигляд має і як виконується команда циклу з лічильником в Object Pascal?
  1. Який вигляд має і як виконується блок-схема циклу з передумовою?
  1. У яких випадках в алгоритмах використовується цикл з лічильником, а в яких - цикл з передумовою?

8

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

3 of 27

Цикл з передумовою

Розділ 6 § 6.7

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

Істина (Так, true)

Хиба (Ні, false)

І залежно від результату виконання цієї команди – виконуватимуться:

Команди

тіла циклу

Команда алгоритму, наступна за циклом

або

8

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

4 of 27

Цикл з передумовою

Розділ 6 § 6.7

У загальному випадку у цій команді визначається значення певного логічного виразу, яке може бути:

True

False

або

8

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

5 of 27

Цикл з передумовою

Розділ 6 § 6.7

Загальний вигляд блок-схеми циклу з передумовою такий:

8

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

6 of 27

Команда циклу з передумовою в Object Pascal

Розділ 6 § 6.7

Команда циклу з передумовою в мові програмування Object Pascal має такий вигляд:

While <логічний вираз>

Then begin

<команди тіла циклу>

end;

(англ. while - поки).

8

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

7 of 27

Команда циклу з передумовою в Object Pascal

Розділ 6 § 6.7

Виконання цієї команди відбувається так: обчислюється значення логічного виразу; якщо це значення true, то виконуються команди тіла циклу, після чого знову обчислюється значення логічного виразу, і якщо це значення знову true, то знову виконуються команди тіла циклу, після чого знову обчислюється значення логічного виразу;

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

8

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

8 of 27

Команда циклу з передумовою в Object Pascal

Розділ 6 § 6.7

Звертаємо вашу увагу:

  • якщо в тілі циклу лише одна команда, то операторні дужки begin і end можна не ставити;
  • серед команд тіла циклу можуть бути й лінійні фрагменти, і розгалуження, й інші цикли.

8

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

9 of 27

Команда циклу з передумовою в Object Pascal

Розділ 6 § 6.7

Розглянемо задачу, алгоритм розв'язування якої містить цикл з передумовою.

Задача. Скільки потрібно взяти доданків, перший з яких дорівнює заданому дійсному числу, а кожний наступний на 3 більший від попереднього, щоб їхня сума перевищила 100?

8

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

10 of 27

Команда циклу з передумовою в Object Pascal

Розділ 6 § 6.7

Даними цієї задачі є перший доданок. Вводитимемо його в поле.

Перед початком циклу присвоїмо:

Змінній s

Змінній n

яку використаємо для збереження суми, значення першого доданка

яку використаємо для збереження кількості взятих доданків, присвоїмо значення 1, бо в сумі вже враховано один (перший) доданок.

8

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

11 of 27

Команда циклу з передумовою в Object Pascal

Розділ 6 § 6.7

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

s <= 100

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

8

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

12 of 27

Команда циклу з передумовою в Object Pascal

Розділ 6 § 6.7

Відповідний фрагмент проекту матиме такий вигляд:

var a, s: real; n: integer;

begin

a := StrToFloat (Edit1.Text);

s := a; n := 1;

while s <=100 do

begin

a := a+3; s := s+a;

n := n+1;

end;

Label1.Caption := IntToStr(n);

end;

8

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

13 of 27

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

Розділ 8 § 39

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

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

8

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

14 of 27

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

Розділ 8 § 39

Виконати цикл із передумовою при різних початкових значеннях змінної:

While X <= 10 do X := Х+1;

Початкове

значення Х

Значення Х після виконання циклу

Кількість повторень

7

11

4

10

11

1

15

15

0

8

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

15 of 27

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

Розділ 8 § 39

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

Num := 0;

While Num < 20 do

Label1.Caption := IntToStr(Num)

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

Ctrl + Break.

8

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

16 of 27

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

Розділ 8 § 39

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

Application.ProcessMessages

8

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

17 of 27

Розділ 8 § 39

var A: Integer;

begin

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

While А tо 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

18 of 27

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

Розділ 8 § 39

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

1

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

2

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

3

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

8

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

19 of 27

Алгоритм обчислення суми 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

20 of 27

Розділ 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

21 of 27

Розгадайте ребус

«Ребуси українською» © rebus1.com

Цикл

Розділ 6 § 6.7

8

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

22 of 27

Розгадайте ребус

«Ребуси українською» © rebus1.com

Передумова

Розділ 6 § 6.7

8

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

23 of 27

Дайте відповіді на запитання

  1. Який вигляд має блок-схема циклу з передумовою? Поясніть виконання цього циклу.
  1. Чи можуть команди тіла циклу з передумовою не виконуватись жодного разу? Поясніть свою відповідь. Наведіть приклади.
  1. Чи може виконання циклу з передумовою ніколи не закінчитися? Поясніть свою відповідь. Наведіть приклади.
  1. Чим відрізняються між собою цикл з лічильником і цикл з передумовою?

Розділ 6 § 6.7

8

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

24 of 27

Дайте відповіді на запитання

  1. У чому полягають відмінності у виконанні основних алгоритмічних структур: слідування, розгалуження, цикл з лічильником і цикл з передумовою?
  1. Який загальний вигляд команди циклу з передумовою в Object Pascal?
  1. Як виконується команда циклу з передумовою в Object Pascal?

Розділ 6 § 6.7

8

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

25 of 27

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

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

§ 6.7, ст. 217-220

Розділ 6 § 6.7

8

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

26 of 27

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

Сторінка

219-220

Розділ 6 § 6.7

8

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

27 of 27

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

За новою програмою

Урок 43

8