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

Автор работы: Пользователь скрыл имя, 28 Июня 2013 в 00:52, лабораторная работа

Краткое описание

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

Вложенные файлы: 1 файл

laba_3.doc

— 86.50 Кб (Скачать файл)

МИНИСТЕРСТВО  ОБРАЗОВАНИЯ РЕСПУБЛИКИ БЕЛАРУСЬ

 

УЧРЕЖДЕНИЕ  ОБРАЗОВАНИЯ

ГОМЕЛЬСКИЙ  ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ  ИМЕНИ П. О. СУХОГО

 

Энергетический факультет

 

Кафедра «Информатика»

 

 

 

 

ОТЧЕТ   ПО   ЛАБОРАТОРНОЙ   РАБОТЕ   № 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:=spinedit1.Value

 

end;

 

procedure TForm1.SpinEdit2Change(Sender: TObject);

begin

 

if spinedit2.text='' then

  spinedit2.Value:=1;

  stringgrid1.ColCount:=spinedit2.Value

end;

 

procedure TForm1.SpinEdit3Change(Sender: TObject);

begin

if spinedit3.text='' then

  spinedit3.Value:=1;

  stringgrid2.RowCount:=spinedit3.Value

end;

 

procedure TForm1.SpinEdit4Change(Sender: TObject);

begin

  if spinedit4.text='' then

  spinedit4.Value:=1;

  stringgrid2.ColCount:=spinedit4.Value

end;

 

procedure TForm1.SpinEdit5Change(Sender: TObject);

begin

  if spinedit5.text='' then

  spinedit5.Value:=1;

  stringgrid3.RowCount:=spinedit5.Value

end;

 

procedure TForm1.SpinEdit6Change(Sender: TObject);

begin

  if spinedit6.text='' then

  spinedit6.Value:=1;

  stringgrid3.ColCount:=spinedit6.Value

 

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-1,i-1]);

       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.Color;

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

  1. 2

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, их структуру, возможности применения, обращение к подпрограммам; получила  навыки использования процедур и функций при составлении программ; научилась применять компоненты для создания меню приложения, для размещения переключателей, использования диалоговых окон.


Информация о работе Программирование с использованием подпрограмм