Лекция: При виконанні оператора for з зарезервованим словом downto параметр циклу зменшується на одиницю, а керуюча умова має вигляд <параметр циклу> <кінцеве значення>.

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

Для обчислення другої суми, аналогічно, як у попередньому прикладі, командою File|New Application створимо новий проект. Присвоїмо формі заголовок Caption = Обчислення суми. Командою File|Save All запишемо програмний модуль у файл з іменем ULAB2_2.pas, а проект – LAB2_2.dpr.

Розмістимо на формі три компоненти Edit для введення початкових даних x, a, e та два для виведення значення суми і кількості доданків.

Крім цього, розмістимо на формі дві керуючі кнопки (компонент Button) з написами Обчислити та Вихід (властивість Caption) і програмними іменами Button1, Button2 (властивість Name) Рис. 2.1.

 

 

Рис.1.3. Форма Обчислення функції

 

Обробники кнопок Обчислити та Вихід містяться у програмному модулі ULAB2_2 і мають вигляд:

{Обробник кнопки Обчислити}

procedure TForm1.Button1Click(Sender: TObject);

VAR a, x, eps: real;

s, sn, st3, stax: real;

n, nf: longint;

BEGIN

{Введення початкових даних}

x:=StrToFloat(Edit1.Text);

a:=StrToFloat(Edit2.Text);

eps:=StrToFloat(Edit3.Text);

n:=0; stax:=1; st3:=1; nf:=1;s:=0;

Repeat

n:=n+1;

stax:=stax*(a+x);

st3:=st3*3;

nf:=nf*n;

sn:=sin(stax)/(st3+nf);

s:=s+sn;

Until abs(sn) < eps;

{Виведення результатів}

Edit4.Text:=FloatToStr(s);

Edit5.Text:=IntToStr(n);

end;

{Обробник кнопки Вихід}

procedure TForm1.Button2Click(Sender: TObject);

begin

Close;

end;

 

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

Приклад. Розробити програму, яка для заданих знаходить і друкує перший член і його номер у послідовності, для якого виконується умова і розглядається перших членів послідовності.

Для розв’язання задачі командою File|New Application створимо новий проект. На екрані з’явиться форма із заголовком Form1. Установимо цій формі заголовок Caption = Елементи послідовності. Тепер командою File|Save All запишемо програмний модуль у файл з іменем ULAB2_2.pas, а проект – PAB2_2.dpr.

Розмістимо на формі два компоненти Edit для введення початкових даних x і e, два – для виведення результатів. Пояснення до цих компонентів зробимо за допомогою компонента Label (властивість Caption).

 

Рис. 2.2. Форма Елементи послідовності

 

Крім цього, розмістимо на формі дві керуючих кнопки (компонент Button) з написами Обчислити та Вихід (властивість Caption) Рис. 2.1.

Обробник кнопки обчислити міститься в програмному модулі ULAB2_2. і має вигляд:

{Обробник кнопки Обчислити}

procedure TForm1.Button1Click(Sender: TObject);

var x, e: real;

ap, an: real;

n: integer;

begin

{Початкові дані}

x:=StrToFloat(Edit1.Text);

e:=StrToFloat(Edit2.Text);

{Обчислення елемента}

an:=x; n:=0;

repeat

ap:=an;

n:=n+1;

an:=(ap+x/ap)/2;

until (abs(an-ap) < e) or (n >= 1000);

{Виведення результатів}

Edit3.Text:=FloatToStr(an);

Edit4.Text:=FloatToStr(n);

end;

еще рефераты
Еще работы по информатике