Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Delphi -Мет по лабраб_ Часть_2.doc
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
2 Мб
Скачать
☆
      1. Текст модуля UnModul

unit UnModul;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, Buttons, Spin;

type

TForm1 = class(TForm)

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

SpinEdit1: TSpinEdit;

Edit1: TEdit;

Edit2: TEdit;

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

Memo1: TMemo;

procedure FormCreate(Sender: TObject);

procedure BitBtn1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

type

func=function(x:real):real; // функциональный тип

proc=procedure(x:real; var s:real); // процедурный тип

var

Form1: TForm1;

implementation

uses UnFuncProc; // Delphi подключает модуль

// UnFuncProc

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);

begin

SpinEdit1.Text:='8'; // начальное значение N

Edit1.Text:='0,1'; // начальное значение Xn

Edit2.Text:='1'; // начальное значение Xk

Memo1.Clear;

end;

{В процедуре Tab вычисляется и выводитчя таблица значений x, S(x), Y(x)}

procedure Tab(Summa:proc;F:func;n:byte;xn,xk,h:real);

var

x,s,y:real;

begin

Form1.Memo1.Lines.Add(#9+'X'+#9+'S'+#9+'Y'); // заголовок таблицы

x:=xn;

repeat // цикл по х

Summa(x,s); // вызов процедуры Summa для вычисления S(x)

y:=F(x); // обращение к функции F для вычисления Y(x)

Form1.Memo1.Lines.Add(#9+FloatToStrF(x,ffFixed,6,2)+ // вывод x

#9+FloatToStrF(s,ffFixed,6,3)+ // вывод S

#9+FloatToStrF(y,ffFixed,6,3)); // вывод Y

x:=x+h;

until x>xk;

end;

procedure TForm1.BitBtn1Click(Sender: TObject);

var

xn,xk,x,h,y,s,p,ab,ot:real;

n,i:byte;

begin

n:=StrToInt(SpinEdit1.Text);

xn:=StrToFloat(Edit1.Text);

xk:=StrToFloat(Edit2.Text);

h:=(xk-xn)/n; // шаг h

Memo1.Clear;

Tab(Summa,F,n,xn,xk,h); // вызов процедуры Tab

end;

end.

    1. Выполнение индивидуального задания

По указанию преподавателя выберите из таблицы два варианта индивидуальных заданий. Создайте модуль, в котором вычисление значений S(x) реализуйте в виде подпрограммы-процедуры, а вычисление значений Y(x) – в виде подпрограммы-функции. На панели интерфейса установите компонент. С помощью которого реализуйте возможность выбора соответствующего варианта задания и вывод таблицы значений x, Si(x), Yi(x), где i – номер варианта. Созданный модуль подключите к проекту и выполните приложение.

Индивидуальные задания

№

Xn

Xk

S(x)

n

Y(x)

0,1

1

8

18

6

0,1

0,8

12

0,1

1

16

0,1

1

14

0,1

1

8

0,1

0,8

10

0,2

1

6

16

0,1

0,8

20

0,1

1

18

0,1

0,8

14

0,1

0,8

12

18

0,1

1

16

0,1

1

10

0,1

1

12

0,1

1

8

0,1

1

14

0,1

1

8

0,1

1

12

0,1

1

10

0,1

1

14

0,1

0,5

15

0,1

0,8

10

0,1

2

8

-2

-0,1

16

0,2

0,8

12

-1

1

10