Цикл з передумовою
За новою програмою
Урок 43
8
Запитання
Розділ 6 § 6.7
8
© Вивчаємо інформатику teach-inf.at.ua
Цикл з передумовою
Розділ 6 § 6.7
Ви вже знаєте, що цикл з передумовою як фрагмент алгоритму починається з команди перевірки умови й результатом виконання цієї команди може бути:
Істина (Так, true)
Хиба (Ні, false)
І залежно від результату виконання цієї команди – виконуватимуться:
Команди
тіла циклу
Команда алгоритму, наступна за циклом
або
8
© Вивчаємо інформатику teach-inf.at.ua
Цикл з передумовою
Розділ 6 § 6.7
У загальному випадку у цій команді визначається значення певного логічного виразу, яке може бути:
True
False
або
8
© Вивчаємо інформатику teach-inf.at.ua
Цикл з передумовою
Розділ 6 § 6.7
Загальний вигляд блок-схеми циклу з передумовою такий:
8
© Вивчаємо інформатику teach-inf.at.ua
Команда циклу з передумовою в Object Pascal
Розділ 6 § 6.7
Команда циклу з передумовою в мові програмування Object Pascal має такий вигляд:
While <логічний вираз>
Then begin
<команди тіла циклу>
end;
(англ. while - поки).
8
© Вивчаємо інформатику teach-inf.at.ua
Команда циклу з передумовою в Object Pascal
Розділ 6 § 6.7
Виконання цієї команди відбувається так: обчислюється значення логічного виразу; якщо це значення true, то виконуються команди тіла циклу, після чого знову обчислюється значення логічного виразу, і якщо це значення знову true, то знову виконуються команди тіла циклу, після чого знову обчислюється значення логічного виразу;
якщо значення логічного виразу дорівнює false, то команди тіла циклу не виконуються, а виконується команда, наступна за циклом.
8
© Вивчаємо інформатику teach-inf.at.ua
Команда циклу з передумовою в Object Pascal
Розділ 6 § 6.7
Звертаємо вашу увагу:
8
© Вивчаємо інформатику teach-inf.at.ua
Команда циклу з передумовою в Object Pascal
Розділ 6 § 6.7
Розглянемо задачу, алгоритм розв'язування якої містить цикл з передумовою.
Задача. Скільки потрібно взяти доданків, перший з яких дорівнює заданому дійсному числу, а кожний наступний на 3 більший від попереднього, щоб їхня сума перевищила 100?
8
© Вивчаємо інформатику teach-inf.at.ua
Команда циклу з передумовою в Object Pascal
Розділ 6 § 6.7
Даними цієї задачі є перший доданок. Вводитимемо його в поле.
Перед початком циклу присвоїмо:
Змінній s
Змінній n
яку використаємо для збереження суми, значення першого доданка
яку використаємо для збереження кількості взятих доданків, присвоїмо значення 1, бо в сумі вже враховано один (перший) доданок.
8
© Вивчаємо інформатику teach-inf.at.ua
Команда циклу з передумовою в Object Pascal
Розділ 6 § 6.7
До суми потрібно додавати наступні доданки, поки ця сума буде меншою, або дорівнюватиме 100. Тому логічний вираз у заголовку циклу матиме вигляд
s <= 100
У тілі циклу шукатимемо наступний доданок, додаватимемо його до поточного значення суми і збільшуватимемо кількість доданих доданків на 1.
8
© Вивчаємо інформатику teach-inf.at.ua
Команда циклу з передумовою в 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
Оператор циклу�з передумовою While
Розділ 8 § 39
Необхідно задавати початкові значення змінних, використовуваних у циклі.
Якщо при першій перевірці умова виявиться хибною, тіло циклу While не виконається жодного разу.
8
© Вивчаємо інформатику teach-inf.at.ua
Оператор циклу�з передумовою While
Розділ 8 § 39
Виконати цикл із передумовою при різних початкових значеннях змінної:
While X <= 10 do X := Х+1;
Початкове значення Х | Значення Х після виконання циклу | Кількість повторень |
7 | 11 | 4 |
10 | 11 | 1 |
15 | 15 | 0 |
8
© Вивчаємо інформатику teach-inf.at.ua
Оператор циклу�з передумовою While
Розділ 8 § 39
Логіка цього циклу змушує програму працювати вічно (нескінченний цикл).
Num := 0;
While Num < 20 do
Label1.Caption := IntToStr(Num)
Для переривання нескінченного циклу треба натиснути сполучення клавіш
Ctrl + Break.
8
© Вивчаємо інформатику teach-inf.at.ua
Оператор циклу�з передумовою While
Розділ 8 § 39
Щоб побачити зміну значень у ході виконання циклу, в тіло циклу включать виклик методу:
Application.ProcessMessages
8
© Вивчаємо інформатику teach-inf.at.ua
Розділ 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
Алгоритм обчислення суми n членів числової послідовності
Розділ 8 § 39
Алгоритм обчислення n-го члена послідовності натуральних чисел і суми п членів складається з таких дій:
1
2
3
8
© Вивчаємо інформатику teach-inf.at.ua
Алгоритм обчислення суми 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
Розділ 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
Розгадайте ребус
«Ребуси українською» © rebus1.com
Цикл
Розділ 6 § 6.7
8
© Вивчаємо інформатику teach-inf.at.ua
Розгадайте ребус
«Ребуси українською» © rebus1.com
Передумова
Розділ 6 § 6.7
8
© Вивчаємо інформатику teach-inf.at.ua
Дайте відповіді на запитання
Розділ 6 § 6.7
8
© Вивчаємо інформатику teach-inf.at.ua
Дайте відповіді на запитання
Розділ 6 § 6.7
8
© Вивчаємо інформатику teach-inf.at.ua
Домашнє завдання
Проаналізувати
§ 6.7, ст. 217-220
Розділ 6 § 6.7
8
© Вивчаємо інформатику teach-inf.at.ua
Працюємо за комп’ютером
Сторінка
219-220
Розділ 6 § 6.7
8
© Вивчаємо інформатику teach-inf.at.ua
Дякую за увагу!
За новою програмою
Урок 43
8