Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Belova_TM

.pdf
Скачиваний:
56
Добавлен:
06.05.2015
Размер:
2.46 Mб
Скачать

Программирование в системе Delphi с использованием подпрограмм 121

Рис. 7.5. Изображение формы

3. Пример программы:

program Project1; uses

Forms,

Unit1 in 'Unit1.pas' {Form1}; {$R *.res}

begin

Application.Initialize; Application.CreateForm(TForm1, Form1); Application.Run;

end.

unit Unit1; interface uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;

type

TForm1 = class(TForm)

Edit1: TEdit;

// поле для ввода X

Edit2: TEdit;

// поле для ввода N

122 Программирование в системе Delphi с использованием подпрограмм

Edit3: TEdit;

// поле для вывода S (процедура)

Edit4: TEdit;

// поле для вывода S (функция)

Edit5: TEdit;

// поле для вывода S (рекурсивная

 

// функция)

StaticText1: TStaticText;

//

StaticText2: TStaticText;

// комментарии к полям

Button1: TButton;

 

// кнопка выполнить

procedure Button1Click(Sender: TObject); // процедура, //вызываемая при щелчке левой кнопкой мыши на Button1; end;

var

Form1: TForm1; implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject); var X,S,R:extended;

N,K:integer;

procedure FAKTproc(K:integer;var R:extended); // вычисление с

// помощью процедуры var i:integer;

begin

R:=1;

for i:=1 to K do R:=R*i;

end;

function FAKTfunc(K:integer):extended; // вычисление с помощью

//функции var i:integer; begin

Result:=1;

for i:=1 to K do Result:=Result*i;

end;

function FAKTrec(K:integer):extended; // вычисление с помощью

//рекурсии

begin

if k>0 then

Программирование в системе Delphi с использованием подпрограмм 123

Result:=k*FAKTrec(k–1) else Result:=1;

end; begin

X:=StrToFloat(Edit1.Text);

N:=StrToInt(Edit2.Text);

S:=0;

for K:=1 to N do begin FAKTproc(K,R); S:=S+cos(K*X)/R; end;

Edit3.Text:=FloatToStr(S);

S:=0;

for K:=1 to N do begin R:=FAKTfunc(K); S:=S+cos(K*X)/R; end;

Edit4.Text:=FloatToStr(S);

S:=0;

for K:=1 to N do begin R:=FAKTrec(K);

S:=S+cos(K*X)/R;

end;

Edit5.Text:=FloatToStr(S);

end;

end.

Контрольные вопросы к главе 7

1.Для чего предназначаются подпрограммы?

2.Что включает в себя заголовок процедуры?

3.Что включает в себя заголовок функции?

4.Какую структуру имеет процедура?

5.Какую структуру имеет функция?

124Программирование в системе Delphi с использованием подпрограмм

6.Чем отличается процедура от функции?

7.Какая существует взаимосвязь между формальными и фактическими параметрами?

8.Какие существуют разновидности параметров подпро-

грамм?

9.Чем отличаются параметры-переменные от параметровконстант?

10.Чем отличаются параметры-значения от параметровконстант?

11.С какой целью используются открытые массивы?

12.В чем суть рекурсивного метода организации вычисле-

ний?

13.Какие достоинства и недостатки рекурсивного метода?

14.Каким образом реализуется косвенная рекурсия?

Задания к лабораторной работе № 7

1. Составить программу вычисления функции Y и суммы S, представляющей собой формулу разложения заданной функции Y в ряд. При составлении программы необходимо использовать процедуры или функции, основанные на нерекурсивном и рекурсивном методах вычислений.

Варианты заданий приведены ниже (табл. 7.2).

Примечания:

1.В первой графе содержится порядковый номер задания. Рекомендуется выбирать номер задания, соответствующий порядковому номеру фамилии студента в списке группы.

2.Во второй графе приводится формула функции Y.

3.В третьей графе помещается формула разложения функции Y в ряд.

4.В четвертой графе показан диапазон значения аргумента x, для которого следует выполнить вычисления. Рекомендуется вычислить Y и S для

11 точек заданного диапазона изменения x.

Шаг изменения аргумента x определить по формуле:

H= xk xí 10

где хн – начальное значение x;, хк– конечное значение x.

5. В пятой графе указано значение n– количество членов суммы S.

Задания к лабораторной работе № 7

125

Таблица 7.2

Варианты заданий

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Диапазон

 

 

Функция Y

 

 

 

 

 

 

 

Сумма S

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

изменения

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

аргумента

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Y=3

x

 

 

 

 

 

 

 

 

 

 

ln3

 

 

 

 

 

ln23

2

 

 

 

 

 

 

 

lnn3

 

 

n

 

 

 

 

 

 

 

 

10

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

S=1+

 

 

 

x+

 

 

 

 

 

 

 

 

 

x

 

+…+

 

 

 

 

 

 

 

 

 

x

 

 

 

0,1 x 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2!

 

 

 

 

 

 

 

n!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Y= ln

 

2sin

x

 

 

 

 

S cos x

cos2x

 

cosnx

 

 

 

 

x

9

 

40

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Y

 

 

sinx

S x x3

 

... ( 1)n

x2n 1

 

 

 

 

 

 

 

 

 

 

 

10

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0,1

 

x

1

 

 

 

 

 

 

 

 

 

 

 

 

 

3!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(2n 1)!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Y ex

 

 

 

 

 

 

 

 

 

S 1

 

x

 

 

 

 

x2

 

...

xn

 

 

 

 

 

 

 

1 x 2

15

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1!

 

 

 

2!

 

n!

 

 

 

 

 

 

 

 

 

xcos

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Y e

 

cos(xsin

)

 

 

cos /4

 

 

 

 

 

 

 

 

 

 

 

 

 

cosn /4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

S 1

 

x ...

xn

0,1

 

1

 

25

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

 

 

 

 

 

1!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n!

 

 

 

 

 

 

 

 

 

 

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Y

 

 

cosx

S 1 x2

... ( 1)n

x2n

 

 

 

 

 

 

 

 

 

 

10

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0,1

 

x

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(2n)!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Y

1

ln

1 x

 

 

 

 

 

 

 

 

 

 

x5

 

 

 

 

 

 

 

 

 

 

 

 

 

x4n 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

4

 

 

 

 

1 x

S x

...

 

 

 

 

 

 

 

 

 

 

0,1 x 0,8

40

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5

 

4n 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

arctg(x)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Y

 

e

cosx

cos(sinx)

S 1

cosx

 

...

cosnx

 

 

 

 

 

0,1

 

1

 

20

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n!

 

 

 

 

 

 

 

 

 

 

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Y (1 2x2)ex2

S 1 3x2

...

2n 1

x2n

 

 

 

 

 

0,1 x 1

10

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x 1

 

 

 

 

1

x 1 3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

S

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

...

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x 1

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Y

1

lnx

 

 

 

 

 

 

 

x 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0,2 x 1

10

 

 

 

2

...

 

1

 

 

 

 

x 1 2n 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2n 1 x 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

2

 

 

2

 

 

 

 

 

cos2x

 

 

 

 

 

 

 

 

 

 

 

n cosnx

 

 

 

 

 

 

 

 

 

 

Y

 

(x

 

 

 

 

 

 

 

)

 

 

S cosx

 

 

 

 

 

 

 

 

 

 

 

 

 

... ( 1)

 

 

 

 

 

 

 

 

 

 

/5 x

20

 

 

 

 

 

 

3

 

 

 

 

22

 

 

 

 

 

 

 

 

 

 

 

n2

 

 

 

 

 

 

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ex e x

S 1 x2

 

...

x2n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

10

 

Y

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0,1

 

x

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2!

 

 

 

 

 

 

 

 

 

 

 

 

 

(2n)!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

126 Программирование в системе Delphi с использованием подпрограмм

Окончание табл. 7.2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Диапазон

 

 

Функция Y

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Сумма S

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

изменения

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

аргумента

 

 

 

Y e2x

 

 

 

 

 

 

 

 

 

 

 

S 1

2x

...

 

(2x)n

 

 

 

 

 

 

 

0,1 x 1

20

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x2

 

 

 

x

 

 

 

 

x

 

 

 

 

 

 

 

 

 

 

 

 

x

 

 

 

 

 

 

 

 

 

 

 

 

n2 1 xn

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Y

 

 

 

 

 

 

 

 

 

 

1 e

2

 

 

S 1 2

 

 

 

 

...

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0,1 x 1

30

4

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n!

2n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Y arctg(x)

 

 

 

 

S x

x3

 

 

... ( 1)n

x2n 1

 

 

 

 

 

 

0,1 x 0,5

40

 

 

 

 

 

 

 

 

2n 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Y 7x

 

 

 

 

 

 

 

 

S 1

ln7

 

x

 

ln2 7

x2

 

lnn 7

xn

 

0,1 x 1

15

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1!

 

 

 

 

 

 

 

 

 

 

 

2!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Y 1

 

 

 

 

 

cosx

S 1 3x2

 

... ( 1)n 2n

2

1x2n

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

35

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0,1

x

1

 

 

 

 

x

sinx

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(2n)!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Y

 

2(cos

2

 

x

 

1)

 

 

 

S

(2x)2

 

 

 

(2x)4

 

... ( 1)n

(2x)2n

 

 

0,1

 

1

 

15

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

24

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(2n)!

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

S (1 x)

2

 

(1 x)4

 

...

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Y ln

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

-2 x -0,1

40

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2 2x x

2

 

 

 

 

 

 

 

... ( 1)n

(1 x)

2n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ex e x

 

 

 

 

 

 

 

 

S x x3

...

 

 

x2n 1

 

 

 

 

 

 

 

 

 

 

 

 

 

20

 

Y

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0,1

x

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3!

 

 

 

 

 

 

 

 

 

 

 

(2n 1)!

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Y

x(3 x)

 

 

 

 

 

 

 

S 3x 8x

2

 

... n(n 2)x

n

0,1 x 0,8

40

 

 

 

 

 

 

(1 x)3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Y 5x

 

 

 

 

 

 

 

 

S 1

ln5

x

ln2 5

x2

 

lnn 5

xn

 

0,1 x 1

15

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1!

 

 

 

 

 

 

 

 

 

 

2!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n!

 

 

 

 

 

 

 

 

Y ln

 

sinx

 

 

 

 

 

 

S ln2 cos

2x

cos4x

 

cos2nx

 

 

 

x

 

 

40

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n

6

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2. Вычислить X 3a для заданных а и погрешности eps, используя при условии xn 1 xn eps рекуррентное соотношение:

Задания к лабораторной работе № 7

127

1

xn 1 xn 2 3

; x0 a. xn

3. Вычислить X 3a для заданных а и погрешности eps, используя при условии xn 1 xn eps рекуррентное соотношение Ньютона:

 

1

 

a

 

xn 1

 

 

2 xn

 

; x0 a.

 

xn2

 

3

 

 

4. Вычислить X 5a для заданных а и погрешности eps, используя при условии xn 1 xn eps рекуррентное соотношение Ньютона:

 

1

 

a

 

xn 1

 

 

4 xn

 

; x0 a.

 

xn4

 

5

 

 

5. Число различных перестановок с повторениями, которые можно сделать из данных элементов, вычисляется по формуле

n! P(n1,n2, ,nk) n1! n2! nk !,

ãäå n n1 n2 nk.

Например, число перестановок, которые можно сделать из букв слова «Миссисипи» (в слове всего 9 букв: 4 буквы «и», 3 бук-

вы «с», 1 буква «м», 1 буква «п»), равноP

9!

2520.

 

4! 3! 1! 1!

Написать программу подсчета числа перестановок с повторениями. Задачу решить двумя способами: без применения рекурсии и с использованием рекурсивного метода.

8. ИЗУЧЕНИЕ ПРИЕМОВ РАБОТЫ С ГРАФИКОЙ В DELPHI

Целью данного раздела является изучение графических процедур и функций языка Delphi, освоение принципов и методов построения геометрических фигур, работы с цветом.

Графические элементы

Богатство изобразительных возможностей Windows связано с так называемым дескриптором контекста графического устройства DC и тремя входящими в него инструментами − шрифтом, пером и кистью.

В Delphi созданы специализированные классы-настройки, существенно упрощающие использование графических инструментов Windows: для контекста – класс TCanvas, для шрифта – TFont, для пера – TPen, для кисти – TBrush. Связанные с этими классами объекты автоматически создаются для всех видимых элементов и становятся доступны программе через свойства Canvas, Font, Pen и Brush. Однако перечисленные выше свойства доступны не у всех визуальных компонентов. Например, у геометрической фигуры Shape доступны свойства Font, Pen и Brush, а у кнопки Button

только Font и Brush.

Canvas – это область рисунка на форме и многих других графических компонентах. Свойство Canvas предоставляет возможность манипуляции областью рисунка во время выполнения программы. Этот класс создает «холст», «канву», на которой можно рисовать чертежными инструментами – пером, кистью и шрифтом. Объекты класса TCanvas автоматически создаются для всех видимых компонентов, которые должны уметь нарисовать себя. Они инкапсулируют объекты Font, Pen, Brush, а также многочисленные методы, использующие эти объекты. Свойства класса TCanvas описаны ниже (табл. 8.1).

Изучение приемов работы с графикой в DELPHI

129

 

Таблица 8.1

Свойства класса TCanvas

 

 

 

 

Свойство

Пояснение

 

Property Brush: TBrush;

Объект-кисть

 

Property ClipRect: TRect;

Определяет текущие размеры области,

нуждающейся в прорисовке

 

 

 

Property CopyMode: TCopyMode;

Устанавливает способ взаимодействия

растрового изображения с цветом фона

Property Font: TFont;

Объект-шрифт

 

 

Дескриптор канвы. Используется при

 

Property Handle: integer;

непосредственном обращении к

 

 

АРI-функциям Windows

 

 

Счетчик блокировок канвы. Увеличива-

Property LockCount: integer;

ется на единицу при каждом обращении к

методу Lock и уменьшается на единицу

 

 

при обращении к Unlock

 

Property Pen: TPen;

Объект-перо

 

 

Определяет текущее положение пера в

Property PenPos: TPoint;

пикселях относительно левого верхнего

 

угла канвы

 

Property Pixels [Х,Y: integer]:

Массив пикселей канвы

 

TColor;

 

 

 

Свойство CopyMode используется при копировании части одной канвы (источника) в другую (приемник) методом CopyRect и может иметь одноизследующих значений,описанныхниже (табл. 8.2).

 

Таблица 8.2

 

Значения свойства CopyMode

 

 

Значение

Пояснение

cmBlackness

Заполняет область рисования черным цветом

cmDestInvert

Заполняет область рисования инверсным цветом фона

cmMergeCopy

Объединяет изображение на канве и копируемое

изображение операцией AND

 

cmMergePaint

Объединяет изображение на канве и копируемое

изображение операцией OR

 

cmNotSrcCopy

Копирует на канву инверсное изображение источника

cmNotSrcErase

Объединяет изображение на канве и копируемое

изображение операцией OR и инвертирует полученное

 

cmPatCopy

Копирует образец источника

130

Изучение приемов работы с графикой в DELPHI

 

 

Окончание табл. 8.2

 

 

Значение

Пояснение

crnPatInvert

 

Комбинирует образец источника с изображением на

 

канве с помощью операции ХОR

 

 

 

 

Комбинирует изображение источника с его образцом с

crnPatPaint

 

помощью операции OR, затем полученное объединяется

 

 

с изображением на канве также с помощью OR

cmSrcAnd

 

Объединяет изображение источника и канвы с помощью

 

операции AND

 

 

cmSrcCopy

 

Копирует изображение источника на канву. Этот режим

 

принят по умолчанию

 

 

cmSrcErase

 

Инвертирует изображение на канве и объединяет

 

результат с изображением источника операцией AND

 

 

cmSrcInvert

 

Объединяет изображение на канве и источник операцией

 

ХОR

 

 

cmSrcPaint

 

Объединяет изображение на канве и источник операцией

 

OR

 

 

cmWhiteness

 

Заполняет область рисования белым цветом

При выполнении графических операций используются следующие типы:

type TPoint=record

X:Longint;

Y:Longint;

end;

TRect= record Case integer of

0: (Left, Right, Top, Bottom: integer); 1: (TopLeft, BottonRight: TPoint); end;

Координаты

Для построения изображений на экране используется система координат. Отсчёт начинается от верхнего левого угла поверхности рисования, который имеет координаты (0,0). Значение X (столбец) увеличивается слева направо, значение Y (строка) увеличивается сверху вниз.