Санкт-Петербургский политехнический университет Петра Великого
Институт Металлургии, Машиностроения и Транспорта
Кафедра «Компьютерные Технологии и Машиностроения»
Отчет
По лабораторной работе №3
Дисциплина: «Информатика»
Тема: «Подпрограммы» Вариант - 9
Студент гр. 13332/1 А. Р. Алимов
Преподаватель Ю. В. Кожанова
«__»______________2018
Санкт-Петербург
2018г.
Цель работы
Приобретение умений разработки подпрограмм.
Задание
Разработать два проекта для вычисления значения выражения предыдущей лабораторной работы (рисунок 1) с использованием функции и с использованием процедуры.
Ход работы
Рис.1 – Блок-схема
Программный код проекта с реализацией через функцию(1) и процедуру(2): 1) unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls,
m; // подключение модуля с функцией
type
TForm1 = class(TForm)
le1: TLabeledEdit;
le2: TLabeledEdit;
btn1: TButton;
l1: TLabel;
procedure btn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
function drob1(y,x:real):real; //инициализация функции
var t1, t2:real;
begin
t1:=exp(ln(y)*x)-(sqr(y)*y); // числитель дроби
t2:=exp(ln(x)*y)+sqr(sqr(x)); //знаменатель
drob1:=t1/t2; //значение одной и дроби
end;
procedure TForm1.btn1Click(Sender: TObject);
const a=3; b =5;
var x, y, z, z1, z2, z3:real;
begin
x:=StrToFloat(le1.Text); // считывание значения x из Edit1
y:=StrToFloat(le2.Text); //считывание значения y из Edit2
z1:=drob1(y,x); //вызовы функции и
z2:=drob1(x,y); //присвоение её значений
z3:=drob1(y,2); //промежуточным переменным
z:=a*z1+b*z2+z3; //итоговые вычисления
l1.Caption:='z='+ FloatToStr(z); //вывод значения z в Label3
end;
end. //конец модуля проекта
2) Программный код второго проекта отличается только в трех строках в процедуре procedure TForm1.btn1Click(Sender: TObject);
…
procedure drob(y:real;x:Real; var d:real); //инициализация процедуры
var t1, t2:real;
begin
t1:=exp(ln(y)*x)-(sqr(y)*y); //числитель дроби
t2:=exp(ln(x)*y)+sqr(sqr(x)); //знаменатель дроби
d:=t1/t2; //значение дроби
end;
…
drob(y,x,z1); //вызов процедуры
drob(x,y,z2);
drob(y,2,z3);
…
Финальный вид программы представлен на рисунке 2.
Рис. 2 – Пример работы приложения