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

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

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

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

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

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

ОТЧЕТ

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

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

Тема: Подпрограммы

(Вариант 1)

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

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

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

2021 г.

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

Задача: Разработать два проекта для вычисления значения выражения

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

Текст модуля:

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

unit Unit1;

interface

uses

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

Dialogs, StdCtrls;

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}

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

var t1,t2:real;

begin

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

t2:= u;

drob:= t1/t2;

end;

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;

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 drob(t,u:real;var d:real);

var t1,t2:real;

begin

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

t2:= u;

d:=t1/t2;

end;

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);

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);

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

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

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);

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

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

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.

Б

Начало

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

ввод x, y

Вывод z

Конец

Начало

Конец

или

вычисление

значения z1

вычисление

значения z2

вычисление

значения z3

лок-схема алгоритма вычисления значения выражения:

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

Label1

Label3

Label4

Edit1

Label5

Label2

Edit2

Label6

Button1

Button2

Button3

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

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