Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб_9_библиотеки.doc
Скачиваний:
3
Добавлен:
01.05.2025
Размер:
214 Кб
Скачать
☆

2.2.4 Послідовність створення файла бібліотеки

1 Спочатку потрібно викликати каталог депозиторія за допомогою команд головного меню File/New.

2 Обрати піктограму Unit для залучення до проекту порожнього модуля без пов’язаного з ним вікна форми. З’явиться вікно із шаблоном бібліотечного модуля:

Unit Unit2;

interface

implementation

end;

3 Ввести текст бібліотечного модуля в цьому вікні.

4 Зберегти модуль на диску з ім’ям власної бібліотеки.

Примітка. Ім’я Unit2 за цієї дії автоматично буде замінено на нове ім’я.

3 Приклад проекту з власною бібліотекою

Завдання:

1 Обчислити елементи матриці за формулою

ai,j = sin i +cos j, де i =1,2, …,4; j =1,2, …,5.

2 Створити вектор х, як суми елементів рядків.

3 Обчислити скаляр – номер найменшого елементу вектору х.

Ці обчислення організувати за допомогою підпрограм, які розмістити у власній бібліотеці.

Керування роботою проекту організувати за допомогою меню команд.

Ф орму та результати роботи проекту програми наведено на рис 9.2.

Пояснення. Меню команд створено за допомогою компонента MainMenu. Перелік команд меню проекту наведено на рис. 9.3.

Текст головного модуля

unit Unit1;

interface

uses

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

Grids, StdCtrls, Menus, TeEngine, TeeFunci, Series, TeeProcs, Chart,bibl;

type

TForm1 = class(TForm)

Label1: TLabel; Label2: TLabel; Label3: TLabel;

StringGrid2: TStringGrid; StringGrid1: TStringGrid;

Edit1: TEdit;

MainMenu1: TMainMenu;

N1: TMenuItem;

………

N8: TMenuItem;

procedure FormCreate(Sender: TObject);

procedure N2Click(Sender: TObject); procedure N3Click(Sender: TObject);

procedure N4Click(Sender: TObject); procedure N6Click(Sender: TObject);

procedure N7Click(Sender: TObject); procedure N8Click(Sender: TObject);

Chart1: TChart;

TeeFunction1: TAddTeeFunction;

Series1: TBarSeries;

……………………………….

implementation

{$R *.DFM}

const n=5; m=4;

var a:matr; х:vect; { глобальні параметри }

// Підпрограма початкового встановлення невидимості команд меню

procedure TForm1.FormCreate(Sender: TObject);

begin

n3.visible:=false;

n4.visible:=false;

end;

// Підпрограма команди меню ” Підпрограми | Розрахунок матриці”

procedure TForm1.N2Click(Sender: TObject);

var i,j:integer; s:string;

begin

{виклик підпрограми обчислення елементів матриці}

elem(n,m,a);

{заголовки рядків та стовпчиків}

for i:=1 to n do

StringGrid1.Cells[0,i]:=IntToStr(i)+'-й рядок';

for j:=1 to m do

StringGrid1.Cells[j,0]:=IntToStr(j)+'-й стовпчик';

{виведення матриці в форму}

for i:=1 to n do

for j:=1 to m do

begin

str(a[i,j]:8:3,s);

StringGrid1.Cells[j,i]:=s;

end;

{встановлення видимості команд меню для вектора й скаляра}

n3.visible:=true;

n4.visible:=false;

end;

// Підпрограма команди меню ”Підпрограми | Обчислення вектора”

procedure TForm1.N3Click(Sender: TObject);

var i,j:integer; s:string;

begin

{виклик підпрограми для вектора}

sum(n,m,a,х);

{ виведення вектора сум в StringGrid}

for i:=1 to n do

begin

StringGrid2.Cells[0,i-1]:=IntToStr(i)+'-й елемент';

str(х[i]:5:1,s); StringGrid2.Cells[1,i-1]:=s;

end;

{встановлення невидимості команди меню для скаляра}

n4.visible:=true;

end;

// Підпрограма команди меню ” Підпрограми | Мінімальний елемент”

procedure TForm1.N4Click(Sender: TObject);

var i:integer; nom:integer;

s:string;

begin

{виклик функції обчислення скаляра G}

nom:=nom_min(x,n);

{ виведення вектора на форму}

edit1.text:=IntToStr(nom);

end;

// Підпрограма команди меню ” Проект | Очистити форму”

procedure TForm1.N6Click(Sender: TObject);

var i,j:integer;

begin

for i:=1 to n do

for j:=1 to m do

StringGrid1.Cells[j,i]:='';

for i:=1 to n do

StringGrid2.Cells[1,i-1]:='';

edit1.text:='' ;

{встановлення невидимості команд меню для вектора й скаляра}

n3.visible:=false;

n4.visible:=false;

end;

// Підпрограма команди меню “Проект | Вихід”

procedure TForm1.N7Click(Sender: TObject);

begin

close

end;

// Підпрограма команди меню “Графіка”

procedure TForm1.N8Click(Sender: TObject);

var i:integer; gr:array [1..n] of TPoint;

begin

{ побудова графіка}

for i:=1 to n do

Series1.Addxy(i,x[i],'',clTeeColor);

end;

end.

Текст бібліотеки

unit bibl;

interface

Type matr=array[1..10,1..10] of real;

vect=array[1..10] of real;

procedure elem(n,m:integer; var c:matr);

procedure sum(n,m:integer; c:matr; var v:vect);

function nom_min(v:vect; k:integer):integer;

implementation

// підпрограма обчислення елементів матриці

procedure elem(n,m:integer;var с:matr);

var i,j:integer;

begin for i:=1 to n do

for j:=1 to m do

с[i,j]:=sin(i)+cos(j);

end;

// Підпрограма обчислення вектора сум елементів рядків

procedure sum (n,m:integer;с:matr; var c:vect);

var i,j:integer;

begin

for i:=1 to n do

begin c[i]:=0;

for j:=1 to m do

v[i]:=v[i]+ c[i,j];

end;

end;

// підпрограма-функція обчислення найменшого елемента вектора

function nom_min(v:vect; k:integer):integer;

var i:integer; min:real; nmin:integer;

begin min:=v[1]; nmin:=1;

for i:=2 to k do

if v[i]<min then

begin min:=v[i];nmin:=i; end;

nom_min:=nmin;

end;

end.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]