русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Оператор while


Дата додавання: 2014-11-27; переглядів: 892.


Оператор (цикл) while використовується в тому випадку, якщо деяку послідовність дій (інструкцій програми) треба виконати кілька разів, причому необхідне число повторень під час розробки програми невідомо і може бути визначено тільки під час роботи програми.

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

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

While умова do begin

// тут інструкції, які треба виконати кілька разів

End

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

Оператор while виконується таким чином:

1. Спочатку обчислюється значення виразу умова.

2. Якщо значення виразу умова рівне False (умова не виконується), то на цьому виконання інструкції while завершується.

3. Якщо значення виразу умова рівне True (умова виконується), то виконуються розташовані між begin і end інструкції тіла циклу. Після цього знову перевіряється виконання умови. Якщо умова виконується, то інструкції циклу виконуються ще раз. І так до тих пір, поки умова не стане помилковою (False).

Для того, щоб інструкції циклу while, які знаходяться між begin і end, були виконані хоч би один раз, необхідно, щоб перед виконанням інструкції while значення виразу умова була істинна. Алгоритм, відповідний інструкції while, представлений на мал. 2.

Рисунок 2 Алгоритм оператора while

 

Для того, щоб цикл завершився, потрібне, щоб послідовність інструкцій між begin і end впливала на значення виразу умова (змінювала значення змінних, що входять у вираз умова).

Розглянемо програму, яка обчислює значення числа ПІ з точністю, програми, що задається користувачем під час роботи. У основі алгоритму обчислення лежить той факт, що сума ряду 1 - 1/3 + 1/5 -1/7 + 1/9 + ... наближається до значення ПИ/4 при достатньо великій кількості членів ряду.

Кожен член ряду з номером n обчислюється за формулою: 1/(2*n - 1) і умножається на мінус один, якщо n парне (визначити, чи є ПІ парним, можна перевіркою залишку від ділення ПІ на 2). Обчислення закінчується тоді, коли значення чергового члена ряду стає меншим, ніж задана точність обчислення.

Вид діалогового вікна програми під час її роботи приведений на мал. 3. Користувач вводить точність обчислення в поле введення (Edit1). Після клацання на командній кнопці Обчислити (Buttonl) програма обчислює значення числа л і виводить результат в полі мітки (Label1).

Як і в попередніх прикладах, основну роботу виконує процедура обробки події OnClick.

Рисунок 3 Діалогове вікно програми Обчислення ПІ

 

Лістинг обчислення числа ПІ

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 ButtonlClick(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(editl.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; labell.caption:= 'ПІ рівне '+ FloatToStr(pi)+ #13

+ 'Підсумовано '+IntTostr(n)+' членів ряду.'; end;

end.

 


<== попередня лекція | наступна лекція ==>
Крапку з комою після do не ставлять. | Unti1 умова


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн