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

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

 

 

Дата сдачи отчета Выполнил студент группы Э-11

Рудник Р. А.

Допуск к защите

Принял преподаватель

Дата защиты Соболев Д. Н.

 

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

Вычислить значение функции , где x, y, z – минимальные среди элементов на местах с нечетными номерами массивов А, B и С соответственно.

Таблица переменных основной программы:

 

Имя переменной в задаче Имя переменной в программе Тип переменной Комментарий
- n1,n2,n3 Byte Число элементов массивов, исходные данные
- Y1 Real Значение функции, результат
a,b,c a,b,c Real Минимумы
x,y,z x,y,z Mas Исходный массивы

Таблица переменных процедуры ввода:

 

Имя переменной в программе Тип переменной Комментарий
n Byte Число элементов массива, выходной параметр
i Byte Номер элемента, локальная переменная
x Mas Исходный массив, выходной параметр

Таблица переменных процедуры вывода:

 

Имя переменной в программе Тип переменной Комментарий
n Byte Число элементов массива, входной параметр
i Byte Номер элемента, локальная переменная
x Mas Исходный массив, входной параметр

Таблица переменных процедуры вычисления минимума

 

Имя переменной в программе Тип переменной Комментарий
nom Byte Число элементов массива, входной параметр
min Real Минимальный элемент
i Byte Номер элемента, локальная переменная
x Mas Исходный массив, входной параметр

 

Схема алгоритма основной программы:

 

 


Схема алгоритма процедуры minnn:

 
 

 

 


рукописные тесты:

1) исходные данные:

n1=4; n2=4; n3=4;

x:1 2 3 4

y:0 2 -1 2

z:3 5 6 8

a=1

b=-1

c=3

ожідаемый результат:

y1= 5,96807473987015

2) исходные данные:

n1=4; n2=4; n3=4;

x:-1 -1 -1 -1

y:0 0 0 0

z:1 1 1 1

a=-1

b=0

c=1

ожідаемый результат:

y1=- 0,47558704557631

Распечатка текста всех подпрограмм:

unit Unit1;

 

interface

 

uses

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

Dialogs, StdCtrls, Grids;

 

type

TForm1 = class(TForm)

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Edit1: TEdit;

Edit2: TEdit;

Edit3: TEdit;

StringGrid1: TStringGrid;

StringGrid2: TStringGrid;

StringGrid3: TStringGrid;

Button1: TButton;

StringGrid4: TStringGrid;

StringGrid5: TStringGrid;

StringGrid6: TStringGrid;

Memo2: TMemo;

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

 

var

Form1: TForm1;

 

implementation

 

{$R *.dfm}

 

procedure TForm1.Button1Click(Sender: TObject);

type

mas=array[1..20] of real;

var

a,b,c:real;

x,y,z:mas;

n1,n2,n3:byte;

y1:real;

Procedure VVOD(var n:byte;var x:mas;Ed:TEdit;St:TStringGrid);

var

i:byte;

begin

n:=StrToInt(Ed.Text);

For i:=1 to n do

x[i]:=StrToFloat(St.Cells[i-1,0]);

end;

Procedure VIVOD(n:byte;x:mas;St:TStringGrid);

var

i:byte;

begin

For i:=1 to n do

St.Cells[i-1,0]:=FloatToStr(x[i]);

end;

function minnn (n:byte;x:mas):real;

var

i,nom:byte;

min:real;

begin

min:=x[1];

i:=1;

nom:=1;

While i<=n do

begin

if (min>x[i]) then

begin

min:=x[i];

nom:=i;

end;

i:=i+2;

end;

minnn:=min;

end;

begin

VVOD(n1,x,Edit1,StringGrid1);

VVOD(n2,y,Edit2,StringGrid2);

VVOD(n3,z,Edit3,StringGrid3);

VIVOD(n1,x,StringGrid4);

VIVOD(n2,y,StringGrid5);

VIVOD(n3,z,StringGrid6);

a:=minnn(n1,x);

b:=minnn(n2,y);

c:=minnn(n3,z);

y1:=(3*a)+(3*(sin(b+sqr(c))));

Memo2.Lines.Add('a= '+FloatToStr(a)+' b= '+FloatToStr(b)+' c= '+FloatToStr(c)+' Значение функции='+FloatToStr(y1));

end;

end.

Распечатка формы с результатами работы:

1)

2)

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