
- •Комп’ютерний практикум №4
- •Керуючі структури
- •Мета роботи: ознайомитися з логічними і циклічними структурами в середовищі Delphi.
- •Теоретичні відомості
- •1 Умова
- •2.1 Інструкція if
- •2.2 Інструкція case
- •Interface
- •Implementation
- •3 Цикли
- •3.1 Інструкція for
- •3.2 Інструкція while
- •Interface
- •Implementation
- •3.3 Інструкція repeat
- •Interface
- •Implementation
- •4 Інструкція goto
- •Індивідуальні завдання
- •Контрольні питання
3.2 Інструкція while
Інструкція (цикл) while використовується в тому випадку, якщо деяку послідовність дій (інструкцій програми) треба виконати кілька разів, причому необхідне число повторень під час розробки програми невідомо і може бути визначено тільки під час роботи програми.
У загальному вигляді інструкція while записується таким чином:
while умова do
begin
// інструкції, які треба виконати кілька разів
еnd;
де
умова – вираз логічного типу, що визначає умову виконання інструкцій циклу.
Інструкція while виконується таким чином:
1. Обчислюється значення виразу умова.
2. Якщо значення виразу умова дорівнює False (умова не виконується), то на цьому виконання інструкції while завершується.
3. Якщо значення виразу умова дорівнює True (умова виконується), то виконуються розташовані між begin і end інструкції тіла циклу. Після цього знову перевіряється виконання умови. Якщо умова виконується, то інструкції циклу виконуються ще раз. І так до тих пір, поки умова не стане хибною (False).
Приклад 4
Програма, яка обчислює значення числа π з точністю, що задається користувачем під час роботи програми. В основі алгоритму обчислення лежить той факт, що сума ряду 1 - 1/3 + 1/5 - 1/7 + 1/9 + ... наближається до значення π/4 при досить великій кількості членів ряду. Кожен член ряду з номером n обчислюється за формулою: 1/(2 * n-1) і множиться на мінус один, якщо n парне (визначити, чи є n парним, можна перевіркою залишку від ділення n на 2). Обчислення закінчується тоді, коли значення чергового члена ряду стає менше, ніж задана точність обчислення.
Вид діалогового вікна програми під час її роботи наведено на рисунку 5. Користувач вводить точність обчислення в полі вводу (Edit1). Після натискання на командній кнопці Обчислити (Button1) програма обчислює значення числа π і виводить результат в поле мітки (Label1).
Лістинг 2. Обчислення числа π.
unit pi_;
Interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
type
TForm1=class(TForm)
Edit1:TEdit; //точність обчислення
Button1:TButton; //кнопка Обчислити
Label1:TLabel;
Label2:TLabel; //поле виведення результату
procedure Button1Click(Sender:TObject);
private
{Private declarations}
public
{Public declarations)
end;
var
Form1:TForm1;
Implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender:TObject);
var
pi:real; //значення ПІ, що обчислюється
t:real; //точність обчислення
n:integer; //номер члена ряду
elem:real; //значення члена ряду
begin
pi:=0;
n:=1;
t:=StrToFloat(Edit1.Text);
elem:=1; //щоб почати цикл
while elem >= t do
begin
elem:=1/(2*n-1);
if n MOD 2 = 0
then pi:=pi-elem
else pi:=pi+elem;
n:=n+1;
end;
pi:=pi*4;
Label2.Caption:='ПІ дорівнює '+FloatToStr(pi)+#13
+'Додано '+IntTostr(n)+' членів ряду.';
end;
end.
Рисунок 5 – Діалогове вікно програми обчислення π
3.3 Інструкція repeat
Інструкція repeat використовується в програмі в тому випадку, якщо необхідно виконати повторні обчислення (організувати цикл), але число повторень під час розробки програми невідомо і може бути визначено тільки під час роботи програми, тобто визначається ходом обчислень.
У загальному вигляді інструкція repeat записується таким чином:
repeat
// інструкції
until умова
де умова – вираз логічного типу, що визначає умову завершення циклу.
Інструкція repeat виконується таким чином:
1. Спочатку виконуються інструкції тіла циклу, які знаходяться між repeat і until.
2. Потім обчислюється значення виразу умова. Якщо умова хибна (значення виразу умова дорівнює False), то інструкції тіла циклу виконуються ще раз.
3. Якщо умова істина (значення виразу умова дорівнює True), то виконання циклу припиняється.
Таким чином, інструкції циклу, що знаходяться між repeat і until, виконуються до тих пір, поки умова хибна (значення виразу умова дорівнює False).
Приклад 5
Програма, яка перевіряє, чи є введене користувачем число простим (число називається простим, якщо воно ділиться тільки на одиницю і саме на себе).
Перевірити, чи є число n простим, можна діленням числа n на два, на три і т. д. до n і перевіркою залишку після кожної операції ділення. Якщо після чергового ділення залишок дорівнює нулеві, то це означає, що знайдено число, на яке n ділиться без залишку. Порівнявши n і число, на яке n розділилося без залишку, можна визначити, чи є n простим числом.
Форма додатка Просте число зображена на рисунку 6, програма приведена в лістингу 3.
Лістинг 3. Просте число
unit simple_;