ВУЗ:
Составители:
31
2.10.2. ɋɨɡɞɚɧɢɟ ɤɥɢɟɧɬɚ
type
TMainForm = class(TForm)
lb: TListBox;
bCreate: TButton;
bRun: TButton;
sg: TStringGrid;
procedure bCreateClick(Sender: TObject);
procedure bRunClick(Sender: TObject);
private
{ Private declarations }
public
v: IVectSrv;
vm: IMatrixSrv;
{ Public declarations }
end;
var
MainForm: TMainForm;
implementation
var X, Y, A , B: olevariant; // ɇɭɠɧɵ ɞɥɹ ɩɟɪɟɞɚɱɢ ɜ COM ɫɟɪɜɟɪ
DynArr : array of array of integer;
// ɞɢɧɚɦɢɱɟɫɤɢɣ ɞɜɭɦɟɪɧɵɣ ɦɚɫɫɢɜ
{$R *.dfm}
procedure TMainForm.bCreateClick(Sender: TObject);
var
I, J: Integer;
begin
// Ⱦɥɹ ɢɥɥɸɫɬɪɚɰɢɢ ɡɞɟɫɶ ɩɪɢɦɟɧɟɧɵ ɞɜɚ ɫɩɨɫɨɛɚ.
// Ɉɞɧɨɦɟɪɧɵɣ ɦɚɫɫɢɜ ɫɨɡɞɚɟɬɫɹ ɤɚɤ ɜɚɪɢɚɧɬɧɵɣ.
// Ɇɚɬɪɢɰɚ - ɤɚɤ ɞɢɧɚɦɢɱɟɫɤɢɣ ɞɜɭɦɟɪɧɵɣ ɦɚɫɫɢɜ.
// Ɂɚɞɚɟɦ ɞɥɢɧɭ 2 ɧɚ 2 ɞɜɭɦɟɪɧɨɝɨ ɞɢɧɚɦɢɱɟɫɤɨɝɨ ɦɚɫɫɢɜɚ
SetLength (DynArr,2,2);
// .. ɢ ɡɚɩɨɥɧɹɟɦ (ɥɭɱɲɟ ɷɬɨ ɫɞɟɥɚɬɶ ɩɨ-ɞɪɭɝɨɦɭ - ɢɡ ɮɚɣɥɚ, ɫɩɢɫɤɚ ɢɥɢ
ɫɟɬɤɢ)
DynArr[0,0]:=1;
DynArr[1,1]:=3;
32
DynArr[0,1]:=4;
DynArr[1,0]:=2;
// ȼɵɜɨɞɢɦ ɜ ɫɟɬɤɭ
sg.ColCount := 2;
sg.RowCount := 2;
with sg do
for I := 0 to ColCount - 1 do
for J:= 0 to RowCount - 1 do
Cells[J,I] := IntToStr(DynArr[I,J]);
// ɋɨɡɞɚɟɦ ɨɞɧɨɦɟɪɧɵɣ ɜɚɪɢɚɧɬɧɵɣ ɦɚɫɫɢɜ
X := VarArrayOf ([1.2, 2.5, 3, 4.8]);
// ȼɵɜɨɞɢɦ ɜ ListBox
lb.Clear;
for i:=0 to VarArrayHighBound(X,1) do
lb.Items.Add(FloatToStr(X[i]));
// Ɂɚɩɭɫɤɚɟɦ ɫɟɪɜɟɪ
V := CreateComObject(Class_VectSrv) as IVectSrv;
if V=Nil then
ShowMessage ('ɋɟɪɜɟɪ ɧɟ ɧɚɣɞɟɧ!');
end;
procedure TMainForm.bRunClick(Sender: TObject);
var
I, J: Integer;
begin
if V <> Nil then
begin
try
// ȼɵɡɵɜɚɟɦ ɦɟɬɨɞ ɢɧɬɟɪɮɟɣɫɚ (ɦɟɧɹɟɬ ɦɟɫɬɚɦɢ ɷɥɟɦɟɧɬɵ)
V.ChangeVect(x,y);
// ȼɵɜɨɞɢɦ ɪɟɡɭɥɶɬɚɬ
lb.Clear;
for i:=0 to VarArrayHighBound(Y,1) do
lb.Items.Add(FloatToStr(Y[i]));
Vm := V as IMatrixSrv; // Ɉɛɪɚɳɚɟɦɫɹ ɤ ɞɪɭɝɨɦɭ ɢɧɬɟɪɮɟɣɫɭ
A := DynArr; // Ɂɚɩɢɫɵɜɚɟɦ ɜ ɜɚɪɢɚɧɬ ɞɢɧɚɦɢɱɟɫɤɢɣ ɦɚɫɫɢɜ
Vm.Trans(A,B); // ȼɵɡɵɜɚɟɦ ɦɟɬɨɞ (ɬɪɚɧɫɩɨɧɢɪɨɜɚɧɢɟ)
// ȼɵɜɨɞɢɦ ɜ ɫɟɬɤɭ
with SG do
for I := 0 to ColCount - 1 do
for J:= 0 to RowCount - 1 do
DynArr[0,1]:=4;
DynArr[1,0]:=2;
2.10.2. �������� ������� // ������� � �����
sg.ColCount := 2;
type
sg.RowCount := 2;
TMainForm = class(TForm)
with sg do
lb: TListBox;
for I := 0 to ColCount - 1 do
bCreate: TButton;
for J:= 0 to RowCount - 1 do
bRun: TButton;
Cells[J,I] := IntToStr(DynArr[I,J]);
sg: TStringGrid;
// ������� ���������� ���������� ������
procedure bCreateClick(Sender: TObject);
X := VarArrayOf ([1.2, 2.5, 3, 4.8]);
procedure bRunClick(Sender: TObject);
// ������� � ListBox
private
lb.Clear;
{ Private declarations }
for i:=0 to VarArrayHighBound(X,1) do
public
lb.Items.Add(FloatToStr(X[i]));
v: IVectSrv;
// ��������� ������
vm: IMatrixSrv;
V := CreateComObject(Class_VectSrv) as IVectSrv;
{ Public declarations }
if V=Nil then
end;
ShowMessage ('������ �� ������!');
end;
var
MainForm: TMainForm;
procedure TMainForm.bRunClick(Sender: TObject);
var
implementation
I, J: Integer;
begin
var X, Y, A , B: olevariant; // ����� ��� �������� � COM ������
if V <> Nil then
DynArr : array of array of integer;
begin
// ������������ ��������� ������
try
// �������� ����� ���������� (������ ������� ��������)
{$R *.dfm}
V.ChangeVect(x,y);
procedure TMainForm.bCreateClick(Sender: TObject);
// ������� ���������
var
lb.Clear;
I, J: Integer;
for i:=0 to VarArrayHighBound(Y,1) do
begin
lb.Items.Add(FloatToStr(Y[i]));
// ��� ����������� ����� ��������� ��� �������.
Vm := V as IMatrixSrv; // ���������� � ������� ����������
// ���������� ������ ��������� ��� ����������.
A := DynArr; // ���������� � ������� ������������ ������
// ������� - ��� ������������ ��������� ������.
Vm.Trans(A,B); // �������� ����� (����������������)
// ������ ����� 2 �� 2 ���������� ������������� �������
SetLength (DynArr,2,2);
// ������� � �����
// .. � ��������� (����� ��� ������� ��-������� - �� �����, ������ ���
with SG do
�����)
for I := 0 to ColCount - 1 do
DynArr[0,0]:=1;
for J:= 0 to RowCount - 1 do
DynArr[1,1]:=3;
31 32
Страницы
- « первая
- ‹ предыдущая
- …
- 14
- 15
- 16
- 17
- 18
- …
- следующая ›
- последняя »
