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

Лаба4 Вар1 отчет

.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
53.09 Кб
Скачать

Санкт-Петербургский Политехнический университет Петра Великого

Институт машиностроения, материалов и транспорта

Высшая школа машиностроения

ОТЧЕТ

по лабораторной работе №4

Дисциплина: Цифровой практикум

Тема: Модули

(Вариант 1)

Студент группы 3331505/10001 Гричачина А.А.

Преподаватель Скрябнев А.Ю.

Санкт-Петербург

2021 г.

Цель работы  приобретение умений разработки модулей.

Задача: Создать пользовательский модуль и перенести в него пользовательские подпрограммы из предыдущей работы. Подключить модуль

к обоим проектам.

Текст пользовательского модуля:

  • Текст пользовательского модуля программы с использованием функции без объявления переменных в нем:

UNIT My_Unit;

INTERFACE

function drob(t,u:real):real;

IMPLEMENTATION

function drob(t,u:real):real;

var t1, t2:real;

begin

t1:= (sqrt(abs(t))+sqr(t));

t2:= u;

drob:=t1/t2;

end;

END.

  • Текст пользовательского модуля программы с использованием процедуры и объявлением переменных в нем:

unit My_unit;

INTERFACE

const a=5;b=4;c=2;

var x,y,z,z1,z2,z3:real;

procedure drob(t,u:real; var d:real);

IMPLEMENTATION

var t1, t2:real;

procedure drob(t,u:real; var d:real);

begin

t1:= (sqrt(abs(t))+sqr(t));

t2:= u;

d:=t1/t2;

end;

END.

Текст модулей проектов:

  • Текст модуля программы с объявлением переменных и использованием функции:

unit Unit1;

interface

uses

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

Dialogs, StdCtrls, My_Unit;

type

TForm1 = class(TForm)

Label1: TLabel;

Label2: TLabel;

Edit1: TEdit;

Edit2: TEdit;

Label3: TLabel;

Button1: TButton;

Button2: TButton;

Button3: TButton;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

const a=5;b=4;c=2;

var x,y,z,z1,z2,z3:real;

begin

x:=StrToFloat(Edit1.Text);

y:=StrToFloat(Edit2.Text);

z1:=drob(x,a);

z2:=drob(x+c,c*a);

z3:=drob(c*y,b);

z:=z1-z2+z3;

Label4.Caption:=FloatToStr(z);

end;

procedure TForm1.Button2Click(Sender: TObject);

const a=5;b=4;c=2;

var x,y,z,z1,z2,z3:real;

begin

x:=StrToFloat(Edit1.Text);

y:=StrToFloat(Edit2.Text);

z1:=drob(x,a);

z2:=drob(x+c,c*a);

z3:=drob(c*y,b);

z:=z1-z2+z3;

Label5.Caption:=FloatToStrF(z,ffExponent,10,5);

end;

procedure TForm1.Button3Click(Sender: TObject);

const a=5;b=4;c=2;

var x,y,z,z1,z2,z3:real;

begin

x:=StrToFloat(Edit1.Text);

y:=StrToFloat(Edit2.Text);

z1:=drob(x,a);

z2:=drob(x+c,c*a);

z3:=drob(c*y,b);

z:=z1-z2+z3;

Label6.Caption:=FloatToStrF(z,ffFixed,5,3);

end;

end.

  • Текст модуля программы без объявления переменных с использованием процедуры:

unit Unit1;

interface

uses

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

Dialogs, StdCtrls, My_unit;

type

TForm1 = class(TForm)

Label1: TLabel;

Label2: TLabel;

Edit1: TEdit;

Edit2: TEdit;

Label3: TLabel;

Button1: TButton;

Button2: TButton;

Button3: TButton;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

begin

x:=StrToFloat(Edit1.Text);

y:=StrToFloat(Edit2.Text);

drob(x,a,z1);

drob(x+c,c*a,z2);

drob(c*y,b,z3);

z:=z1-z2+z3;

Label4.Caption:=FloatToStr(z);

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

x:=StrToFloat(Edit1.Text);

y:=StrToFloat(Edit2.Text);

drob(x,a,z1);

drob(x+c,c*a,z2);

drob(c*y,b,z3);

z:=z1-z2+z3;

Label5.Caption:=FloatToStrF(z,ffExponent,10,5);

end;

procedure TForm1.Button3Click(Sender: TObject);

begin

x:=StrToFloat(Edit1.Text);

y:=StrToFloat(Edit2.Text);

drob(x,a,z1);

drob(x+c,c*a,z2);

drob(c*y,b,z3);

z:=z1-z2+z3;

Label6.Caption:=FloatToStrF(z,ffFixed,5,3);

end;

end.

Пример работы, с указанием компонентов формы:

Label1

Label3

Label4

Edit1

Label5

Label2

Edit2

Label6

Button1

Button2

Button3

Итог выполнения программы:

Вывод: Чтобы не описывать типовые действия в каждом проекте целесообразно их однократно оформить в виде подпрограмм и поместить в собственный модуль, а затем, подключая его к различным проектам, использовать ресурсы этого модуля. Кроме того, проекты с большими объёмами программного кода

удобно разбить на несколько файлов. Выносимые части кода из проекта можно также разместить в собственном модуле.