Автор работы: Пользователь скрыл имя, 28 Июня 2013 в 00:52, лабораторная работа
Цель работы: изучить основные типы подпрограмм в Delphi, их структуру, возможности применения, обращение к подпрограммам; получить навыки использования процедур и функций при составлении программ; научиться применять компоненты для создания меню приложения, для размещения переключателей, использования диалоговых окон.
МИНИСТЕРСТВО ОБРАЗОВАНИЯ РЕСПУБЛИКИ БЕЛАРУСЬ
УЧРЕЖДЕНИЕ ОБРАЗОВАНИЯ
ГОМЕЛЬСКИЙ
ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ
Энергетический факультет
Кафедра «Информатика»
ОТЧЕТ ПО ЛАБОРАТОРНОЙ РАБОТЕ № 3
по дисциплине «Информатика»
на тему: «Программирование с использованием подпрограмм »
Выполнил: студент гр. ТЭ-12
Попченя Н.
Принял: преподаватель Тихоненко Т.В.
Дата сдачи отчета: _____________________
Дата допуска к защите: _____________________
Дата защиты: _____________________
Гомель 2013
Цель работы: изучить основные типы подпрограмм в Delphi, их структуру, возможности применения, обращение к подпрограммам; получить навыки использования процедур и функций при составлении программ; научиться применять компоненты для создания меню приложения, для размещения переключателей, использования диалоговых окон.
Вариант |
З а д а н и е |
Компонент для выбора функции |
4 |
Вычислить значение функции или по выбору пользователя, где x, y, z – минимальные элементы матриц А, B и С соответственно. |
RadioButton |
Таблицы соответствия переменных для основной программы и для каждой подпрограммы.
Имя переменой в условии задачи |
Имя переменой в программе |
Тип переменной |
Комментарии |
n |
n |
integer |
Кол-во строк в матрице |
m |
m |
integer |
Кол-во столбцов в матрице |
w |
w |
integer |
Исходная матрица |
Min |
Min |
real |
Минимальный элемент матрицы |
i |
i |
integer |
Номер строки текущего элемента матрицы |
j |
j |
integer |
Номер столбца текущего элемента матрицы |
x ,y, z |
x, y, z |
real |
Минимальные элементы соответствующих матриц |
A,B,С |
A,B,С
|
matrica |
Соответствующие матрицы |
F |
F |
real |
Вычисляемая функция |
na, ma, nb, mb, nc, mc |
na, ma, nb, mb, nc, mc |
integer |
Кол-во строк и столбцов в соответствующих матрицах |
Распечатка текста модуля
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids, Spin, Menus;
type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
SpinEdit1: TSpinEdit;
SpinEdit2: TSpinEdit;
SpinEdit3: TSpinEdit;
SpinEdit4: TSpinEdit;
SpinEdit5: TSpinEdit;
SpinEdit6: TSpinEdit;
StringGrid1: TStringGrid;
StringGrid2: TStringGrid;
StringGrid3: TStringGrid;
Button1: TButton;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
Edit4: TEdit;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
Label15: TLabel;
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
ColorDialog1: TColorDialog;
FontDialog1: TFontDialog;
procedure SpinEdit1Change(Sender: TObject);
procedure SpinEdit2Change(Sender: TObject);
procedure SpinEdit3Change(Sender: TObject);
procedure SpinEdit4Change(Sender: TObject);
procedure SpinEdit5Change(Sender: TObject);
procedure SpinEdit6Change(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure N3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.SpinEdit1Change(Sender: TObject);
begin
if spinedit1.text='' then
spinedit1.Value:=1;
stringgrid1.RowCount:=
end;
procedure TForm1.SpinEdit2Change(Sender: TObject);
begin
if spinedit2.text='' then
spinedit2.Value:=1;
stringgrid1.ColCount:=
end;
procedure TForm1.SpinEdit3Change(Sender: TObject);
begin
if spinedit3.text='' then
spinedit3.Value:=1;
stringgrid2.RowCount:=
end;
procedure TForm1.SpinEdit4Change(Sender: TObject);
begin
if spinedit4.text='' then
spinedit4.Value:=1;
stringgrid2.ColCount:=
end;
procedure TForm1.SpinEdit5Change(Sender: TObject);
begin
if spinedit5.text='' then
spinedit5.Value:=1;
stringgrid3.RowCount:=
end;
procedure TForm1.SpinEdit6Change(Sender: TObject);
begin
if spinedit6.text='' then
spinedit6.Value:=1;
stringgrid3.ColCount:=
end;
procedure TForm1.Button1Click(Sender: TObject);
Type
matrica=array[1..20,1..20] of real;
Procedure VVOD(Sp_Ed1, Sp_Ed2 :TSpinEdit; St:TstringGrid;
var n, m :integer; var W : matrica);
Var
i,j : integer;
Begin
n:= Sp_Ed1.Value;
m:= Sp_Ed2.Value;
for i:=1 to n do
for j:=1 to m do
w[i,j]:=strtofloat(St.Cells[j-
End;
Function Min_el(n,m:integer; W:matrica; Ed:TEdit): real;
Var
i, j : integer;
Min:real;
Begin
Min:=W[1,1];
for i:=1 to n do
for j:=1 to m do
if W[i,j]<Min then
begin
Min:=W[i,j];
end;
Ed.Text:=FloatToStr(Min);
Result:=Min
end;
Var
x, y, z : real;
A, B, C: matrica;
F : real;
na, ma, nb, mb, nc, mc : integer;
begin
VVOD(SpinEdit1, SpinEdit2, StringGrid1, na, ma, A);
VVOD(SpinEdit3, SpinEdit4, StringGrid2, nb, mb, B);
VVOD(SpinEdit5, SpinEdit6, StringGrid3, nc, mc, C);
x:=Min_el(na, ma, A, Edit1);
y:=Min_el(nb, mb, B, Edit2);
z:=Min_el(nc, mc, C, Edit3);
If RadioButton1.Checked then
F:=3*x+3*sin(x+z*z)
else
If RadioButton1.Checked then
F:=sin(x+4*z-5*y);
Edit4.Text:=FloatToStr(F)
end;
procedure TForm1.N1Click(Sender: TObject);
begin
if colordialog1.Execute then
form1.Color:=colordialog1.
end;
procedure TForm1.N2Click(Sender: TObject);
begin
if fontdialog1.Execute then
begin
Edit1.Font := fontdialog1.Font;
Edit2.Font := fontdialog1.Font;
Edit3.Font := fontdialog1.Font;
Edit4.Font := fontdialog1.Font;
end;
end;
procedure TForm1.N3Click(Sender: TObject);
begin
Form1.Close;
end;
end.
Распечатка окна с результатами работы программы
Тесты для отладки программы
Имя переменой |
Значение |
Комментарии |
na |
2 |
Кол-во строк в матрице A |
ma |
2 |
Кол-во столбцов в матрице A |
A |
1 -4 5 2 |
Исходная матрица A |
x |
-4 |
Минимальный элемент матрицы A |
nb |
2 |
Кол-во строк в матрице B |
mb |
2 |
Кол-во столбцов в матрице B |
B |
5 7 4 8 |
Исходная матрица B |
y |
4 |
Минимальный элемент матрицы B |
nc |
2 |
Кол-во строк в матрице C |
mc |
2 |
Кол-во столбцов в матрице C |
C |
-3 -1 7 3 |
Исходная матрица C |
z |
-3 |
Минимальный элемент матрицы C |
F |
1,73532544644868E265 |
Значение функции по формуле |
Имя переменой |
Значение |
Комментарии |
na |
2 |
Кол-во строк в матрице A |
ma |
2 |
Кол-во столбцов в матрице A |
A |
3 4 |
Исходная матрица A |
x |
1 |
Минимальный элемент матрицы A |
nb |
2 |
Кол-во строк в матрице B |
mb |
2 |
Кол-во столбцов в матрице B |
B |
-8 9 4 5 |
Исходная матрица B |
y |
-8 |
Минимальный элемент матрицы B |
nc |
2 |
Кол-во строк в матрице C |
mc |
2 |
Кол-во столбцов в матрице C |
C |
4 7 2 3 |
Исходная матрица C |
z |
2 |
Минимальный элемент матрицы C |
F |
0,123227176010585 |
Значение функции по формуле |
Вывод: в ходе проделанной работы изучила основные типы подпрограмм в Delphi, их структуру, возможности применения, обращение к подпрограммам; получила навыки использования процедур и функций при составлении программ; научилась применять компоненты для создания меню приложения, для размещения переключателей, использования диалоговых окон.
Информация о работе Программирование с использованием подпрограмм