Структуры и организация данных в ЭВМ

скачати

##DELPHI.DIAGRAM.PORTFOLIO###�@##	#	Untitled1######
object Form1: TForm1   Left = -4   Top = -4   BorderIcons = [biSystemMenu, biMinimize]   BorderStyle = bsSingle   Caption = #1055#1086#1080#1089#1082   ClientHeight = 687   ClientWidth = 1024   Color = clBtnFace   Font.Charset = DEFAULT_CHARSET   Font.Color = clWindowText   Font.Height = -11   Font.Name = 'MS Sans Serif'   Font.Style = []   OldCreateOrder = False   Position = poDefault   Visible = True   WindowState = wsMaximized   OnCreate = FormCreate   PixelsPerInch = 96   TextHeight = 13   object Label1: TLabel     Left = 24     Top = 64     Width = 52     Height = 13     Caption = #1058#1072#1073#1083#1080#1094#1072' 1'   end   object Label2: TLabel     Left = 32     Top = 400     Width = 52     Height = 13     Caption = #1058#1072#1073#1083#1080#1094#1072' 2'   end   object Label4: TLabel     Left = 600     Top = 16     Width = 20     Height = 13     Caption = #1064#1072#1075   end   object Label5: TLabel     Left = 200     Top = 16     Width = 101     Height = 13     Caption = #1056#1072#1079#1084#1077#1088' '#1092#1072#1081#1083#1072' Nmin'   end   object Label6: TLabel     Left = 376     Top = 16     Width = 104     Height = 13     Caption = #1056#1072#1079#1084#1077#1088' '#1092#1072#1081#1083#1072' Nmax'   end   object Label7: TLabel     Left = 744     Top = 16     Width = 93     Height = 13     Caption = #1056#1072#1079#1084#1077#1088' '#1074#1077#1082#1090#1086#1088#1072' K'   end   object sgTb2: TStringGrid     Left = 16     Top = 424     Width = 345     Height = 265     ColCount = 4     DefaultColWidth = 67     FixedCols = 0     RowCount = 12     TabOrder = 0   end   object sgTb1: TStringGrid     Left = 16     Top = 88     Width = 345     Height = 305     DefaultColWidth = 66     FixedCols = 0     RowCount = 12     TabOrder = 1   end   object btFind: TButton     Left = 24     Top = 16     Width = 97     Height = 41     Hint = #1053#1072#1095#1072#1090#1100' '#1087#1086#1080#1089#1082     Caption = #1055#1086#1080#1089#1082     TabOrder = 2     OnClick = btFindClick   end   object btClose: TBitBtn     Left = 896     Top = 16     Width = 97     Height = 41     Hint = #1047#1072#1074#1077#1088#1096#1080#1090#1100     TabOrder = 3     Kind = bkClose   end   object cbSel1: TComboBox     Left = 728     Top = 80     Width = 241     Height = 21     Enabled = False     ItemHeight = 13     TabOrder = 4     Text = #1051#1080#1085#1077#1081#1085#1099#1081' '#1087#1086#1080#1089#1082' 1'     OnChange = cbSel1Change     Items.Strings = (       #1055#1077#1088#1074#1099#1081' '#1083#1080#1085#1077#1081#1085#1099#1081' '#1087#1086#1080#1089#1082       #1042#1090#1086#1088#1086#1081' '#1083#1080#1085#1077#1081#1085#1099#1081' '#1087#1086#1080#1089#1082       #1044#1074#1086#1080#1095#1085#1099#1081' '#1087#1086#1080#1089#1082       #1055#1086#1080#1089#1082' '#1089' '#1085#1072#1082#1086#1087#1083#1077#1085#1080#1077#1084)   end   object edNmin: TEdit     Left = 208     Top = 40     Width = 73     Height = 21     TabOrder = 5   end   object edNmax: TEdit     Left = 392     Top = 40     Width = 73     Height = 21     TabOrder = 6   end   object edLen: TEdit     Left = 752     Top = 40     Width = 73     Height = 21     TabOrder = 7   end   object Chart1: TChart     Left = 384     Top = 120     Width = 617     Height = 273     BackWall.Brush.Color = clWhite     BackWall.Brush.Style = bsClear     MarginRight = 2     Title.Color = 14737632     Title.Font.Charset = DEFAULT_CHARSET     Title.Font.Color = clGreen     Title.Font.Height = -12     Title.Font.Name = 'Arial'     Title.Font.Style = []     Title.Frame.Style = psDashDot     Title.Text.Strings = (                #1043#1088#1072#1092#1080#1082#1080' '#1079#1072#1074#1080#1089#1080#1084#1086#1089#1090#1080' '#1074#1088#1077#1084#1077#1085#1080' '#1086#1090' '#1088#1072#1079#1084#1077#1088#1072' '#1090#1072#1073#1083#1080#1094#1099' '#1087#1088#1080' '#1088#1072#1079#1083#1080#1095#1085#1099#1093' '#1074#1080#1076 +         #1072#1093' '#1087#1086#1080#1089#1082#1072)     Legend.Alignment = laBottom     Legend.ColorWidth = 20     Legend.ShadowSize = 0     Legend.TopPos = 8     View3D = False     BorderStyle = bsSingle     TabOrder = 8     object Series1: TLineSeries       Marks.ArrowLength = 8       Marks.Visible = False       SeriesColor = clRed       Title = #1055#1077#1088#1074#1099#1081' '#1083#1080#1085#1077#1081#1085#1099#1081' '#1087#1086#1080#1089#1082       Dark3D = False       LinePen.Width = 3       Pointer.Dark3D = False       Pointer.Draw3D = False       Pointer.InflateMargins = True       Pointer.Style = psRectangle       Pointer.Visible = False       XValues.DateTime = False       XValues.Name = 'X'       XValues.Multiplier = 1.000000000000000000       XValues.Order = loAscending       YValues.DateTime = False       YValues.Name = 'Y'       YValues.Multiplier = 1.000000000000000000       YValues.Order = loNone     end     object Series2: TLineSeries       Marks.ArrowLength = 8       Marks.Visible = False       SeriesColor = clGreen       Title = #1042#1090#1086#1088#1086#1081' '#1083#1080#1085#1077#1081#1085#1099#1081' '#1087#1086#1080#1089#1082       LinePen.Width = 3       Pointer.InflateMargins = True       Pointer.Style = psRectangle       Pointer.Visible = False       XValues.DateTime = False       XValues.Name = 'X'       XValues.Multiplier = 1.000000000000000000       XValues.Order = loAscending       YValues.DateTime = False       YValues.Name = 'Y'       YValues.Multiplier = 1.000000000000000000       YValues.Order = loNone     end     object Series3: TLineSeries       Marks.ArrowLength = 8       Marks.Visible = False       SeriesColor = clYellow       Title = #1044#1074#1086#1080#1095#1085#1099#1081' '#1087#1086#1080#1089#1082       LinePen.Width = 3       Pointer.InflateMargins = True       Pointer.Style = psRectangle       Pointer.Visible = False       XValues.DateTime = False       XValues.Name = 'X'       XValues.Multiplier = 1.000000000000000000       XValues.Order = loAscending       YValues.DateTime = False       YValues.Name = 'Y'       YValues.Multiplier = 1.000000000000000000       YValues.Order = loNone     end     object Series4: TLineSeries       Marks.ArrowLength = 8       Marks.Visible = False       SeriesColor = clBlue       Title = #1055#1086#1080#1089#1082' '#1089' '#1085#1072#1082#1086#1087#1083#1077#1085#1080#1077#1084       LinePen.Width = 3       Pointer.InflateMargins = True       Pointer.Style = psRectangle       Pointer.Visible = False       XValues.DateTime = False       XValues.Name = 'X'       XValues.Multiplier = 1.000000000000000000       XValues.Order = loAscending       YValues.DateTime = False       YValues.Name = 'Y'       YValues.Multiplier = 1.000000000000000000       YValues.Order = loNone     end   end   object edStep: TEdit     Left = 576     Top = 40     Width = 73     Height = 21     TabOrder = 9   end   object Chart2: TChart     Left = 384     Top = 456     Width = 625     Height = 225     BackWall.Brush.Color = clWhite     BackWall.Brush.Style = bsClear     Title.Font.Charset = DEFAULT_CHARSET     Title.Font.Color = clGreen     Title.Font.Height = -12     Title.Font.Name = 'Arial'     Title.Font.Style = []     Title.Text.Strings = (                #1047#1072#1074#1080#1089#1080#1084#1086#1089#1090#1100' '#1074#1088#1077#1084#1077#1085#1080' '#1086#1090' '#1088#1072#1079#1084#1077#1088#1072' '#1090#1072#1073#1083#1080#1094#1099' '#1087#1088#1080' '#1088#1072#1079#1083#1080#1095#1085#1099#1093' '#1074#1080#1076#1072#1093' '#1087#1086#1080#1089#1082 +         #1072' '#1087#1088#1080' '#1089#1086#1088#1090#1080#1088#1086#1074#1082#1077)     Legend.Alignment = laBottom     Legend.ColorWidth = 10     Legend.ShadowSize = 0     Legend.TopPos = 9     View3D = False     BorderStyle = bsSingle     TabOrder = 10     object Series5: TLineSeries       Marks.ArrowLength = 8       Marks.Visible = False       SeriesColor = clRed       Title = #1042#1090#1086#1088#1086#1081' '#1083#1080#1085#1077#1081#1085#1099#1081' '#1087#1086#1080#1089#1082' + '#1089#1086#1088#1090#1080#1088#1086#1074#1082#1072' '#1040       LinePen.Width = 3       Pointer.InflateMargins = True       Pointer.Style = psRectangle       Pointer.Visible = False       XValues.DateTime = False       XValues.Name = 'X'       XValues.Multiplier = 1.000000000000000000       XValues.Order = loAscending       YValues.DateTime = False       YValues.Name = 'Y'       YValues.Multiplier = 1.000000000000000000       YValues.Order = loNone     end     object Series6: TLineSeries       Marks.ArrowLength = 8       Marks.Visible = False       SeriesColor = clGreen       Title = #1044#1074#1086#1080#1095#1085#1099#1081' '#1087#1086#1080#1089#1082' + '#1089#1086#1088#1090#1080#1088#1086#1074#1082#1072' '#1040       LinePen.Width = 3       Pointer.InflateMargins = True       Pointer.Style = psRectangle       Pointer.Visible = False       XValues.DateTime = False       XValues.Name = 'X'       XValues.Multiplier = 1.000000000000000000       XValues.Order = loAscending       YValues.DateTime = False       YValues.Name = 'Y'       YValues.Multiplier = 1.000000000000000000       YValues.Order = loNone     end     object Series7: TLineSeries       Marks.ArrowLength = 8       Marks.Visible = False       SeriesColor = clYellow       Title = #1055#1086#1080#1089#1082' '#1089' '#1085#1072#1082#1086#1087#1083#1077#1085#1080#1077#1084' + '#1089#1086#1088#1090#1080#1088#1086#1074#1082#1072' '#1040' +  '#1089#1086#1088#1090#1080#1088#1086#1074#1082#1072' '#1042       LinePen.Width = 3       Pointer.InflateMargins = True       Pointer.Style = psRectangle       Pointer.Visible = False       XValues.DateTime = False       XValues.Name = 'X'       XValues.Multiplier = 1.000000000000000000       XValues.Order = loAscending       YValues.DateTime = False       YValues.Name = 'Y'       YValues.Multiplier = 1.000000000000000000       YValues.Order = loNone     end   end   object cbSel2: TComboBox     Left = 736     Top = 416     Width = 241     Height = 21     ItemHeight = 13     TabOrder = 11     Text = #1042#1090#1086#1088#1086#1081' '#1083#1080#1085#1077#1081#1085#1099#1081' '#1087#1086#1080#1089#1082' + '#1089#1086#1088#1090#1080#1088#1086#1074#1082#1072' '#1040     OnChange = cbSel2Change     Items.Strings = (       #1042#1090#1086#1088#1086#1081' '#1083#1080#1085#1077#1081#1085#1099#1081' '#1087#1086#1080#1089#1082'  + '#1089#1086#1088#1090#1080#1088#1086#1074#1082#1072' '#1040       #1044#1074#1086#1080#1095#1085#1099#1081' '#1087#1086#1080#1089#1082' + '#1089#1086#1088#1090#1080#1088#1086#1074#1082#1072' '#1040       #1055#1086#1080#1089#1082' '#1089' '#1085#1072#1082#1086#1087#1083#1077#1085#1080#1077#1084' + '#1089#1086#1088#1090#1080#1088#1086#1074#1082#1072' '#1040' '#1080' '#1042)   end   object Panel1: TPanel     Left = 408     Top = 80     Width = 273     Height = 25     BorderStyle = bsSingle     TabOrder = 12     object rbEve1: TRadioButton       Left = 24       Top = 4       Width = 105       Height = 13       Caption = #1055#1086' '#1086#1090#1076#1077#1083#1100#1085#1086#1089#1090#1080       TabOrder = 0       OnClick = rbEve1Click     end     object rbTog1: TRadioButton       Left = 163       Top = 4       Width = 65       Height = 13       Caption = #1042#1084#1077#1089#1090#1077       TabOrder = 1       OnClick = rbTog1Click     end   end   object Panel2: TPanel     Left = 408     Top = 416     Width = 273     Height = 25     BorderStyle = bsSingle     TabOrder = 13     object rbEve2: TRadioButton       Left = 24       Top = 4       Width = 121       Height = 13       Caption = #1055#1086' '#1086#1090#1076#1077#1083#1100#1085#1086#1089#1090#1080       TabOrder = 0       OnClick = rbEve2Click     end     object rbTog2: TRadioButton       Left = 163       Top = 4       Width = 81       Height = 13       Caption = #1042#1084#1077#1089#1090#1077       TabOrder = 1       OnClick = rbTog2Click     end   end end 
unit MainForm;  interface  uses   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,   Dialogs, StdCtrls, ExtCtrls, TeeProcs, TeEngine, Chart, Buttons, Grids,   Series;  type   TForm1 = class(TForm)     sgTb2: TStringGrid;     sgTb1: TStringGrid;     Label1: TLabel;     Label2: TLabel;     btFind: TButton;     btClose: TBitBtn;     rbTog1: TRadioButton;     rbEve1: TRadioButton;     cbSel1: TComboBox;     edNmin: TEdit;     edNmax: TEdit;     edLen: TEdit;     Label4: TLabel;     Chart1: TChart;     Series1: TLineSeries;     Series2: TLineSeries;     Series3: TLineSeries;     Series4: TLineSeries;     edStep: TEdit;     Label5: TLabel;     Label6: TLabel;     Label7: TLabel;     Chart2: TChart;     rbTog2: TRadioButton;     rbEve2: TRadioButton;     cbSel2: TComboBox;     Series5: TLineSeries;     Series6: TLineSeries;     Series7: TLineSeries;     Panel1: TPanel;     Panel2: TPanel;     procedure rbEve1Click(Sender: TObject);     procedure rbTog1Click(Sender: TObject);     procedure btFindClick(Sender: TObject);     procedure LinFind;     procedure BinFind;     procedure LinFindAcc;     procedure SortA;     procedure SortB;     procedure Verify;     procedure rbValClick(Sender: TObject);     procedure rbIntClick(Sender: TObject);     procedure Fill;      procedure FormCreate(Sender: TObject);     procedure cbSel1Change(Sender: TObject);     procedure rbTog2Click(Sender: TObject);     procedure rbEve2Click(Sender: TObject);     procedure cbSel2Change(Sender: TObject);   private     { Private declarations }   public     { Public declarations }   end;  var   Form1: TForm1;   Tim : array [1..6,  1..3] of TDateTime;   A : file of Word;   B, arA : array of Word;   Nmin, Nmax, Step, K, t, i, m, rnd, Fval : Word;   SortA1, SortA2, SortAB, LinF1, LinF2, BinF, LinFAcc: array [0..1, 1..4, 1..65535] of Word;   TSortA1, TSortA2, TSortAB, TLinF1, TLinF2, TBinF, TLinFAcc: array [1..65535] of Word;   Acc : array [1..3, 1..65535] of Word; implementation  {$R *.dfm}  procedure TForm1.Fill; var   r : Integer; begin   Rewrite(A);   for r:=1 to i do                     //���������� �����   begin                                //���������� ���������     Fval:=Random(64000);     Write(A, Fval);   end; end;  procedure TForm1.LinFind;               //�������� ����� var   s1, s2 : Word; begin   for s1:=0 to K-1 do     for s2:=0 to i-1 do       begin         Seek(A, s2);         Read(A, Fval);         if (B[s1]=Fval) then Exit;       end; end;  procedure TForm1.BinFind;                //�������� ����� var   s1, cou, cou1, cou2 : integer; label   1; begin    for s1:=0 to K-1 do   begin     cou1:=0;     cou2:=i-1;     While cou1<=cou2 do     begin       cou:=(cou2+cou1) div 2;       Seek(A, cou);       Read(A, Fval);       if (Fval=B[s1]) then goto 1         else if Fval<B[s1] then cou1:=cou+1           else cou2:=cou-1;     end; 1 :   end; end;  procedure TForm1.LinFindAcc;             //�������� ����� � ����������� var   s1, s2, cou : Word; begin   cou:=1;   for s1:=0 to K-1 do     for s2:=0 to i-1 do       begin         Seek(A, s2);         Read(A, Fval);         if (B[s1]=Fval) then         begin           Acc[1, cou]:=s2;           Acc[2, cou]:=s1;           Acc[3, cou]:=Fval;           cou:=cou+1;         end;       end; end;  procedure TForm1.SortA; var   r, d : integer;   tmp, val : Word; begin   SetLength(arA, i);   for r:=0 to i-1 do   begin     Seek(A, r);     Read(A, val);     arA[r]:=val;   end;    for r:=0 to i-2 do     for d:=r+1 to i-1 do     begin       if (arA[r]>arA[d]) then       begin         tmp:=arA[r];         arA[r]:=arA[d];         arA[d]:=tmp;       end;     end;    Rewrite(A);   for r:=0 to i-1 do Write(A, arA[r]);   end;  procedure TForm1.SortB; var   r, d : integer;   tmp : Word; begin   for r:=0 to K-2 do     for d:=r+1 to K-1 do     begin       if (B[r]>B[d]) then       begin         tmp:=B[r];         B[r]:=B[d];         B[d]:=tmp;       end;     end; end;  procedure TForm1.Verify;                      //�������� begin   if (edNmin.Text='') or (edNmax.Text='') or (edStep.Text='') or (edLen.Text='') then   begin     ShowMessage('������� ������� ���� ����������!');     Abort;   end;    try     Nmin:=StrToInt(edNmin.Text);     Nmax:=StrToInt(edNmax.Text);     Step:=StrToInt(edStep.Text);     K:=StrToInt(edLen.Text);   except     ShowMessage('��������� ��������� ������� �������!');     Abort;   end;    if (StrToInt(edNmin.Text)<=0) or (StrToInt(edNmax.Text)<=0) or     (StrToInt(edStep.Text)<=0) or (StrToInt(edLen.Text)<=0) or     (StrToInt(edNmin.Text)>65535) or (StrToInt(edNmin.Text)>65535) or     (StrToInt(edStep.Text)>65535) or (StrToInt(edLen.Text)>65535) then   begin     ShowMessage('������� ������ ������ � ��������� 1..65535!');     Abort;   end;    if (StrToInt(edNmin.Text)>=StrToInt(edNmax.Text)) then   begin     ShowMessage('������������ �������� ������� ������ ���� ������ ������������!');     Abort;   end; end;  procedure TForm1.rbEve1Click(Sender: TObject); begin cbSel1.Enabled:=true; Chart1.Series[1].Active:=false; Chart1.Series[2].Active:=false; Chart1.Series[3].Active:=false; Chart1.Series[0].Active:=false; Chart1.Series[cbSel1.ItemIndex].Active:=true; end;  procedure TForm1.rbTog1Click(Sender: TObject); begin cbSel1.Enabled:=false; Chart1.Series[1].Active:=true; Chart1.Series[2].Active:=true; Chart1.Series[3].Active:=true; Chart1.Series[0].Active:=true; end;  procedure TForm1.btFindClick(Sender: TObject); begin   Verify;   //Chart1.SeriesList.Clear;   AssignFile(A, 'file.bin');   Rewrite(A);   sgTb1.ColCount:=5;   sgTb1.RowCount:=Nmax-Nmin;   SetLength(B, K);                            //������ ������� B    for t:=0 to K-1 do                         //���������� �������   begin                                      //���������� ���������     rnd:=Random(64000);     B[t]:=rnd;   end;    t:=1;   i:=Nmin;   While i<Nmax do                           //������ �������� �����   begin     Fill;                                    //���������� �����     DecodeTime(Time, LinF1[0, 1, t], LinF1[0, 2, t], LinF1[0, 3, t], LinF1[0, 4, t]);     LinFind;     DecodeTime(Time, LinF1[1, 1, t], LinF1[1, 2, t], LinF1[1, 3, t], LinF1[1, 4, t]);     TLinF1[t]:=Linf1[1, 4, t]+1000*LinF1[1, 3, t]-Linf1[0, 4, t]-1000*LinF1[0, 3, t];     sgTb1.Cells[0, t]:=FloatToStr(i);     sgTb1.Cells[1, t]:=FloatToStr(TLinF1[t]);     Chart1.SeriesList[0].AddXY(i, TLinF1[t], '');     i:=i+Step;     t:=t+1;   end;   if i>=Nmax then                                //����� ���   begin                                         //������� ������� Nmax     i:=Nmax;     Fill;     DecodeTime(Time, LinF1[0, 1, t], LinF1[0, 2, t], LinF1[0, 3, t], LinF1[0, 4, t]);     LinFind;     DecodeTime(Time, LinF1[1, 1, t], LinF1[1, 2, t], LinF1[1, 3, t], LinF1[1, 4, t]);     TLinF1[t]:=Linf1[1, 4, t]+1000*LinF1[1, 3, t]-Linf1[0, 4, t]-1000*LinF1[0, 3, t];     sgTb1.Cells[0, t]:=FloatToStr(i);     sgTb1.Cells[1, t]:=FloatToStr(TLinF1[t]);     Chart1.SeriesList[0].AddXY(i, TLinF1[t], '');   end;                                                 t:=1;     i:=Nmin;     While i<Nmax do                           //������ �������� �����   begin                                            Fill;     DecodeTime(Time, SortA1[0, 1, t], SortA1[0, 2, t], SortA1[0, 3, t], SortA1[0, 4, t]);     SortA;                                    //���������� ����� A     DecodeTime(Time, LinF2[0, 1, t], LinF2[0, 2, t], LinF2[0, 3, t], LinF2[0, 4, t]);     LinFind;     DecodeTime(Time, LinF2[1, 1, t], LinF2[1, 2, t], LinF2[1, 3, t], LinF2[1, 4, t]);     TLinF2[t]:=Linf2[1, 4, t]+1000*LinF2[1, 3, t]-Linf2[0, 4, t]-1000*LinF2[0, 3, t];     TSortA1[t]:=Linf2[1, 4, t]+1000*LinF2[1, 3, t]-SortA1[0, 4, t]-1000*SortA1[0, 3, t];     sgTb1.Cells[2, t]:=FloatToStr(TLinF2[t]);     sgTb2.Cells[0, t]:=FloatToStr(i);     sgTb2.Cells[1, t]:=FloatToStr(TSortA1[t]);     Chart1.SeriesList[1].AddXY(i, TLinF2[t], '');     Chart2.SeriesList[0].AddXY(i, TSortA1[t], '');     i:=i+Step;     t:=t+1;   end;   if i>=Nmax then                                //����� ���   begin                                         //������� ������� Nmax     i:=Nmax;     Fill;     DecodeTime(Time, SortA1[0, 1, t], SortA1[0, 2, t], SortA1[0, 3, t], SortA1[0, 4, t]);     SortA;     DecodeTime(Time, LinF2[0, 1, t], LinF2[0, 2, t], LinF2[0, 3, t], LinF2[0, 4, t]);     LinFind;     DecodeTime(Time, LinF2[1, 1, t], LinF2[1, 2, t], LinF2[1, 3, t], LinF2[1, 4, t]);     TLinF2[t]:=Linf2[1, 4, t]+1000*LinF2[1, 3, t]-Linf2[0, 4, t]-1000*LinF2[0, 3, t];     TSortA1[t]:=Linf2[1, 4, t]+1000*LinF2[1, 3, t]-SortA1[0, 4, t]-1000*SortA1[0, 3, t];     sgTb2.Cells[0, t]:=FloatToStr(i);     sgTb1.Cells[2, t]:=FloatToStr(TLinF2[t]);     sgTb2.Cells[1, t]:=FloatToStr(TSortA1[t]);     Chart1.SeriesList[1].AddXY(i, TLinF2[t], '');     Chart2.SeriesList[0].AddXY(i, TSortA1[t], '');   end;       t:=1;     i:=Nmin;     While i<Nmax do                           //�������� �����   begin     Fill;     DecodeTime(Time, SortA2[0, 1, t], SortA2[0, 2, t], SortA2[0, 3, t], SortA2[0, 4, t]);     SortA;     DecodeTime(Time, BinF[0, 1, t], BinF[0, 2, t], BinF[0, 3, t], BinF[0, 4, t]);     BinFind;     DecodeTime(Time, BinF[1, 1, t], BinF[1, 2, t], BinF[1, 3, t], BinF[1, 4, t]);     TBinF[t]:=BinF[1, 4, t]+1000*BinF[1, 3, t]-BinF[0, 4, t]-1000*BinF[0, 3, t];     TSortA2[t]:=BinF[1, 4, t]+1000*BinF[1, 3, t]-SortA2[0, 4, t]-1000*SortA2[0, 3, t];     sgTb1.Cells[3, t]:=FloatToStr(TBinF[t]);     sgTb2.Cells[2, t]:=FloatToStr(TSortA2[t]);     Chart1.SeriesList[2].AddXY(i, TBinF[t], '');     Chart2.SeriesList[1].AddXY(i, TSortA2[t], '');     i:=i+Step;     t:=t+1;   end;   if i>=Nmax then                                //����� ���   begin                                         //������� ������� Nmax     i:=Nmax;     Fill;     DecodeTime(Time, SortA2[0, 1, t], SortA2[0, 2, t], SortA2[0, 3, t], SortA2[0, 4, t]);     SortA;     DecodeTime(Time, BinF[0, 1, t], BinF[0, 2, t], BinF[0, 3, t], BinF[0, 4, t]);     LinFind;     DecodeTime(Time, BinF[1, 1, t], BinF[1, 2, t], BinF[1, 3, t], BinF[1, 4, t]);     TBinF[t]:=BinF[1, 4, t]+1000*BinF[1, 3, t]-BinF[0, 4, t]-1000*BinF[0, 3, t];     TSortA2[t]:=BinF[1, 4, t]+1000*BinF[1, 3, t]-SortA2[0, 4, t]-1000*SortA2[0, 3, t];     sgTb1.Cells[3, t]:=FloatToStr(TBinF[t]);     sgTb2.Cells[2, t]:=FloatToStr(TSortA2[t]);     Chart1.SeriesList[2].AddXY(i, TBinF[t], '');     Chart2.SeriesList[1].AddXY(i, TSortA2[t], '');   end;       t:=1;     i:=Nmin;     While i<Nmax do                           //�������� �����   begin                                        //� �����������     Fill;     DecodeTime(Time, SortAB[0, 1, t], SortAB[0, 2, t], SortAB[0, 3, t], SortAB[0, 4, t]);     SortA;     SortB;                                    //���������� ������� B     DecodeTime(Time, LinFAcc[0, 1, t], LinFAcc[0, 2, t], LinFAcc[0, 3, t], LinFAcc[0, 4, t]);     LinFindAcc;     DecodeTime(Time, LinFAcc[1, 1, t], LinFAcc[1, 2, t], LinFAcc[1, 3, t], LinFAcc[1, 4, t]);     TLinFAcc[t]:=LinFAcc[1, 4, t]+1000*LinFAcc[1, 3, t]-LinFAcc[0, 4, t]-1000*LinFAcc[0, 3, t];     TSortAB[t]:=LinFAcc[1, 4, t]+1000*LinFAcc[1, 3, t]-SortAB[0, 4, t]-1000*SortAB[0, 3, t];     sgTb1.Cells[4, t]:=FloatToStr(TLinFAcc[t]);     sgTb2.Cells[3, t]:=FloatToStr(TSortAB[t]);     Chart1.SeriesList[3].AddXY(i, TLinFAcc[t], '');     Chart2.SeriesList[2].AddXY(i, TSortAB[t], '');     i:=i+Step;     t:=t+1;   end;   if i>=Nmax then                                //����� ���   begin                                         //������� ������� Nmax     i:=Nmax;     Fill;     DecodeTime(Time, SortAB[0, 1, t], SortAB[0, 2, t], SortAB[0, 3, t], SortAB[0, 4, t]);     SortA;     SortB;     DecodeTime(Time, LinFAcc[0, 1, t], LinFAcc[0, 2, t], LinFAcc[0, 3, t], LinFAcc[0, 4, t]);     LinFindAcc;     DecodeTime(Time, LinFAcc[1, 1, t], LinFAcc[1, 2, t], LinFAcc[1, 3, t], LinFAcc[1, 4, t]);     TLinFAcc[t]:=LinFAcc[1, 4, t]+1000*LinFAcc[1, 3, t]-LinFAcc[0, 4, t]-1000*LinFAcc[0, 3, t];     TSortAB[t]:=LinFAcc[1, 4, t]+1000*LinFAcc[1, 3, t]-SortAB[0, 4, t]-1000*SortAB[0, 3, t];     sgTb1.Cells[4, t]:=FloatToStr(TLinFAcc[t]);     sgTb2.Cells[3, t]:=FloatToStr(TSortAB[t]);     Chart1.SeriesList[3].AddXY(i, TLinFAcc[t], '');     Chart2.SeriesList[2].AddXY(i, TSortAB[t], '');   end;    sgTb1.RowCount:=t+1;    CloseFile(A);   Erase(A);   Finalize(B); end;  procedure TForm1.rbValClick(Sender: TObject); begin edNmax.Visible:=false; edStep.Visible:=false; end;  procedure TForm1.rbIntClick(Sender: TObject); begin edNmax.Visible:=true; edStep.Visible:=true; end;  procedure TForm1.FormCreate(Sender: TObject); begin   Randomize;   sgTb1.Cells[0, 0]:='N';   sgTb1.Cells[1, 0]:='t��1';   sgTb1.Cells[2, 0]:='t��2';   sgTb1.Cells[3, 0]:='t��';   sgTb1.Cells[4, 0]:='t��-�';    sgTb2.Cells[0, 0]:='N';   sgTb2.Cells[1, 0]:='t��2+t�A';   sgTb2.Cells[2, 0]:='t��+t�A';   sgTb2.Cells[3, 0]:='t��-�+t�';    cbSel1.ItemIndex:=0;   cbSel2.ItemIndex:=0;    rbTog1.Checked:=true;   rbTog2.Checked:=true; end;  procedure TForm1.cbSel2Change(Sender: TObject); begin Chart2.Series[0].Active:=false; Chart2.Series[1].Active:=false; Chart2.Series[2].Active:=false; Chart2.Series[cbSel2.ItemIndex].Active:=true; end;  procedure TForm1.cbSel1Change(Sender: TObject); begin Chart1.Series[1].Active:=false; Chart1.Series[2].Active:=false; Chart1.Series[3].Active:=false; Chart1.Series[0].Active:=false; Chart1.Series[cbSel1.ItemIndex].Active:=true; end;  procedure TForm1.rbEve2Click(Sender: TObject); begin cbSel2.Enabled:=true; Chart2.Series[0].Active:=false; Chart2.Series[1].Active:=false; Chart2.Series[2].Active:=false; Chart2.Series[cbSel2.ItemIndex].Active:=true; end;  procedure TForm1.rbTog2Click(Sender: TObject); begin cbSel2.Enabled:=false; Chart2.Series[0].Active:=true; Chart2.Series[1].Active:=true; Chart2.Series[2].Active:=true; end;  end. 
program Project;  uses   Forms,   MainForm in 'MainForm.pas' {Form1};  {$R *.res}  begin   Application.Initialize;   Application.CreateForm(TForm1, Form1);   Application.Run; end. 

1. Состав Dеlphi-проекта

Программа включает одну форму: главную, на которой и реализован интерфейс программы

На форме пристутствуют следующие компоненты:

2 компоненты TstringGrid: для отображения результатов работы программа в виде двух таблиц со значениями;

6 компонент TLabel: для отображения поясняющих надписей;

1 компонента TButton: для включения режима поиска;

1 компонента: TBitBtn: для закрытия формы и выхода из приложения;

4 компоненты TRadioButton: для выбора режима отображения кривых на компонентах Tchart (вывод графиков вместе и по отдельности);

4 компоненты TEdit: для ввода данных пользователем;

2 компоненты TChart: для отображения графиков функций;

2 компоненты TComboBox: для выбора графика, отображаемого на компоненте Tchart в режиме «показывать по отдельности»;

2 компоненты TPanel: для группировки компонент TRadioButton.

Программа содержит два модуля: главный модуль программы Project.dpr и модуль MainForm.pas, в котором непосредственно реализуются действия, связанные с поиском.

2. Статические данные и структуры

A: file of Word - файл из N элементов, интерпретируется как таблица, содержащая только целые ключи (N изменяется от Nmin до Nmax )(N*2 байта);

B : array of Word - вектор из К элементов, представляет собой набор аргументов поиска (K*2 байта);

arA : array of Word - массив для временного хранения данных в процедуре сортировки файла A (N*2 байта);

Nmin : Word – минимальное число элементов в таблице A (2 байта);

Nmax : Word – максимальное число элементов в таблице A (2 байта);

Step : Word – шаг изменения числа элементов в таблице A (2 байта);

K : Word - число элементов в векторе B (2 байта);

T, i: Word – счётчики (2 байта);

rnd : Word – переменная, содержащая случайное значение, генерируемое датчиком RANDOM случайных чисел из диапазона [0, 64000] (2 байта);

Fval : Word – значение текущего элемента файла A (2 байта);

SortA1, SortA2, SortAB : array [0..1, 1..4, 1..65535] of Word – значения текущего времени перед выполнением сотвуетствующего вида сортировки в цикле (2*4*65536*2 байта = 1048560 байт);

LinF1, LinF2, BinF, LinFAcc: array [0..1, 1..4, 1..65535] of Word значения текущего времени перед очередным циклом и после него в соответствующих видах поиска (2*4*65535*2 байта = 1048560 байт);

TSortA1, TSortA2, TSortAB array [1..65535] of Word – значения периодов времени, затраченного на соответствующий вид сортировки в цикле (65535*2 байта = 131070 байт);

TLinF1, TLinF2, TBinF, TLinFAcc: array [1..65535] of Word – значения периодов времени, затраченного на соответствующий вид поиска в цикле (65535*2 байта = 131070 байт);

Acc : array [1..3, 1..65535] of Word – массив, накапливающий запросы (3*65535*2 байта = 393210 байт).

3. Логические структуры данных

Логическая схема структуры файла A:

Количество элементов в файле N в процессе выполнения программы изменяется от Nmin до Nmax, т.е. создаётся файл из N=Nmin элементов, затем после необходимых процедур уничтожается и создаётся файл из

Nmin+1 элементов и так, пока N не достигнет значения Nmax

Логическая схема структуры вектора B

4. Алгоритмы обработки основных структур

procedure tform1.fill;

var

r : integer;

begin

rewrite(a);

for r:=1 to i do //наполнение файла

begin //случайными значениями

fval:=random(64000);

write(a, fval);

end;

end;

Данная процедура наполняет файл i значениями, сгенерированными датчиком Random.

Файл A после выполнения первой итерации.

Файл A после выполнения второй итерации.

Файл A после выполнения последней итерации.

procedure tform1.linfind; //линейный поиск

var

s1, s2 : word;

begin

for s1:=0 to k-1 do

for s2:=0 to i-1 do

begin

seek(a, s2);

read(a, fval);

if (b[s1]=fval) then exit;

end;

end;

Процедура перебирает значения из вектора В, сранивая их поэлементно со значениями из файла А.

Состояние вектора и файла при:

первой итерации второй итерации i-й итерации

1*i+1-й итерации 1*i+2-й итерации 1*i+3-й итерации

k*i+1-й итерации k *i+2-й итерации k*i+3-й итерации

procedure tform1.binfind; //двоичный поиск

var

s1, cou, cou1, cou2 : integer;

label

1;

begin

for s1:=0 to k-1 do

begin

cou1:=0;

cou2:=i-1;

while cou1<=cou2 do

begin

cou:=(cou2+cou1) div 2;

seek(a, cou);

read(a, fval);

if (fval=b[s1]) then goto 1

else if fval<b[s1] then cou1:=cou+1

else cou2:=cou-1;

end;

1 : end;

end;

Процедура перебирает значения из вектора В, сранивая их поэлементно со значениями из файла А (файл А должен быть предварительно отсортирован), причём делит файл А пополам и сравнивает значения. Если значение из вектора В больше значения из файла А, то таким же образом исследуется левая половина файла, в противном случае – правая и т.д.

Состояние вектора и файла при:

первой итерации

второй итерации

procedure tform1.linfindacc; //линейный поиск с накоплением

var

s1, s2, cou : word;

begin

cou:=1;

for s1:=0 to k-1 do

for s2:=0 to i-1 do

begin

seek(a, s2);

read(a, fval);

if (b[s1]=fval) then

begin

acc[1, cou]:=s2;

acc[2, cou]:=s1;

acc[3, cou]:=fval;

cou:=cou+1;

end;

end;

end;

Алгоритм процедуры аналогичен алгоритму процедуры tform1.linfind с той разницей, что при совпадении значения в векторе и файле в двухмерный массив аcc записываются индексы файла и вектора, а также совпавшее значение.

procedure tform1.sorta; //сортировка файла a

var

r, d : integer;

tmp, val : word;

begin

setlength(ara, i);

for r:=0 to i-1 do

begin

seek(a, r);

read(a, val);

ara[r]:=val;

end;

for r:=0 to i-2 do

for d:=r+1 to i-1 do

begin

if (ara[r]>ara[d]) then

begin

tmp:=ara[r];

ara[r]:=ara[d];

ara[d]:=tmp;

end;

end;

rewrite(a);

for r:=0 to i-1 do write(a, ara[r]);

end;

Процедура перебирает значения файла, одновременно организуя второй цикл и перебирает значения этой же таблицы, начиная со следующего элемента. Встречая во втором цикле меньшее значение пересылает его во временный файл, значение из первого цикла пересылается в освободившуюся ячейку второго цикла. А его место, в свою очередь, занимает значение из временного файла.

procedure tform1.sortb; //сортировка вектора b

var

r, d : integer;

tmp : word;

begin

for r:=0 to k-2 do

for d:=r+1 to k-1 do

begin

if (b[r]>b[d]) then

begin

tmp:=b[r];

b[r]:=b[d];

b[d]:=tmp;

end;

end;

end;

Алгоритм сортировки вектора аналогичен вышеописанному методу сортировки файла.

5 Руководство пользователя

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

1. Ввод необходимых данных.

Для правильной работы программы необходимо ввести следующие данные: минимальное число элементов в файле A, максимальное число элементов в файле A, шаг изменения количества элементов в файле A от минимального до максимального, число элементов в векторе B.

В случае введения неверной информации программа выдаст соответствующее диалоговое окно:

а) при незаполнении одного из полей:

б) при введении в одно из полей символа(ов), не являющегося(ихся) цифрой(ами):

в) при введении в поле Nmin значения, превышающего значение в поле Nmax:

г) при введении неположительного числа(чисел) либо числа(чисел), превышающего(их) максимально допустимое значение - 65535:

2. Поиск и вычисление времени, затраченного на поиск и сортировку

Для включения режима поиска необходимо нажать кнопку с надписью «ПОИСК»

При верно введенных данных режим поиска успешно начнёт работу, о чём будет свидетельствовать отсутствие диалоговых окон после нажатия кнопки «ПОИСК». После окончания вышеуказанного процесса результаты будут представлены в таблицы 1 и 2, а также выведены в виде графиков соответствующих функций для дальнейшего анализа.

3. Анализ.

Как уже было сказано ранее, данные для анализа будут представлены в таблицах 1 и 2, а также в виде кривых.

Таблица 1 состоит из следующих граф:

  • N (длина таблицы),

  • tЛП1(N) – время первого линейного поиска,

  • tлп2(N) – время второго линейного поиска,

  • tДП(N) – время двоичного поиска,

tЛП-М(N) – время поиска с накоплением запросов.

Вторая таблица имеет следующие графы:

  • N,

  • tлп2(N)+ tсА(N), где tСА(N) – время сортировки файла А,

  • tДп(N)+ tсА(N),

  • tлп-М(N)+ tсА(N)+ tсВ(N).

Справа от каждой таблицы изображены графики соответствующих функций, которые можно просматривать как вместе, так и по отдельности, для чего необходимо выбрать соответствующее положение кнопки(ок) RadioButton:

или так:

Для просмотра определённого графика необходимо выбрать соответствующее название в выпадающем списке справа от панели с кнопками переключения режима вывода графиков (при этом, конечно, должен быть включен режим «ПО ОТДЕЛЬНОСТИ»).

При удовлетворительных результатах можно перейти к завершению приложения, в противном случае же – ввести новые данные и начать новый поиск (см. п.1).

4. Выход из программы.

Для завершения приложения необходимо нажать на кнопку «ЗАКРЫТЬ» или на крестик в правом верхнем углу.

ЗАКЛЮЧЕНИЕ

Приложение (исходные тексты всех модулей)

Исходный текст модуля Project.dpr:

program Project;

uses

Forms,

MainForm in 'MainForm.pas' {Form1};

{$R *.res}

begin

Application.Initialize;

Application.CreateForm(TForm1, Form1);

Application.Run;

end.

Исходный текст модуля MainForm.pas:

unit MainForm;

interface

uses

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

Dialogs, StdCtrls, ExtCtrls, TeeProcs, TeEngine, Chart, Buttons, Grids,

Series;

type

TForm1 = class(TForm)

sgTb2: TStringGrid;

sgTb1: TStringGrid;

Label1: TLabel;

Label2: TLabel;

btFind: TButton;

btClose: TBitBtn;

rbTog1: TRadioButton;

rbEve1: TRadioButton;

cbSel1: TComboBox;

edNmin: TEdit;

edNmax: TEdit;

edLen: TEdit;

Label4: TLabel;

Chart1: TChart;

Series1: TLineSeries;

Series2: TLineSeries;

Series3: TLineSeries;

Series4: TLineSeries;

edStep: TEdit;

Label5: TLabel;

Label6: TLabel;

Label7: TLabel;

Chart2: TChart;

rbTog2: TRadioButton;

rbEve2: TRadioButton;

cbSel2: TComboBox;

Series5: TLineSeries;

Series6: TLineSeries;

Series7: TLineSeries;

Panel1: TPanel;

Panel2: TPanel;

procedure rbEve1Click(Sender: TObject);

procedure rbTog1Click(Sender: TObject);

procedure btFindClick(Sender: TObject);

procedure LinFind;

procedure BinFind;

procedure LinFindAcc;

procedure SortA;

procedure SortB;

procedure Verify;

procedure rbValClick(Sender: TObject);

procedure rbIntClick(Sender: TObject);

procedure Fill;

procedure FormCreate(Sender: TObject);

procedure cbSel1Change(Sender: TObject);

procedure rbTog2Click(Sender: TObject);

procedure rbEve2Click(Sender: TObject);

procedure cbSel2Change(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

A : file of Word;

B, arA : array of Word;

Nmin, Nmax, Step, K, t, i, rnd, Fval : Word;

SortA1, SortA2, SortAB, LinF1, LinF2, BinF, LinFAcc: array [0..1, 1..4, 1..65535] of Word;

TSortA1, TSortA2, TSortAB, TLinF1, TLinF2, TBinF, TLinFAcc: array [1..65535] of Word;

Acc : array [1..3, 1..65535] of Word;

implementation

{$R *.dfm}

procedure TForm1.Fill;

var

r : Integer;

begin

Rewrite(A);

for r:=1 to i do //Наполнение файла

begin //случайными значениями

Fval:=Random(64000);

Write(A, Fval);

end;

end;

procedure TForm1.LinFind; //Линейный поиск

var

s1, s2 : Word;

begin

for s1:=0 to K-1 do

for s2:=0 to i-1 do

begin

Seek(A, s2);

Read(A, Fval);

if (B[s1]=Fval) then Exit;

end;

end;

procedure TForm1.BinFind; //Двоичный поиск

var

s1, cou, cou1, cou2 : integer;

label

1;

begin

for s1:=0 to K-1 do

begin

cou1:=0;

cou2:=i-1;

While cou1<=cou2 do

begin

cou:=(cou2+cou1) div 2;

Seek(A, cou);

Read(A, Fval);

if (Fval=B[s1]) then goto 1

else if Fval<B[s1] then cou1:=cou+1

else cou2:=cou-1;

end;

1 : end;

end;

procedure TForm1.LinFindAcc; //Линейный поиск с накоплением

var

s1, s2, cou : Word;

begin

cou:=1;

for s1:=0 to K-1 do

for s2:=0 to i-1 do

begin

Seek(A, s2);

Read(A, Fval);

if (B[s1]=Fval) then

begin

Acc[1, cou]:=s2;

Acc[2, cou]:=s1;

Acc[3, cou]:=Fval;

cou:=cou+1;

end;

end;

end;

procedure TForm1.SortA; //Сортировка файла A

var

r, d : integer;

tmp, val : Word;

begin

SetLength(arA, i);

for r:=0 to i-1 do

begin

Seek(A, r);

Read(A, val);

arA[r]:=val;

end;

for r:=0 to i-2 do

for d:=r+1 to i-1 do

begin

if (arA[r]>arA[d]) then

begin

tmp:=arA[r];

arA[r]:=arA[d];

arA[d]:=tmp;

end;

end;

Rewrite(A);

for r:=0 to i-1 do Write(A, arA[r]);

end;

procedure TForm1.SortB; //Сортировка вектора B

var

r, d : integer;

tmp : Word;

begin

for r:=0 to K-2 do

for d:=r+1 to K-1 do

begin

if (B[r]>B[d]) then

begin

tmp:=B[r];

B[r]:=B[d];

B[d]:=tmp;

end;

end;

end;

procedure TForm1.Verify; //Проверка

begin

if (edNmin.Text='') or (edNmax.Text='') or (edStep.Text='') or (edLen.Text='') then

begin

ShowMessage('Укажите значения всех параметров!');

Abort;

end;

try

Nmin:=StrToInt(edNmin.Text);

Nmax:=StrToInt(edNmax.Text);

Step:=StrToInt(edStep.Text);

K:=StrToInt(edLen.Text);

except

ShowMessage('Некоторые параметры указаны неверно!');

Abort;

end;

if (StrToInt(edNmin.Text)<=0) or (StrToInt(edNmax.Text)<=0) or

(StrToInt(edStep.Text)<=0) or (StrToInt(edLen.Text)<=0) or

(StrToInt(edNmin.Text)>65535) or (StrToInt(edNmin.Text)>65535) or

(StrToInt(edStep.Text)>65535) or (StrToInt(edLen.Text)>65535) then

begin

ShowMessage('Значения должны лежать в интервале 1..65535!');

Abort;

end;

if (StrToInt(edNmin.Text)>=StrToInt(edNmax.Text)) then

begin

ShowMessage('Максимальное значение таблицы должно быть меньше минимального!');

Abort;

end;

end;

procedure TForm1.rbEve1Click(Sender: TObject);

begin

cbSel1.Enabled:=true;

Chart1.Series[1].Active:=false;

Chart1.Series[2].Active:=false;

Chart1.Series[3].Active:=false;

Chart1.Series[0].Active:=false;

Chart1.Series[cbSel1.ItemIndex].Active:=true;

end;

procedure TForm1.rbTog1Click(Sender: TObject);

begin

cbSel1.Enabled:=false;

Chart1.Series[1].Active:=true;

Chart1.Series[2].Active:=true;

Chart1.Series[3].Active:=true;

Chart1.Series[0].Active:=true;

end;

procedure TForm1.btFindClick(Sender: TObject);

begin

Verify;

AssignFile(A, 'file.bin');

Rewrite(A);

sgTb1.ColCount:=5;

sgTb1.RowCount:=Nmax-Nmin;

SetLength(B, K); //Размер вектора B

for t:=0 to K-1 do //Наполнение вектора

begin //случайными значениями

rnd:=Random(64000);

B[t]:=rnd;

end;

t:=1;

i:=Nmin;

While i<Nmax do //Первый линейный поиск

begin

Fill; //Наполнение файла

DecodeTime(Time, LinF1[0, 1, t], LinF1[0, 2, t], LinF1[0, 3, t], LinF1[0, 4, t]);

LinFind;

DecodeTime(Time, LinF1[1, 1, t], LinF1[1, 2, t], LinF1[1, 3, t], LinF1[1, 4, t]);

TLinF1[t]:=Linf1[1, 4, t]+1000*LinF1[1, 3, t]-Linf1[0, 4, t]-1000*LinF1[0, 3, t];

sgTb1.Cells[0, t]:=FloatToStr(i);

sgTb1.Cells[1, t]:=FloatToStr(TLinF1[t]);

Chart1.SeriesList[0].AddXY(i, TLinF1[t], '');

i:=i+Step;

t:=t+1;

end;

if i>=Nmax then //Поиск при

begin //размере таблицы Nmax

i:=Nmax;

Fill;

DecodeTime(Time, LinF1[0, 1, t], LinF1[0, 2, t], LinF1[0, 3, t], LinF1[0, 4, t]);

LinFind;

DecodeTime(Time, LinF1[1, 1, t], LinF1[1, 2, t], LinF1[1, 3, t], LinF1[1, 4, t]);

TLinF1[t]:=Linf1[1, 4, t]+1000*LinF1[1, 3, t]-Linf1[0, 4, t]-1000*LinF1[0, 3, t];

sgTb1.Cells[0, t]:=FloatToStr(i);

sgTb1.Cells[1, t]:=FloatToStr(TLinF1[t]);

Chart1.SeriesList[0].AddXY(i, TLinF1[t], '');

end;

t:=1;

i:=Nmin;

While i<Nmax do //Второй линейный поиск

begin

Fill;

DecodeTime(Time, SortA1[0, 1, t], SortA1[0, 2, t], SortA1[0, 3, t], SortA1[0, 4, t]);

SortA; //Сортировка файла A

DecodeTime(Time, LinF2[0, 1, t], LinF2[0, 2, t], LinF2[0, 3, t], LinF2[0, 4, t]);

LinFind;

DecodeTime(Time, LinF2[1, 1, t], LinF2[1, 2, t], LinF2[1, 3, t], LinF2[1, 4, t]);

TLinF2[t]:=Linf2[1, 4, t]+1000*LinF2[1, 3, t]-Linf2[0, 4, t]-1000*LinF2[0, 3, t];

TSortA1[t]:=Linf2[1, 4, t]+1000*LinF2[1, 3, t]-SortA1[0, 4, t]-1000*SortA1[0, 3, t];

sgTb1.Cells[2, t]:=FloatToStr(TLinF2[t]);

sgTb2.Cells[0, t]:=FloatToStr(i);

sgTb2.Cells[1, t]:=FloatToStr(TSortA1[t]);

Chart1.SeriesList[1].AddXY(i, TLinF2[t], '');

Chart2.SeriesList[0].AddXY(i, TSortA1[t], '');

i:=i+Step;

t:=t+1;

end;

if i>=Nmax then //Поиск при

begin //размере таблицы Nmax

i:=Nmax;

Fill;

DecodeTime(Time, SortA1[0, 1, t], SortA1[0, 2, t], SortA1[0, 3, t], SortA1[0, 4, t]);

SortA;

DecodeTime(Time, LinF2[0, 1, t], LinF2[0, 2, t], LinF2[0, 3, t], LinF2[0, 4, t]);

LinFind;

DecodeTime(Time, LinF2[1, 1, t], LinF2[1, 2, t], LinF2[1, 3, t], LinF2[1, 4, t]);

TLinF2[t]:=Linf2[1, 4, t]+1000*LinF2[1, 3, t]-Linf2[0, 4, t]-1000*LinF2[0, 3, t];

TSortA1[t]:=Linf2[1, 4, t]+1000*LinF2[1, 3, t]-SortA1[0, 4, t]-1000*SortA1[0, 3, t];

sgTb2.Cells[0, t]:=FloatToStr(i);

sgTb1.Cells[2, t]:=FloatToStr(TLinF2[t]);

sgTb2.Cells[1, t]:=FloatToStr(TSortA1[t]);

Chart1.SeriesList[1].AddXY(i, TLinF2[t], '');

Chart2.SeriesList[0].AddXY(i, TSortA1[t], '');

end;

t:=1;

i:=Nmin;

While i<Nmax do //Двоичный поиск

begin

Fill;

DecodeTime(Time, SortA2[0, 1, t], SortA2[0, 2, t], SortA2[0, 3, t], SortA2[0, 4, t]);

SortA;

DecodeTime(Time, BinF[0, 1, t], BinF[0, 2, t], BinF[0, 3, t], BinF[0, 4, t]);

BinFind;

DecodeTime(Time, BinF[1, 1, t], BinF[1, 2, t], BinF[1, 3, t], BinF[1, 4, t]);

TBinF[t]:=BinF[1, 4, t]+1000*BinF[1, 3, t]-BinF[0, 4, t]-1000*BinF[0, 3, t];

TSortA2[t]:=BinF[1, 4, t]+1000*BinF[1, 3, t]-SortA2[0, 4, t]-1000*SortA2[0, 3, t];

sgTb1.Cells[3, t]:=FloatToStr(TBinF[t]);

sgTb2.Cells[2, t]:=FloatToStr(TSortA2[t]);

Chart1.SeriesList[2].AddXY(i, TBinF[t], '');

Chart2.SeriesList[1].AddXY(i, TSortA2[t], '');

i:=i+Step;

t:=t+1;

end;

if i>=Nmax then //Поиск при

begin //размере таблицы Nmax

i:=Nmax;

Fill;

DecodeTime(Time, SortA2[0, 1, t], SortA2[0, 2, t], SortA2[0, 3, t], SortA2[0, 4, t]);

SortA;

DecodeTime(Time, BinF[0, 1, t], BinF[0, 2, t], BinF[0, 3, t], BinF[0, 4, t]);

LinFind;

DecodeTime(Time, BinF[1, 1, t], BinF[1, 2, t], BinF[1, 3, t], BinF[1, 4, t]);

TBinF[t]:=BinF[1, 4, t]+1000*BinF[1, 3, t]-BinF[0, 4, t]-1000*BinF[0, 3, t];

TSortA2[t]:=BinF[1, 4, t]+1000*BinF[1, 3, t]-SortA2[0, 4, t]-1000*SortA2[0, 3, t];

sgTb1.Cells[3, t]:=FloatToStr(TBinF[t]);

sgTb2.Cells[2, t]:=FloatToStr(TSortA2[t]);

Chart1.SeriesList[2].AddXY(i, TBinF[t], '');

Chart2.SeriesList[1].AddXY(i, TSortA2[t], '');

end;

t:=1;

i:=Nmin;

While i<Nmax do //Линейный поиск

begin //с накоплением

Fill;

DecodeTime(Time, SortAB[0, 1, t], SortAB[0, 2, t], SortAB[0, 3, t], SortAB[0, 4, t]);

SortA;

SortB; //Сортировка вектора B

DecodeTime(Time, LinFAcc[0, 1, t], LinFAcc[0, 2, t], LinFAcc[0, 3, t], LinFAcc[0, 4, t]);

LinFindAcc;

DecodeTime(Time, LinFAcc[1, 1, t], LinFAcc[1, 2, t], LinFAcc[1, 3, t], LinFAcc[1, 4, t]);

TLinFAcc[t]:=LinFAcc[1, 4, t]+1000*LinFAcc[1, 3, t]-LinFAcc[0, 4, t]-1000*LinFAcc[0, 3, t];

TSortAB[t]:=LinFAcc[1, 4, t]+1000*LinFAcc[1, 3, t]-SortAB[0, 4, t]-1000*SortAB[0, 3, t];

sgTb1.Cells[4, t]:=FloatToStr(TLinFAcc[t]);

sgTb2.Cells[3, t]:=FloatToStr(TSortAB[t]);

Chart1.SeriesList[3].AddXY(i, TLinFAcc[t], '');

Chart2.SeriesList[2].AddXY(i, TSortAB[t], '');

i:=i+Step;

t:=t+1;

end;

if i>=Nmax then //Поиск при

begin //размере таблицы Nmax

i:=Nmax;

Fill;

DecodeTime(Time, SortAB[0, 1, t], SortAB[0, 2, t], SortAB[0, 3, t], SortAB[0, 4, t]);

SortA;

SortB;

DecodeTime(Time, LinFAcc[0, 1, t], LinFAcc[0, 2, t], LinFAcc[0, 3, t], LinFAcc[0, 4, t]);

LinFindAcc;

DecodeTime(Time, LinFAcc[1, 1, t], LinFAcc[1, 2, t], LinFAcc[1, 3, t], LinFAcc[1, 4, t]);

TLinFAcc[t]:=LinFAcc[1, 4, t]+1000*LinFAcc[1, 3, t]-LinFAcc[0, 4, t]-1000*LinFAcc[0, 3, t];

TSortAB[t]:=LinFAcc[1, 4, t]+1000*LinFAcc[1, 3, t]-SortAB[0, 4, t]-1000*SortAB[0, 3, t];

sgTb1.Cells[4, t]:=FloatToStr(TLinFAcc[t]);

sgTb2.Cells[3, t]:=FloatToStr(TSortAB[t]);

Chart1.SeriesList[3].AddXY(i, TLinFAcc[t], '');

Chart2.SeriesList[2].AddXY(i, TSortAB[t], '');

end;

sgTb1.RowCount:=t+1;

CloseFile(A);

Erase(A);

Finalize(B);

end;

procedure TForm1.rbValClick(Sender: TObject);

begin

edNmax.Visible:=false;

edStep.Visible:=false;

end;

procedure TForm1.rbIntClick(Sender: TObject);

begin

edNmax.Visible:=true;

edStep.Visible:=true;

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

Randomize;

sgTb1.Cells[0, 0]:='N';

sgTb1.Cells[1, 0]:='tЛП1';

sgTb1.Cells[2, 0]:='tЛП2';

sgTb1.Cells[3, 0]:='tДП';

sgTb1.Cells[4, 0]:='tЛП-М';

sgTb2.Cells[0, 0]:='N';

sgTb2.Cells[1, 0]:='tЛП2+tСA';

sgTb2.Cells[2, 0]:='tДП+tСA';

sgTb2.Cells[3, 0]:='tЛП-М+tС';

cbSel1.ItemIndex:=0;

cbSel2.ItemIndex:=0;

rbTog1.Checked:=true;

rbTog2.Checked:=true;

end;

procedure TForm1.cbSel2Change(Sender: TObject);

begin

Chart2.Series[0].Active:=false;

Chart2.Series[1].Active:=false;

Chart2.Series[2].Active:=false;

Chart2.Series[cbSel2.ItemIndex].Active:=true;

end;

procedure TForm1.cbSel1Change(Sender: TObject);

begin

Chart1.Series[1].Active:=false;

Chart1.Series[2].Active:=false;

Chart1.Series[3].Active:=false;

Chart1.Series[0].Active:=false;

Chart1.Series[cbSel1.ItemIndex].Active:=true;

end;

procedure TForm1.rbEve2Click(Sender: TObject);

begin

cbSel2.Enabled:=true;

Chart2.Series[0].Active:=false;

Chart2.Series[1].Active:=false;

Chart2.Series[2].Active:=false;

Chart2.Series[cbSel2.ItemIndex].Active:=true;

end;

procedure TForm1.rbTog2Click(Sender: TObject);

begin

cbSel2.Enabled:=false;

Chart2.Series[0].Active:=true;

Chart2.Series[1].Active:=true;

Chart2.Series[2].Active:=true;

end;

end.

-$A8 -$B- -$C+ -$D+ -$E- -$F- -$G+ -$H+ -$I+ -$J- -$K- -$L+ -$M- -$N+ -$O+ -$P+ -$Q- -$R- -$S- -$T- -$U- -$V+ -$W- -$X+ -$YD -$Z1 -cg -AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; -H+ -W+ -M -$M16384,1048576 -K$00400000 -LE"d:\program files\borland\delphi7\Projects\Bpl" -LN"d:\program files\borland\delphi7\Projects\Bpl" -w-UNSAFE_TYPE -w-UNSAFE_CODE -w-UNSAFE_CAST 
[FileVersion] Version=7.0 [Compiler] A=8 B=0 C=1 D=1 E=0 F=0 G=1 H=1 I=1 J=0 K=0 L=1 M=0 N=1 O=1 P=1 Q=0 R=0 S=0 T=0 U=0 V=1 W=0 X=1 Y=1 Z=1 ShowHints=1 ShowWarnings=1 UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; NamespacePrefix= SymbolDeprecated=1 SymbolLibrary=1 SymbolPlatform=1 UnitLibrary=1 UnitPlatform=1 UnitDeprecated=1 HResultCompat=1 HidingMember=1 HiddenVirtual=1 Garbage=1 BoundsError=1 ZeroNilCompat=1 StringConstTruncated=1 ForLoopVarVarPar=1 TypedConstVarPar=1 AsgToTypedConst=1 CaseLabelRange=1 ForVariable=1 ConstructingAbstract=1 ComparisonFalse=1 ComparisonTrue=1 ComparingSignedUnsigned=1 CombiningSignedUnsigned=1 UnsupportedConstruct=1 FileOpen=1 FileOpenUnitSrc=1 BadGlobalSymbol=1 DuplicateConstructorDestructor=1 InvalidDirective=1 PackageNoLink=1 PackageThreadVar=1 ImplicitImport=1 HPPEMITIgnored=1 NoRetVal=1 UseBeforeDef=1 ForLoopVarUndef=1 UnitNameMismatch=1 NoCFGFileFound=1 MessageDirective=1 ImplicitVariants=1 UnicodeToLocale=1 LocaleToUnicode=1 ImagebaseMultiple=1 SuspiciousTypecast=1 PrivatePropAccessor=1 UnsafeType=0 UnsafeCode=0 UnsafeCast=0 [Linker] MapFile=0 OutputObjs=0 ConsoleApp=1 DebugInfo=0 RemoteSymbols=0 MinStackSize=16384 MaxStackSize=1048576 ImageBase=4194304 ExeDescription= [Directories] OutputDir= UnitOutputDir= PackageDLLOutputDir= PackageDCPOutputDir= SearchPath= Packages= Conditionals= DebugSourceDirs= UsePackages=0 [Parameters] RunParams= HostApplication= Launcher= UseLauncher=0 DebugCWD= [Language] ActiveLang= ProjectLang= RootDir= [Version Info] IncludeVerInfo=0 AutoIncBuild=0 MajorVer=1 MinorVer=0 Release=0 Build=0 Debug=0 PreRelease=0 Special=0 Private=0 DLL=0 Locale=1049 CodePage=1251 [Version Info Keys] CompanyName= FileDescription= FileVersion=1.0.0.0 InternalName= LegalCopyright= LegalTrademarks= OriginalFilename= ProductName= ProductVersion=1.0.0.0 Comments= 
program Project;  uses   Forms,   MainForm in 'MainForm.pas' {Form1};  {$R *.res}  begin   Application.Initialize;   Application.CreateForm(TForm1, Form1);   Application.Run; end. 
#### ###��##��##################�### ###��##��##################(### ###@#####################################�##�###��#�###�#�#��##���#���###�##�###��#�###�#�#��##���##1###############�33331##########��3333##########33333###########������###########33331##DD#######����##FvvD######���1#Gggfv@#####���1#&vvggd######��1#wwgbvt######��1wwwr"gf@#####��1wwwr"vv@#####��3#wr""gf@#####��3#wr""&f@#####���#ww"w""@######��1�wr'""@######��1��w""$#######��1rwr"�########��3#'w"/�#######��3#"ww$�########��##""##�#######��1#####�#######��1#####��######��3####���p######�31###��##�3333;�31###��##�33333��3###���#��333���3####��#���������####������������####������������#####�###############�#�#���#���#���#���#���#���##�� #�##?�##?�###�###�###�###�###�###�##?�##?�##?�###����������#��~#��>###?###?###?�##?�##?�##?����####0###��##M#A#I#N#I#C#O#N###########################  ######�#####
##DELPHI.DIAGRAM.PORTFOLIO###�@##	#	Untitled1######
object Form1: TForm1   Left = -4   Top = -4   BorderIcons = [biSystemMenu, biMinimize]   BorderStyle = bsSingle   Caption = #1055#1086#1080#1089#1082   ClientHeight = 687   ClientWidth = 1024   Color = clBtnFace   Font.Charset = DEFAULT_CHARSET   Font.Color = clWindowText   Font.Height = -11   Font.Name = 'MS Sans Serif'   Font.Style = []   OldCreateOrder = False   Position = poDefault   Visible = True   WindowState = wsMaximized   OnCreate = FormCreate   PixelsPerInch = 96   TextHeight = 13   object Label1: TLabel     Left = 24     Top = 16     Width = 52     Height = 13     Caption = #1058#1072#1073#1083#1080#1094#1072' 1'   end   object Label2: TLabel     Left = 24     Top = 360     Width = 52     Height = 13     Caption = #1058#1072#1073#1083#1080#1094#1072' 2'   end   object Label4: TLabel     Left = 944     Top = 296     Width = 20     Height = 13     Caption = #1064#1072#1075   end   object Label5: TLabel     Left = 904     Top = 120     Width = 101     Height = 13     Caption = #1056#1072#1079#1084#1077#1088' '#1092#1072#1081#1083#1072' Nmin'   end   object Label6: TLabel     Left = 904     Top = 200     Width = 104     Height = 13     Caption = #1056#1072#1079#1084#1077#1088' '#1092#1072#1081#1083#1072' Nmax'   end   object Label7: TLabel     Left = 912     Top = 400     Width = 93     Height = 13     Caption = #1056#1072#1079#1084#1077#1088' '#1074#1077#1082#1090#1086#1088#1072' K'   end   object sgTb2: TStringGrid     Left = 16     Top = 384     Width = 345     Height = 305     ColCount = 4     DefaultColWidth = 67     FixedCols = 0     RowCount = 12     TabOrder = 0   end   object sgTb1: TStringGrid     Left = 16     Top = 32     Width = 345     Height = 305     DefaultColWidth = 66     FixedCols = 0     RowCount = 12     TabOrder = 1   end   object btFind: TButton     Left = 912     Top = 24     Width = 97     Height = 49     Hint = #1053#1072#1095#1072#1090#1100' '#1087#1086#1080#1089#1082     Caption = #1055#1086#1080#1089#1082     TabOrder = 2     OnClick = btFindClick   end   object btClose: TBitBtn     Left = 912     Top = 632     Width = 97     Height = 49     Hint = #1047#1072#1074#1077#1088#1096#1080#1090#1100     TabOrder = 3     Kind = bkClose   end   object cbSel1: TComboBox     Left = 672     Top = 32     Width = 225     Height = 21     Enabled = False     ItemHeight = 13     TabOrder = 4     Text = #1051#1080#1085#1077#1081#1085#1099#1081' '#1087#1086#1080#1089#1082' 1'     OnChange = cbSel1Change     Items.Strings = (       #1051#1080#1085#1077#1081#1085#1099#1081' '#1087#1086#1080#1089#1082' 1'       #1051#1080#1085#1077#1081#1085#1099#1081' '#1087#1086#1080#1089#1082' 2'       #1044#1074#1086#1080#1095#1085#1099#1081' '#1087#1086#1080#1089#1082       #1057' '#1085#1072#1082#1086#1087#1083#1077#1085#1080#1077#1084)   end   object edNmin: TEdit     Left = 920     Top = 144     Width = 73     Height = 21     TabOrder = 5   end   object edNmax: TEdit     Left = 920     Top = 224     Width = 73     Height = 21     TabOrder = 6   end   object edLen: TEdit     Left = 920     Top = 424     Width = 73     Height = 21     TabOrder = 7   end   object Chart1: TChart     Left = 384     Top = 64     Width = 513     Height = 273     BackWall.Brush.Color = clWhite     BackWall.Brush.Style = bsClear     MarginRight = 2     Title.Color = 14737632     Title.Font.Charset = DEFAULT_CHARSET     Title.Font.Color = clGreen     Title.Font.Height = -12     Title.Font.Name = 'Arial'     Title.Font.Style = []     Title.Frame.Style = psDashDot     Title.Text.Strings = (                #1043#1088#1072#1092#1080#1082#1080' '#1079#1072#1074#1080#1089#1080#1084#1086#1089#1090#1080' '#1074#1088#1077#1084#1077#1085#1080' '#1086#1090' '#1088#1072#1079#1084#1077#1088#1072' '#1090#1072#1073#1083#1080#1094#1099' '#1087#1088#1080' '#1088#1072#1079#1083#1080#1095#1085#1099#1093' '#1074#1080#1076 +         #1072#1093' '#1087#1086#1080#1089#1082#1072)     Legend.Alignment = laBottom     Legend.ColorWidth = 20     Legend.ShadowSize = 0     Legend.TopPos = 8     View3D = False     BorderStyle = bsSingle     TabOrder = 8     object Series1: TLineSeries       Marks.ArrowLength = 8       Marks.Visible = False       SeriesColor = clRed       Title = #1055#1077#1088#1074#1099#1081' '#1083#1080#1085#1077#1081#1085#1099#1081' '#1087#1086#1080#1089#1082       Dark3D = False       LinePen.Width = 3       Pointer.Dark3D = False       Pointer.Draw3D = False       Pointer.InflateMargins = True       Pointer.Style = psRectangle       Pointer.Visible = False       XValues.DateTime = False       XValues.Name = 'X'       XValues.Multiplier = 1.000000000000000000       XValues.Order = loAscending       YValues.DateTime = False       YValues.Name = 'Y'       YValues.Multiplier = 1.000000000000000000       YValues.Order = loNone     end     object Series2: TLineSeries       Marks.ArrowLength = 8       Marks.Visible = False       SeriesColor = clGreen       Title = #1042#1090#1086#1088#1086#1081' '#1083#1080#1085#1077#1081#1085#1099#1081' '#1087#1086#1080#1089#1082       LinePen.Width = 3       Pointer.InflateMargins = True       Pointer.Style = psRectangle       Pointer.Visible = False       XValues.DateTime = False       XValues.Name = 'X'       XValues.Multiplier = 1.000000000000000000       XValues.Order = loAscending       YValues.DateTime = False       YValues.Name = 'Y'       YValues.Multiplier = 1.000000000000000000       YValues.Order = loNone     end     object Series3: TLineSeries       Marks.ArrowLength = 8       Marks.Visible = False       SeriesColor = clYellow       Title = #1044#1074#1086#1080#1095#1085#1099#1081' '#1087#1086#1080#1089#1082       LinePen.Width = 3       Pointer.InflateMargins = True       Pointer.Style = psRectangle       Pointer.Visible = False       XValues.DateTime = False       XValues.Name = 'X'       XValues.Multiplier = 1.000000000000000000       XValues.Order = loAscending       YValues.DateTime = False       YValues.Name = 'Y'       YValues.Multiplier = 1.000000000000000000       YValues.Order = loNone     end     object Series4: TLineSeries       Marks.ArrowLength = 8       Marks.Visible = False       SeriesColor = clBlue       Title = #1055#1086#1080#1089#1082' '#1089' '#1085#1072#1082#1086#1087#1083#1077#1085#1080#1077#1084       LinePen.Width = 3       Pointer.InflateMargins = True       Pointer.Style = psRectangle       Pointer.Visible = False       XValues.DateTime = False       XValues.Name = 'X'       XValues.Multiplier = 1.000000000000000000       XValues.Order = loAscending       YValues.DateTime = False       YValues.Name = 'Y'       YValues.Multiplier = 1.000000000000000000       YValues.Order = loNone     end   end   object edStep: TEdit     Left = 920     Top = 320     Width = 73     Height = 21     TabOrder = 9   end   object Chart2: TChart     Left = 384     Top = 416     Width = 513     Height = 273     BackWall.Brush.Color = clWhite     BackWall.Brush.Style = bsClear     Title.Font.Charset = DEFAULT_CHARSET     Title.Font.Color = clGreen     Title.Font.Height = -12     Title.Font.Name = 'Arial'     Title.Font.Style = []     Title.Text.Strings = (                #1047#1072#1074#1080#1089#1080#1084#1086#1089#1090#1100' '#1074#1088#1077#1084#1077#1085#1080' '#1086#1090' '#1088#1072#1079#1084#1077#1088#1072' '#1090#1072#1073#1083#1080#1094#1099' '#1087#1088#1080' '#1088#1072#1079#1083#1080#1095#1085#1099#1093' '#1074#1080#1076#1072#1093' '#1087#1086#1080#1089#1082 +         #1072' '#1087#1088#1080' '#1089#1086#1088#1090#1080#1088#1086#1074#1082#1077)     Legend.Alignment = laBottom     Legend.ColorWidth = 10     Legend.ShadowSize = 0     Legend.TopPos = 9     View3D = False     BorderStyle = bsSingle     TabOrder = 10     object Series5: TLineSeries       Marks.ArrowLength = 8       Marks.Visible = False       SeriesColor = clRed       Title = #1042#1090#1086#1088#1086#1081' '#1083#1080#1085#1077#1081#1085#1099#1081' '#1087#1086#1080#1089#1082' + '#1089#1086#1088#1090#1080#1088#1086#1074#1082#1072' '#1040       LinePen.Width = 3       Pointer.InflateMargins = True       Pointer.Style = psRectangle       Pointer.Visible = False       XValues.DateTime = False       XValues.Name = 'X'       XValues.Multiplier = 1.000000000000000000       XValues.Order = loAscending       YValues.DateTime = False       YValues.Name = 'Y'       YValues.Multiplier = 1.000000000000000000       YValues.Order = loNone     end     object Series6: TLineSeries       Marks.ArrowLength = 8       Marks.Visible = False       SeriesColor = clGreen       Title = #1044#1074#1086#1080#1095#1085#1099#1081' '#1087#1086#1080#1089#1082' + '#1089#1086#1088#1090#1080#1088#1086#1074#1082#1072' '#1040       LinePen.Width = 3       Pointer.InflateMargins = True       Pointer.Style = psRectangle       Pointer.Visible = False       XValues.DateTime = False       XValues.Name = 'X'       XValues.Multiplier = 1.000000000000000000       XValues.Order = loAscending       YValues.DateTime = False       YValues.Name = 'Y'       YValues.Multiplier = 1.000000000000000000       YValues.Order = loNone     end     object Series7: TLineSeries       Marks.ArrowLength = 8       Marks.Visible = False       SeriesColor = clYellow       Title = #1055#1086#1080#1089#1082' '#1089' '#1085#1072#1082#1086#1087#1083#1077#1085#1080#1077#1084' + '#1089#1086#1088#1090#1080#1088#1086#1074#1082#1072' '#1040' +  '#1089#1086#1088#1090#1080#1088#1086#1074#1082#1072' '#1042       LinePen.Width = 3       Pointer.InflateMargins = True       Pointer.Style = psRectangle       Pointer.Visible = False       XValues.DateTime = False       XValues.Name = 'X'       XValues.Multiplier = 1.000000000000000000       XValues.Order = loAscending       YValues.DateTime = False       YValues.Name = 'Y'       YValues.Multiplier = 1.000000000000000000       YValues.Order = loNone     end   end   object cbSel2: TComboBox     Left = 672     Top = 384     Width = 225     Height = 21     ItemHeight = 13     TabOrder = 11     Text = #1051#1080#1085#1077#1081#1085#1099#1081' '#1087#1086#1080#1089#1082' 2 + '#1089#1086#1088#1090#1080#1088#1086#1074#1082#1072' '#1040     OnChange = cbSel2Change     Items.Strings = (       #1051#1080#1085#1077#1081#1085#1099#1081' '#1087#1086#1080#1089#1082' 2 + '#1089#1086#1088#1090#1080#1088#1086#1074#1082#1072' '#1040       #1044#1074#1086#1080#1095#1085#1099#1081' '#1087#1086#1080#1089#1082' + '#1089#1086#1088#1090#1080#1088#1086#1074#1082#1072' '#1040       #1057' '#1085#1072#1082#1086#1087#1083#1077#1085#1080#1077#1084' + '#1089#1086#1088#1090#1080#1088#1086#1074#1082#1072' '#1040' '#1080' '#1042)   end   object Panel1: TPanel     Left = 384     Top = 32     Width = 273     Height = 25     BorderStyle = bsSingle     TabOrder = 12     object rbEve1: TRadioButton       Left = 24       Top = 4       Width = 105       Height = 13       Caption = #1055#1086' '#1086#1090#1076#1077#1083#1100#1085#1086#1089#1090#1080       TabOrder = 0       OnClick = rbEve1Click     end     object rbTog1: TRadioButton       Left = 163       Top = 4       Width = 65       Height = 13       Caption = #1042#1084#1077#1089#1090#1077       TabOrder = 1       OnClick = rbTog1Click     end   end   object Panel2: TPanel     Left = 384     Top = 384     Width = 273     Height = 25     BorderStyle = bsSingle     TabOrder = 13     object rbEve2: TRadioButton       Left = 24       Top = 4       Width = 121       Height = 13       Caption = #1055#1086' '#1086#1090#1076#1077#1083#1100#1085#1086#1089#1090#1080       TabOrder = 0       OnClick = rbEve2Click     end     object rbTog2: TRadioButton       Left = 163       Top = 4       Width = 81       Height = 13       Caption = #1042#1084#1077#1089#1090#1077       TabOrder = 1       OnClick = rbTog2Click     end   end end 
unit MainForm;  interface  uses   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,   Dialogs, StdCtrls, ExtCtrls, TeeProcs, TeEngine, Chart, Buttons, Grids,   Series;  type   TForm1 = class(TForm)     sgTb2: TStringGrid;     sgTb1: TStringGrid;     Label1: TLabel;     Label2: TLabel;     btFind: TButton;     btClose: TBitBtn;     rbTog1: TRadioButton;     rbEve1: TRadioButton;     cbSel1: TComboBox;     edNmin: TEdit;     edNmax: TEdit;     edLen: TEdit;     Label4: TLabel;     Chart1: TChart;     Series1: TLineSeries;     Series2: TLineSeries;     Series3: TLineSeries;     Series4: TLineSeries;     edStep: TEdit;     Label5: TLabel;     Label6: TLabel;     Label7: TLabel;     Chart2: TChart;     rbTog2: TRadioButton;     rbEve2: TRadioButton;     cbSel2: TComboBox;     Series5: TLineSeries;     Series6: TLineSeries;     Series7: TLineSeries;     Panel1: TPanel;     Panel2: TPanel;     procedure rbEve1Click(Sender: TObject);     procedure rbTog1Click(Sender: TObject);     procedure btFindClick(Sender: TObject);     procedure LinFind;     procedure BinFind;     procedure LinFindAcc;     procedure SortA;     procedure SortB;     procedure Verify;     procedure rbValClick(Sender: TObject);     procedure rbIntClick(Sender: TObject);     procedure Fill;      procedure FormCreate(Sender: TObject);     procedure cbSel1Change(Sender: TObject);     procedure rbTog2Click(Sender: TObject);     procedure rbEve2Click(Sender: TObject);     procedure cbSel2Change(Sender: TObject);   private     { Private declarations }   public     { Public declarations }   end;  var   Form1: TForm1;   Tim : array [1..6,  1..3] of TDateTime;   A : file of Word;   B, arA : array of Word;   Nmin, Nmax, Step, K, t, i, m, rnd, Fval : Word;   SortA1, SortA2, SortAB, LinF1, LinF2, BinF, LinFAcc: array [0..1, 1..4, 1..65535] of Word;   TSortA1, TSortA2, TSortAB, TLinF1, TLinF2, TBinF, TLinFAcc: array [1..65535] of Word;   Acc : array [1..3, 1..65535] of Word; implementation  {$R *.dfm}  procedure TForm1.Fill; var   r : Integer; begin   Rewrite(A);   for r:=1 to i do                     //���������� �����   begin                                //���������� ���������     Fval:=Random(64000);     Write(A, Fval);   end; end;  procedure TForm1.LinFind;               //�������� ����� var   s1, s2 : Word; begin   for s1:=0 to K-1 do     for s2:=0 to i-1 do       begin         Seek(A, s2);         Read(A, Fval);         if (B[s1]=Fval) then Exit;       end; end;  procedure TForm1.BinFind;                //�������� ����� var   s1, cou, cou1, cou2 : integer; label   1; begin    for s1:=0 to K-1 do   begin     cou1:=0;     cou2:=i-1;     While cou1<=cou2 do     begin       cou:=(cou2+cou1) div 2;       Seek(A, cou);       Read(A, Fval);       if (Fval=B[s1]) then goto 1         else if Fval<B[s1] then cou1:=cou+1           else cou2:=cou-1; end; 1 :   end; end;  procedure TForm1.LinFindAcc;             //�������� ����� � ����������� var   s1, s2, cou : Word; begin   cou:=1;   for s1:=0 to K-1 do     for s2:=0 to i-1 do       begin         Seek(A, s2);         Read(A, Fval);         if (B[s1]=Fval) then         begin           Acc[1, cou]:=s2;           Acc[2, cou]:=s1;           Acc[3, cou]:=Fval;           cou:=cou+1;         end;       end; end;  procedure TForm1.SortA; var   r, d : integer;   tmp, val : Word; begin   SetLength(arA, i);   for r:=0 to i-1 do   begin     Seek(A, r);     Read(A, val);     arA[r]:=val;   end;    for r:=0 to i-2 do     for d:=r+1 to i-1 do     begin       if (arA[r]>arA[d]) then       begin         tmp:=arA[r];         arA[r]:=arA[d];         arA[d]:=tmp;       end;     end;    Rewrite(A);   for r:=0 to i-1 do Write(A, arA[r]);   end;  procedure TForm1.SortB; var   r, d : integer;   tmp : Word; begin   for r:=0 to K-2 do     for d:=r+1 to K-1 do     begin       if (B[r]>B[d]) then       begin         tmp:=B[r];         B[r]:=B[d];         B[d]:=tmp;       end;     end; end;  procedure TForm1.Verify;                      //�������� begin   if (edNmin.Text='') or (edNmax.Text='') or (edStep.Text='') or (edLen.Text='') then   begin     ShowMessage('������� ������� ���� ����������!');     Abort;   end;    try     Nmin:=StrToInt(edNmin.Text);     Nmax:=StrToInt(edNmax.Text);     Step:=StrToInt(edStep.Text);     K:=StrToInt(edLen.Text);   except     ShowMessage('��������� ��������� ������� �������!');     Abort;   end;    if (StrToInt(edNmin.Text)>65534) or (StrToInt(edNmin.Text)>65535) then   begin     ShowMessage('������� �� ����� ��������� 2-� ������!');     Abort;   end;    if (StrToInt(edNmin.Text)>=StrToInt(edNmax.Text)) then   begin     ShowMessage('������������ �������� ������� ������ ���� ������ ������������!');     Abort;   end; end;  procedure TForm1.rbEve1Click(Sender: TObject); begin cbSel1.Enabled:=true; Chart1.Series[1].Active:=false; Chart1.Series[2].Active:=false; Chart1.Series[3].Active:=false; Chart1.Series[0].Active:=false; Chart1.Series[cbSel1.ItemIndex].Active:=true; end;  procedure TForm1.rbTog1Click(Sender: TObject); begin cbSel1.Enabled:=false; Chart1.Series[1].Active:=true; Chart1.Series[2].Active:=true; Chart1.Series[3].Active:=true; Chart1.Series[0].Active:=true; end;  procedure TForm1.btFindClick(Sender: TObject); begin   Verify;   //Chart1.SeriesList.Clear;   AssignFile(A, 'file.bin');   Rewrite(A);   sgTb1.ColCount:=5;   sgTb1.RowCount:=Nmax-Nmin;   SetLength(B, K);                            //������ ������� B    for t:=0 to K-1 do                         //���������� �������   begin                                      //���������� ���������     rnd:=Random(64000);     B[t]:=rnd;   end;    t:=1;   i:=Nmin;   While i<Nmax do                           //������ �������� �����   begin     Fill;                                    //���������� �����     DecodeTime(Time, LinF1[0, 1, t], LinF1[0, 2, t], LinF1[0, 3, t], LinF1[0, 4, t]);     LinFind;     DecodeTime(Time, LinF1[1, 1, t], LinF1[1, 2, t], LinF1[1, 3, t], LinF1[1, 4, t]);     TLinF1[t]:=Linf1[1, 4, t]+1000*LinF1[1, 3, t]-Linf1[0, 4, t]-1000*LinF1[0, 3, t];     sgTb1.Cells[0, t]:=FloatToStr(i);     sgTb1.Cells[1, t]:=FloatToStr(TLinF1[t]);     Chart1.SeriesList[0].AddXY(i, TLinF1[t], '');     i:=i+Step;     t:=t+1;   end;   if i>=Nmax then                                //����� ���   begin                                         //������� ������� Nmax     i:=Nmax;     Fill;     DecodeTime(Time, LinF1[0, 1, t], LinF1[0, 2, t], LinF1[0, 3, t], LinF1[0, 4, t]);     LinFind;     DecodeTime(Time, LinF1[1, 1, t], LinF1[1, 2, t], LinF1[1, 3, t], LinF1[1, 4, t]);     TLinF1[t]:=Linf1[1, 4, t]+1000*LinF1[1, 3, t]-Linf1[0, 4, t]-1000*LinF1[0, 3, t];     sgTb1.Cells[0, t]:=FloatToStr(i);     sgTb1.Cells[1, t]:=FloatToStr(TLinF1[t]);     Chart1.SeriesList[0].AddXY(i, TLinF1[t], '');   end;                                                 t:=1;     i:=Nmin;     While i<Nmax do                           //������ �������� �����   begin                                            Fill;     DecodeTime(Time, SortA1[0, 1, t], SortA1[0, 2, t], SortA1[0, 3, t], SortA1[0, 4, t]);     SortA;                                    //���������� ����� A     DecodeTime(Time, LinF2[0, 1, t], LinF2[0, 2, t], LinF2[0, 3, t], LinF2[0, 4, t]);     LinFind;     DecodeTime(Time, LinF2[1, 1, t], LinF2[1, 2, t], LinF2[1, 3, t], LinF2[1, 4, t]);     TLinF2[t]:=Linf2[1, 4, t]+1000*LinF2[1, 3, t]-Linf2[0, 4, t]-1000*LinF2[0, 3, t];     TSortA1[t]:=Linf2[1, 4, t]+1000*LinF2[1, 3, t]-SortA1[0, 4, t]-1000*SortA1[0, 3, t];     sgTb1.Cells[2, t]:=FloatToStr(TLinF2[t]);     sgTb2.Cells[0, t]:=FloatToStr(i);     sgTb2.Cells[1, t]:=FloatToStr(TSortA1[t]);     Chart1.SeriesList[1].AddXY(i, TLinF2[t], '');     Chart2.SeriesList[1].AddXY(i, TSortA1[t], '');     i:=i+Step;     t:=t+1;   end;   if i>=Nmax then                                //����� ���   begin                                         //������� ������� Nmax     i:=Nmax;     Fill;     DecodeTime(Time, SortA1[0, 1, t], SortA1[0, 2, t], SortA1[0, 3, t], SortA1[0, 4, t]);     SortA;     DecodeTime(Time, LinF2[0, 1, t], LinF2[0, 2, t], LinF2[0, 3, t], LinF2[0, 4, t]);     LinFind;     DecodeTime(Time, LinF2[1, 1, t], LinF2[1, 2, t], LinF2[1, 3, t], LinF2[1, 4, t]);     TLinF2[t]:=Linf2[1, 4, t]+1000*LinF2[1, 3, t]-Linf2[0, 4, t]-1000*LinF2[0, 3, t];     TSortA1[t]:=Linf2[1, 4, t]+1000*LinF2[1, 3, t]-SortA1[0, 4, t]-1000*SortA1[0, 3, t];     sgTb2.Cells[0, t]:=FloatToStr(i);     sgTb1.Cells[2, t]:=FloatToStr(TLinF2[t]);     sgTb2.Cells[1, t]:=FloatToStr(TSortA1[t]);     Chart1.SeriesList[1].AddXY(i, TLinF2[t], '');   end;       t:=1;     i:=Nmin;     While i<Nmax do                           //�������� �����   begin     Fill;     DecodeTime(Time, SortA2[0, 1, t], SortA2[0, 2, t], SortA2[0, 3, t], SortA2[0, 4, t]);     SortA;     DecodeTime(Time, BinF[0, 1, t], BinF[0, 2, t], BinF[0, 3, t], BinF[0, 4, t]);     BinFind;     DecodeTime(Time, BinF[1, 1, t], BinF[1, 2, t], BinF[1, 3, t], BinF[1, 4, t]);     TBinF[t]:=BinF[1, 4, t]+1000*BinF[1, 3, t]-BinF[0, 4, t]-1000*BinF[0, 3, t];     TSortA2[t]:=BinF[1, 4, t]+1000*BinF[1, 3, t]-SortA2[0, 4, t]-1000*SortA2[0, 3, t];     sgTb1.Cells[3, t]:=FloatToStr(TBinF[t]);     sgTb2.Cells[2, t]:=FloatToStr(TSortA2[t]);     Chart1.SeriesList[2].AddXY(i, TBinF[t], '');     i:=i+Step;     t:=t+1;   end;   if i>=Nmax then                                //����� ���   begin                                         //������� ������� Nmax     i:=Nmax;     Fill;     DecodeTime(Time, SortA2[0, 1, t], SortA2[0, 2, t], SortA2[0, 3, t], SortA2[0, 4, t]);     SortA;     DecodeTime(Time, BinF[0, 1, t], BinF[0, 2, t], BinF[0, 3, t], BinF[0, 4, t]);     LinFind;     DecodeTime(Time, BinF[1, 1, t], BinF[1, 2, t], BinF[1, 3, t], BinF[1, 4, t]);     TBinF[t]:=BinF[1, 4, t]+1000*BinF[1, 3, t]-BinF[0, 4, t]-1000*BinF[0, 3, t];     TSortA2[t]:=BinF[1, 4, t]+1000*BinF[1, 3, t]-SortA2[0, 4, t]-1000*SortA2[0, 3, t];     sgTb1.Cells[3, t]:=FloatToStr(TBinF[t]);     sgTb2.Cells[2, t]:=FloatToStr(TSortA2[t]);     Chart1.SeriesList[2].AddXY(i, TBinF[t], '');   end;       t:=1;     i:=Nmin;     While i<Nmax do                           //�������� �����   begin                                        //� �����������     Fill;     DecodeTime(Time, SortAB[0, 1, t], SortAB[0, 2, t], SortAB[0, 3, t], SortAB[0, 4, t]);     SortA;     SortB;                                    //���������� ������� B     DecodeTime(Time, LinFAcc[0, 1, t], LinFAcc[0, 2, t], LinFAcc[0, 3, t], LinFAcc[0, 4, t]);     LinFindAcc;     DecodeTime(Time, LinFAcc[1, 1, t], LinFAcc[1, 2, t], LinFAcc[1, 3, t], LinFAcc[1, 4, t]);     TLinFAcc[t]:=LinFAcc[1, 4, t]+1000*LinFAcc[1, 3, t]-LinFAcc[0, 4, t]-1000*LinFAcc[0, 3, t];     TSortAB[t]:=LinFAcc[1, 4, t]+1000*LinFAcc[1, 3, t]-SortAB[0, 4, t]-1000*SortAB[0, 3, t];     sgTb1.Cells[4, t]:=FloatToStr(TLinFAcc[t]);     sgTb2.Cells[3, t]:=FloatToStr(TSortAB[t]);     Chart1.SeriesList[3].AddXY(i, TLinFAcc[t], '');     i:=i+Step;     t:=t+1;   end;   if i>=Nmax then                                //����� ���   begin                                         //������� ������� Nmax     i:=Nmax;     Fill;     DecodeTime(Time, SortAB[0, 1, t], SortAB[0, 2, t], SortAB[0, 3, t], SortAB[0, 4, t]);     SortA;     SortB;     DecodeTime(Time, LinFAcc[0, 1, t], LinFAcc[0, 2, t], LinFAcc[0, 3, t], LinFAcc[0, 4, t]);     LinFindAcc;     DecodeTime(Time, LinFAcc[1, 1, t], LinFAcc[1, 2, t], LinFAcc[1, 3, t], LinFAcc[1, 4, t]);     TLinFAcc[t]:=LinFAcc[1, 4, t]+1000*LinFAcc[1, 3, t]-LinFAcc[0, 4, t]-1000*LinFAcc[0, 3, t];     TSortAB[t]:=LinFAcc[1, 4, t]+1000*LinFAcc[1, 3, t]-SortAB[0, 4, t]-1000*SortAB[0, 3, t];     sgTb1.Cells[4, t]:=FloatToStr(TLinFAcc[t]);     sgTb2.Cells[3, t]:=FloatToStr(TSortAB[t]);     Chart1.SeriesList[3].AddXY(i, TLinFAcc[t], '');   end;    sgTb1.RowCount:=t+1;    CloseFile(A);   Erase(A);   Finalize(B); end;  procedure TForm1.rbValClick(Sender: TObject); begin edNmax.Visible:=false; edStep.Visible:=false; end;  procedure TForm1.rbIntClick(Sender: TObject); begin edNmax.Visible:=true; edStep.Visible:=true; end;  procedure TForm1.FormCreate(Sender: TObject); begin   Randomize;   sgTb1.Cells[0, 0]:='N';   sgTb1.Cells[1, 0]:='t��1';   sgTb1.Cells[2, 0]:='t��2';   sgTb1.Cells[3, 0]:='t��';   sgTb1.Cells[4, 0]:='t��-�';    sgTb2.Cells[0, 0]:='N';   sgTb2.Cells[1, 0]:='t��2+t�A';   sgTb2.Cells[2, 0]:='t��+t�A';   sgTb2.Cells[3, 0]:='t��-�+t�';    cbSel1.ItemIndex:=0;   cbSel2.ItemIndex:=0;    rbTog1.Checked:=true;   ��rbTog2.Checked:=true; end;  procedure TForm1.cbSel2Change(Sender: TObject); begin Chart2.Series[0].Active:=false; Chart2.Series[1].Active:=false; Chart2.Series[2].Active:=false; Chart2.Series[cbSel2.ItemIndex].Active:=true; end;  procedure TForm1.cbSel1Change(Sender: TObject); begin Chart1.Series[1].Active:=false; Chart1.Series[2].Active:=false; Chart1.Series[3].Active:=false; Chart1.Series[0].Active:=false; Chart1.Series[cbSel1.ItemIndex].Active:=true; end;  procedure TForm1.rbEve2Click(Sender: TObject); begin cbSel2.Enabled:=true; Chart2.Series[0].Active:=false; Chart2.Series[1].Active:=false; Chart2.Series[2].Active:=false; Chart2.Series[cbSel2.ItemIndex].Active:=true; end;  procedure TForm1.rbTog2Click(Sender: TObject); begin cbSel2.Enabled:=false; Chart2.Series[0].Active:=true; Chart2.Series[1].Active:=true; Chart2.Series[2].Active:=true; end;  end. 
�###/M##Ԓ�2�^�##�#<p MainForm.pas���2#r MainForm.dfmВ�2#d#Series�C��####f#TLineSeries�K�1g .TLineSeries��;#cd#Grids�C��####f#TStringGrid�D##g .TStringGrid�҉�g#TCustomGrid.SetColCount&#B5g#TCustomGrid.SetRowCount2#B5g#TStringGrid.SetCells�##+cd#Buttons�C��####f#TBitBtn##g#g#.TBitBtn#��#cd#Chart�C��####f#TChart�xOhg#.TChartn#�Jcd#TeEngine�C��####g#TCustomAxisPanel.GetSeries�^|Ag#TChartSeriesList.GetSeries���cd#TeeProcs�C��####cd#ExtCtrls�C��####f#TPanel �##g#.TPanel�#y�cd#StdCtrls�C��####f#TLabel-�r�f#TButton7��ef TRadioButtone[��f	TComboBox� �f#TEdit5$P�g#.TLabel##�g#.TButton#x;Hg .TRadioButtonL�#�g .TComboBoxȮR�g#.TEdit#���cd#Dialogs�C��####g#ShowMessage��ʨcd#Forms�C��####f#TForm#�Ig#.TForm�u$,g#TCustomForm.AlignControlsmga�g#TCustomForm.CreateParamspga�g#TCustomForm.CreateWindowHandleqga�g#TCustomForm.CreateWndrga�g#TCustomForm.DefinePropertiestga�g#TCustomForm.DestroyWindowHandleuga�g#TCustomForm.DoCreatewga�g#TCustomForm.DoDestroyxga�g#TCustomForm.GetClientRect{ga�g#TCustomForm.GetFloating}ga�g#TCustomForm.Loadedga�g#TCustomForm.Notification�ga�g#TCustomForm.PaintWindow�ga�g#TCustomForm.QueryInterface�ga�g#TCustomForm.ReadState�ga�g#TCustomForm.SetParentBiDiMode�ga�g#TCustomForm.SetParent�ga�g#TCustomForm.UpdateActions�ga�g#TCustomForm.ValidateRename�ga�g#TCustomForm.WndProc�ga�g#TCustomForm.Resizing�ga�g#TCustomForm.Create�ga�g#TCustomForm.CreateNew�ga�g#TCustomForm.Destroy�ga�g#TCustomForm.AfterConstruction�ga�g#TCustomForm.BeforeDestruction�ga�g#TCustomForm.CloseQuery�ga�g#TCustomForm.DefaultHandler�ga�g#TCustomForm.SetFocus�ga�g#TCustomForm.SetFocusedControl�ga�g#TCustomForm.ShowModal�ga�g#TCustomForm.WantChildKey�ga�g%TScrollingWinControl.AdjustClientRect�(##g&TScrollingWinControl.AutoScrollEnabled�(##g%TScrollingWinControl.AutoScrollInView�(##cd#Controls�C��####g#TWinControl.AssignTo��.�g#TWinControl.CanAutoSize��.�g#TWinControl.CanResize��.�g#TWinControl.ConstrainedResize��.�g#TWinControl.CreateHandle��.�g#TWinControl.CustomAlignInsertBefore��.�g#TWinControl.CustomAlignPosition��.�g#TWinControl.DestroyWnd��.�g#TWinControl.GetClientOrigin��.�g#TWinControl.GetControlExtents��.�g#TWinControl.GetDeviceContext��.�g#TWinControl.SetParentBackground��.�g#TWinControl.ShowControl��.�g#TWinControl.Invalidate#�.�g#TWinControl.Repaint#�.�g#TWinControl.SetBounds#�.�g#TWinControl.Update �.�g#TControl.GetAction6�`)g#TControl.GetDragImages<�`)g#TControl.GetEnabled=�`)g!TControl.GetFloatingDockSiteClass?�`)g#TControl.SetAutoSizeN�`)g#TControl.SetDragModeO�`)g#TControl.SetEnabledP�`)g#TControl.SetNameQ�`)g#TControl.SetBiDiModeU�`)g#TControl.InitiateAction��`)g#TControl.GetTextʅ`)g#TControl.SetVisible�`)cd#Graphics�C��####cd#Classes�C��####g#TComponent.UpdateRegistry����g#TComponent.WriteState����g#TComponent.SafeCallException����g#TPersistent.Assign�N#`cd#Variants�C��####cd#SysUtils�C��####g#AbortE�a�g#StrToInt�#�#g DecodeTimeXj�0g#Time_T��g FloatToStr��)�cd#Messages�C��####cd#Windows�C��####cd#SysInit�C��####cd#System�C��####f#TObject���_g#TObject.Dispatch�G��g#TObject.NewInstance�G��g#TObject.FreeInstance�G��f	TDateTimep�ٿf#Word��{�f#Integer��� g#Rewrite####g#@RewritFileg �#g#Random####g#@RandIntE�a�g#Write####g	@WriteRec#H9�g#@_IOTestE�a�g#Seek####g#@SeekGs#�g#Read####g#@ReadRec�ў#g#Exit####g	SetLength####g#@DynArraySetLengthE�a�f#String��f AnsiString��g#@HandleAnyExceptionE�a�g#@DoneExceptE�a�g @LStrArrayClrzY��g#@HandleFinallyE�a�g#True����g#False����g AssignFile####g#@Assign�jtg	CloseFile####g#@CloseR#�Dg#Erase####g#@Erase�v#�g#Finalize####g	@Finalize�9#�g#@LStrClrѨ}�g	RandomizeE�a�g#@DynArrayClearxB)�c4#MainForm�iif@#c4#Windows#�c4#Messages#�c4#SysUtils#�c4#Variants#�c4#Classes#�c4#Graphics#�c4#Controls#�c4#Forms#Jc4#Dialogs#Fc4#StdCtrls#0c4#ExtCtrls#*c4#TeeProcs#(c4#TeEngine#"c4#Chart##c4#Buttons##c4#Grids# c4#Series##c&#.TForm1��UIC$#*#TForm1����`& #Form1��-�`&## #Tim�	��#(## #A�A���*## #B�u)#�,## #arA�u)#�,##*#.2�h�##, #Nmin� ��#!# #Nmax� ��#!# #Step� ��#!# #K� ��#!# #t� ��#!# #i� ��#!# #m� ��#!# #rnd� ��#!# #Fval� ��#!# #SortA1撀�#.%# #SortA2撀�#.%# #SortAB撀�#.%# #LinF1撀�#.%# #LinF2撀�#.%# #BinF撀�#.%# #LinFAcc撀�#.%# #TSortA1�b@��0)# #TSortA2�b@��0)# #TSortAB�b@��0)# #TLinF1�b@��0)# #TLinF2�b@��0)# #TBinF�b@��0)# #TLinFAcc�b@��0)# #Acc#�2-# #.3f4#(#TForm1.Fill��Ą#�#6!#Self#&# #r###c(#TForm1.LinFind��Ą#�#6!#Self#&# #s1##  #s2###c(#TForm1.BinFind��Ą####6!#Self#&# #s1##  #cou### #cou1### #cou2## +#1`c(#TForm1.LinFindAcc��Ą#�##6!#Self#&# #s1##  #s2### #cou## c( TForm1.SortA��Ą# ##6!#Self#&# #r### #d### #tmpf## #valf##c( TForm1.SortB��Ą#�#6!#Self#&# #r### #d### #tmp###c( TForm1.Verify��Ą#q##6!#Selff&�c(#TForm1.rbEve1Click��Ą#5##6!#Self#&#!#Sender###c(#TForm1.rbTog1Click��Ą#�#6!#Self#&#!#Sender###c(#TForm1.btFindClick��Ą#�N#6!#Self#&#!#Senderf#�c(#TForm1.rbValClick��Ą#>#6!#Self#&#!#Sender###c(#TForm1.rbIntClick��Ą#>#6!#Self#&#!#Sender###c(#TForm1.FormCreate���Ą#Q##6!#Self#&#!#Sender###c(#TForm1.cbSel2Change�#�Ą#�#6!#Self#&#!#Sender###c(#TForm1.cbSel1Change���Ą####6!#Self#&#!#Sender###c(#TForm1.rbEve2Click�#�Ą#�#6!#Self#&#!#Sender###c(#TForm1.rbTog2Click�#�Ą#�#6!#Self#&#!#Sender###c( Finalization�E�a�#�! 6c�#(#MainForm�######!#6c��G###&�#FB#�###� �#z���&#,#sgTb2##�#,#sgTb1##�#,#Label1# # ,#Label2# # ,#btFind##! ,#btClose##1 ,#rbTog1##A ,#rbEve1##Q ,#cbSel1##a ,#edNmin##q ,#edNmax##� ,#edLen##� ,#Label4# � ,#Chart1##� ,#Series1##� ,#Series2##� ,#Series3##� ,#Series4##� ,#edStep### ,#Label5# # ,#Label6# ! ,#Label7# 1 ,#Chart2##A ,#rbTog2##Q ,#rbEve2##a ,#cbSel2##q ,#Series5##� ,#Series6##� ,#Series7##� ,#Panel1# � ,#Panel2# � -#rbEve1Click#��##-#rbTog1Click#��##-#btFindClick#��##-#LinFind#�a##-#BinFind#�q##- LinFindAcc#�##-#SortA#�##-#SortB#�##-#Verify#��##- rbValClick#��##- rbIntClick#�###-#Fill#�U##- FormCreate#�###- cbSel1Change#�)##-#rbTog2Click#�A##-#rbEve2Click#�5##- cbSel2Change#�###cL#A###8:O#1###EB#�#<L#��##>@L#�###B#L#�/##DFD###4####�#���P@###D###4# �L#0##H#L#�##J#D###4##�L#�?##LND###4#�#�D###4##�L#�###P#D###4##�D###4#�PD###4##�L#�###R#D###4#�#�D###4#�#�l!�L###################@###�#######�###t#############################################################################################################################################################################################################################################################################################�###�######sgTb2�######sgTb1#######Label1#######Label2#######btFind ######btClose#######rbTog1#######rbEve1#######cbSel1#######edNmin ######edNmax$######edLen(######Label4,######Chart10######Series14######Series28######Series3<######Series4@######edStepD######Label5H######Label6L######Label7P######Chart2T######rbTog2X######rbEve2\######cbSel2`######Series5d######Series6h######Series7l###	##Panel1p###	##Panel2#########rbEve1Click#######rbTog1Click#######btFindClick#######LinFind#######BinFind###### LinFindAcc ######SortA ######SortB ######Verify###### rbValClick###### rbIntClick#######Fill###### FormCreate###### cbSel1Change#######rbTog2Click#######rbEve2Click###### cbSel2Change#TForm1 ###############################################TForm1L#######^##MainForm########.2########����#####MainFormSV�####�####�####�####�#####�#####��~!�#�##�####f�#�ָ####�####�####Ku�^[�SVWUQ�####f�####Hf��rZ@f�#$3�f�#####Kf��r?C3�#�֋��####�####�####���####�#####�Nj#####f�#Bf;#####t Ff��u�Gf� $u�Z]_^[�SVWUQ#�#####H��|p@�#$3�3�#�=####O;�|V�#>��y#��#�Ӹ####�####�####�####�####�####�####�####f�#hf;#####t#f;#####v#�s#�#��O;�}�E� $u�Z]_^[�SVWUQf�##f�####Hf��#��###@f�#$3�f�5####Nf��rhF3�#�Ӹ####�####�####�####�####�####�#####�ŋ#####f�#Bf;#####u##��f�#E����f�,E�##f�#####f�#E�##GCf��u�Ef� $u�Z]_^[�SVWUQ�#####�#####P�ƹ####�#####�####��##�=####O��|6G3ۋӸ####�####�####�T$#�####�####�####�#f�T$#f�#XCOu�#�=####��#��|KG3ۍC##�#####J+�|5B�#f� A�.f;L]#s!�#f� Yf� $�#f� A�.f�L]#�#f�,$f�,A@Ju�COu��####�####�####�#####�=####O��|#G3ۋ#�#X�####�####�####COu�Z]_^[�SVWUQ�#####�#####��#��|F@�#$3ҍB##� ####I+�|+A�#f�#C�>f�<Wf;�s#�ߋ>f�<G�.f�|U#�>f�#G@Iu�B� $u�Z]_^[�U��	###j#j#Iu�QSVW�E�3�Uh�###d�0d� �U�E�####�####�}�#tE�U�E� ###�####�}�#t.�U�E�@###�####�}�#t#�U�E�$###�####�}�#u#��###�####�####3�Uh####d�0d� �U�E�####�####�E��####f�####�U�E� ###�####�E��####f�####�U�E�@###�####�E��####f�####�U܋E�$###�####�E��####f�####3�ZYYd�#�#�####��###�####�####�####�U؋E�####�####�E��####��#��###�UԋE� ###�####�E��####��#��###�UЋE�@###�####�E��####��#��###�ŰE�$###�####�E��####��#��###�UȋE�####�####�E��####=��##`�UċE�####�####�E��####=��##@�U#E�@###�####�E��####=��## �U��E�$###�####�E��####=��##~#�$###�####�####�U��E�####�####�E��####�؍U��E� ###�####�E��####;�|#�\###�####�####3�ZYYd�#h�###�E��####�####��####��_^[��]�#����!###������� ������� ���� ����������!###����$###��������� ��������� ������� �������!####����,###������� ������ ������ � ��������� 1..65535!####����>###������������ �������� ������� ������ ���� ������ ������������!##S�ز#��####�#�Qd�####��,###�####3ҋ#�Qt�####��,###�####3ҋ#�Qt�####��,###�####3ҋ#�Qt3ҋ�,###�####3ҋ#�Qt��####�#���###�Ћ�,###�####�#�#�Qt[�S��3ҋ�####�#�Qd�####��,###�####�#�#�Qt�####��,###�####�#�#�Qt�####��,###�####�#�#�Qt3ҋ�,###�####�#�#�Qt[�U�� ###j#j#Iu�QSVW�U��####3�Uh###d�0d� ���####��###�####�####�####�####�####�####�####���###�#####�######�#####+Ћ��###�#####�#####P�####�####�#####�####��#f�=####Of��r2Gf�###�#�##�####f�#####�#�#####f� ####f� Bf�#f��u�f�###f�####f�####f�####f;######�{###���####�####����#$�#�;�#}�##P� }�##�#}�##�#}�����####���####�####����#$�#�;�#}� #P� }�##�#}�	#�#}�##�#####�;f�#}� #fi#}�##�#f#�f+#}�##fi#}�##�#f+�f�#}����#�#####�E��E����<$��E��####�E�P��3ҋ��###�#####�;#�#}�����E��E����<$��E��####�E�P�Ϻ####���###�#####�#####�E��E����#$�#�##�#E�����E��E����#$���,###���###3��####�### 3ҋ8���###f�####f######f�#f�####f;######�����f�####f;######��###f�####f�####���####�####����#$�#�#�#E�##P#�#� E�###�#�#E�###�#�#E�����####���####�####����#$�#�#�#E� #P#�#� E�###�#�#E�	##�#�#E�##�#####�#f�#E� ##�#fi#U�##�#f#�#�#f+#U�###�#fi#U�##�#f+�#�#f�#U����#�#####�E��E����<$��E��####�E�P#�#3ҋ��###�#####�##�#E�����E��E����<$��E��####�E�P#�#�####���###�#####�#####�E��E����#$�#�##�#E�����E��E����#$���,###���###3��####�### 3ҋ8���###f�###f�####f�####f�####f;######�s###���####�####����#$�#�;�#}�##P� }�##�#}�##�#}�����####���####�####����#$�#�;�#}�##P� }�##�#}�##�#}�����####���####�####����#$�#�;�#}� #P� }�##�#}�	#�#}�##�#####�;f�#}� #fi#}�##�#f#�f+#}�##fi#}�##�#f+�f�#}����#�#f�#E� ##�#fi#U�##�#f#�f+#}�##fi#}�##�#f+�f�#}����#�##�#E�����E��E����<$��E��####�E�P�Ϻ####���###�#####�#####�E��E����<$��E��####�E�P#�#3ҋ��###�#####�;#�#}�����E��E����<$��E��####�E�P�Ϻ####���###�#####�#####�E��E����#$�#�##�#E�����E��E����#$���,###���###�####�####�### 3ҋ8���####�#####�E��E����#$�#�##�#E�����E��E����#$���P###���###3��####�### 3ҋ8���###f�####f######f�#f�####f;######����f�####f;######��###f�####f�####���####�####����#$�#�#�#E�##P#�#� E�###�#�#E�###�#�#E�����####���####�####����#$�#�#�#E�##P#�#� E�###�#�#E�###�#�#E�����####���####�####����#$�#�#�#E� #P#�#� E�###�#�#E�	##�#�#E�##�#####�#f�#E� ##�#fi#U�##�#f#�#�#f+#U�###�#fi#U�##�#f+�#�#f�#U����#�#f�#E� ##�#fi#U�##�#f#�#�#f+#U�###�#fi#U�##�#f+�#�#f�#U����#�#####�E��E����<$��E��####�E�P#�#3ҋ��###�#####�##�#E�����E��E����<$��E��####�E�P#�#�####���###�#####�##�#E�����E��E����<$��E��####�E�P#�#�####���###�#####�#####�E��E����#$�#�##�#E�����E��E����#$���,###���###�####�####�### 3ҋ8���####�#####�E��E����#$�#�##�#E�����E��E����#$���P###���###3��####�### 3ҋ8���###f�###f�####f�####f�####f;######�F###���####�####����#$�#�;�#}�##P� }�##�#}�##�#}�����####���####�####����#$�#�;�#}�##P� }�##�#}�##�#}�����####���####�####����#$�#�;�#}� #P� }�##�#}�	#�#}�##�#####�;f�#}� #fi#}�##�#f#�f+#}�##fi#}�##�#f+�f�#}����#�#f�#E� ##�#fi#U�##�#f#�f+#}�##fi#}�##�#f+�f�#}����#�##�#E�����E��E����<$��E��####�E�P�Ϻ####���###�#####�;#�#}�����E��E����<$��E��####�E�P�Ϻ####���###�#####�#####�E��E����#$�#�##�#E�����E��E����#$���,###���###�####�####�### 3ҋ8���####�#####�E��E����#$�#�##�#E�����E��E����#$���P###���###�####�####�### 3ҋ8���###f�####f######f�#f�####f;######����f�####f;######�a###f�####f�####���####�####����#$�#�#�#E�##P#�#� E�###�#�#E�###�#�#E�����####���####�####����#$�#�#�#E�##P#�#� E�###�#�#E�###�#�#E�����####���####�####����#$�#�#�#E� #P#�#� E�###�#�#E�	##�#�#E�##�#####�#f�#E� ##�#fi#U�##�#f#�#�#f+#U�###�#fi#U�##�#f+�#�#f�#U����#�#f�#E� ##�#fi#U�##�#f#�#�#f+#U�###�#fi#U�##�#f+�#�#f�#U����#�##�#E�����E��E����<$��E��####�E�P#�#�####���###�#####�##�#E�����E��E����<$��E��####�E�P#�#�####���###�#####�#####�E��E����#$�#�##�#E�����E��E����#$���,###���###�####�####�### 3ҋ8���####�#####�E��E����#$�#�##�#E�����E��E����#$���P###���###�####�####�### 3ҋ8���###f�###f�####f�####f�####f;######�M###���####�####����#$�#�;�#}�##P� }�##�#}�##�#}�����####���####���####�####����#$�#�;�#}�##P� }�##�#}�##�#}�����####���####�####����#$�#�;�#}� #P� }�##�#}�	#�#}�##�#####�;f�#}� #fi#}�##�#f#�f+#}�##fi#}�##�#f+�f�#}����#�#f�#E� ##�#fi#U�##�#f#�f+#}�##fi#}�##�#f+�f�#}����#�##�#E�����E��E����<$��E��####�E�P�Ϻ####���###�#####�;#�#}�����E��E����<$��E��####�E�P�Ϻ####���###�#####�#####�E��E����#$�#�##�#E�����E��E����#$���,###���###�####�####�### 3ҋ8���####�#####�E��E����#$�#�##�#E�����E��E����#$���P###���###�####�####�### 3ҋ8���###f�####f######f�#f�####f;######����f�####f;######�h###f�####f�####���####�####����#$�#�#�#E�##P#�#� E�###�#�#E�###�#�#E�����####���####���####�####����#$�#�#�#E�##P#�#� E�###�#�#E�###�#�#E�����####���####�####����#$�#�#�#E� #P#�#� E�###�#�#E�	##�#�#E�##�#####�#f�#E� ##�#fi#U�##�#f#�#�#f+#U�###�#fi#U�##�#f+�#�#f�#U����#�#f�#E� ##�#fi#U�##�#f#�#�#f+#U�###�#fi#U�##�#f+�#�#f�#U����#�##�#E�����E��E����<$��E��####�E�P#�#�####���###�#####�##�#E�����E��E����<$��E��####�E�P#�#�####���###�#####�#####�E��E����#$�#�##�#E�����E��E����#$���,###���###�####�####�### 3ҋ8���####�#####�E��E����#$�#�##�#E�����E��E����#$���P###���###�####�####�### 3ҋ8���####�#B���###�####�####�####�####�####�####�####�####�#####�####3�ZYYd�#h�###�E��####�####�E��####�E��####��####��_^[��]�###����####file.bin####S��3ҋ� ###�####3ҋ�@###�####[�S�ز#�� ###�####�#��@###�####[�S���####h####3�3ҋ��###�####h(###3ɺ####���###�####h8###3ɺ####���###�####hH###3ɺ####���###�####hT###3ɺ####���###�####h####3�3ҋ��###�####hd###3ɺ####���###�####hx###3ɺ####���###�####h�###3ɺ####���###�####3ҋ�####�#���###3ҋ�\###�#���###�#��####�#���###�#��T###�#���###[�#����####N###����####t��1####����####t��2####����####t��#����####t��-�###����####t��2+t�A####����####t��+t�A#����####t��-�+t�####S��3ҋ�P###�####3ҋ#�Qt�####��P###�####3ҋ#�Qt�####��P###�####3ҋ#�Qt��\###�#���###�Ћ�P###�####�#�#�Qt[�S�غ####��,###�####3ҋ#�Qt�####��,###�####3ҋ#�Qt�####��,###�####3ҋ#�Qt3ҋ�,###�####3ҋ#�Qt��####�#���###�Ћ�,###�####�#�#�Qt[�S�ز#��\###�#�Qd3ҋ�P###�####3ҋ#�Qt�####��P###�####3ҋ#�Qt�####��P###�####3ҋ#�Qt��\###�#���###�Ћ�P###�####�#�#�Qt[�S��3ҋ�\###�#�Qd3ҋ�P###�####�#�#�Qt�####��P###�####�#�#�Qt�####��P###�####�#�#�Qt[�U��3�UhG###d�0d� �#####u �####�#####�####�####�#####�####3�ZYYd�#hN###��####��]Ã-#####�mE###�###�# #�###�###�###�###N##�##�##�##�##�##�##�##~##�##X##�##d##f##l##�##�##t##�##j##z##�##�##�##�##�##`##�##�##�##b##�##�##�##�##p##n##�##v##�##�##�##�##�##�##P##�##R##T##V##�##�##Z##�##�##h##�##�##�##�##�##x##\##^##r##|##�##�##�##� #�#�##�#$#�#$#�#$#a###q###�#"#�###�###�###�#"###"#U#####"#)#&#A#$#5#$###4####<##>#####@##B##D## #####.##�###�###�###L"#�###�#(#�##U#######�# #	# #############�# ### #####a# #�# #�#(###&#%# ### #####-# #####�#####2#q###�#(###,#�# #%# ### ### #�# #-# ### #�#########<#�###�#0###"#�# #%# ### ### #�# #-# #####�#######M###M#######M#0#�# #�#######�# #9#######�# #%# #####�# #-# ###,###(###�#�# #	# #######$#�# ### #####�# #�###�#.#�#�#�#4#�#.#�.#�.#�.#�##�# #H #�##�#.#�##� #�#"#�##� #�#"#�##� #�#"#�##� #�###E# #�# #H #� #I#"#�##�2#�##�2#�##�2#�##�2#�##�0#�##�0#�##�0#�##�##�# #H #�"#�##�&#�##�##�# #H #�##�###M# #Q#�##�#8#$.#$.#$(#$D#$##�#8#$.#$.#$(#$##�#2#####�###�# #�# #�# #a###�# #	# ### ####�###�######�# #�###�# #9###�#,### # ###�### #.#�# ### #####�###U# #�"#!###!###!###!# #�##a# #�"#!###!###!###!# #�##!###!###!###!###=#####*#�&####=#*#�,######0#=#@#&*#�###########�#######�###�# #####U# #�"#!###!###!###!# #�##a# #�"#!###!###!###!# #�##!###!# #!###!# #=#####*#�(####=#*#�.######0#=#@#&4#�# ### #####�###U# #�"############### #�##�# #�"#%###%###%###%# #�##a# #�"#%###%###%###%# #�##%###%###%###%###A###%###%###########1###A#*#�,######*#�(####1#*#�,######0#A#F#&,###0#1#@#&*#�###########�#######�###�# #####U# #�"############### #�##�# #�"#%###%###%###%# #�##a# #�"#%###%###%###%# #�##%###%# #%###%# #A###%###%# ####### #1#####*#�(####A#*#�.####1#*#�.######0#A#F#&,###0#1#@#&4#�# ### #####�###U# #�"############### #�##�# #�"#)###)###)###)# #�##q# #�"#)###)###)###)# #�##)###)###)###)###E###)###)###########5###E#*#�,####5#*#�,######0#E#F#&,###0#5#F#&*#�###########�#######�###�# #####U# #�"############### #�##�# #�"#)###)###)###)# #�##a# #�"#)###)###)###)# #�##)###)# #)###)# #E###)###)# ####### #5###E#*#�.####5#*#�.######0#E#F#&,###0#5#F#&4#�# ### #####�###U# #�"############### #�##�###�# #�"#-###-###-###-# #�##�# #�"#-###-###-###-# #�##-###-###-###-###I###-###-###########9###I#*#�,####9#*#�,######0#I#F#&,###0#9#F#&*#�###########�#######�###�# #####U# #�"############### #�##�###�# #�"#-###-###-###-# #�##�# #�"#-###-###-###-# #�##-###-# #-###-# #I###-###-# ####### #9###I#*#�.####9#*#�.######0#I#F#&,###0#9#F#&<## #�# #i# ### #�# #q# ### #�# #�# #y###�###M###}###}# #Q#H#�###�##� #####�##� #####�# ###### ###$## ###$## ###$## ###$## ###### ###$## ###$## ###$#########$.#$.#$D#$##)###$.#$.#$(#$D#$##5#2#$.#$.#$D#$##A#2#$.#$.#$##M###M###Q###�# #�# #�# #�# #�# #�###M# #Q######Q# ##��#M#�####(####�" # ####&# ###"#,�#  �## # # #$#########"#(#$##�###�##   # ###.# #$#(#,########�## �##   ###:###"#&##�####"# ########�###�####(#N  ###(# #"##### �###�## # #H#�### ###>#>#>#\#### ##### #p###N#�######.#.#.#(#D#######.#.#.#(###V#####(# #6#@#&# #(�#  # ###&###b###b#j#^#l#�##�##&#&#####t###t#�#`#n �# ###&###b###b###b#j#p#l#`#l#�#�##�#$&#&#####t###t###t#�#�#`#n#n#�#�# ###&###b###b###b#j#p#l#l#�#�##�#"&#&#####t###t###t#�#�#n#n#�#�# ###&###b#####b###b#j#p#l#l#�#�##�#$&#&#####t#####t###t#�#�#n#n#�#�#######�#<################### #(#.#.#.#.#(#.#.#.# # # # # ####(#.#.#D#####.#.#.#(#D#######(#.#.#D#######(#.#.#�##�##�##�#&###j�5#�######�#####�#####�#####�#####�#####�# ## �# ##"�####$�####&�####(�####*�####,�####.�####0�####2�####4�# ##6�#"##8�#$##:�#&##<�#(##>�#*##@�#,##B�#.##D�#0##F�#2##H�#4##J�#6##L�#8##N�#:##P�#<##R�#>##T�####XV�#�#@##V�####ZX�#�#B##X�####\Z�#�#D##Za####^\��#F##\q####`^��#H##^�####b`##�#J##`�####dbQ#�#L##b�####fd�#�#N##d�####hf #�#P##f�####jh}#�#R##h#####lj�#�#T##jU####pl��#V##l#####rp�#�#X##p)####tr!#�#Z##rA####vti#�#\##t5####xvE#�#^##v#####zx##�#`##x�####��####��####��####��####��####��####��####��####�#####�#####�	####� ####�#####�#####�#####�#####�!####�%####�)####�-####�1####�5####�9####�=####�A####�E####�I####�M####�Y#####]####�e#####i####�m####�u#####y####�}####ց####օ####֑#####�####	#�####	#�####	#�#####�####Y#�####Y#�####]#�####]#�#####�####�#�####�#�####�#�####�#�#####�####�#�#####�####�#�#####�####�#�##########}#	##### ####�############�#!#####%######-#####1####!#9#####=####E#E#####I####i#M####�#��U# ##0#a#`##�#i#: m#Z#m#�i#�q#�##�#y#. �#2#�#B }#^#�#�}#��#� �#��#�y###��#�##�#�## �#@ �#`#�#U#��#q#��#q#��#�##�#�#l#�#��#�#�#)##�#�#��#	#��#�##�#�#<#�#\#�#�#�#���#���#���# �#pR�#@####�###�#-#��#@####�###�#��#@�#p#�#V#�#�L��#@####�###�#:�##@####	###	#:�##@##########E#�##@####!###!#�)#@####-###-#�5#@####9###9#�A#@####E###E#��M# ##### ####a
Додати в блог або на сайт

Цей текст може містити помилки.

Programming, computers, informatics and cybernetics | Course
182кб. | download | скачати


Related works:
Ранжирование и группировка данных в статистике
Создание базы данных Аэропорт
Моя организация
Организация дорожного движения
Организация и методика производственного обучения
Организация процесса ремонта автомобилей
Организация работ по ремонту кровли
Организация образовательного процесса в общеобразовательных учреждениях по курсу Основы безопасности
© Усі права захищені
написати до нас