Курсовая

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

Работа добавлена на сайт bukvasha.net: 2015-07-01

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 29.1.2025


##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

1. Реферат на тему Перемешивание жидкостей
2. Реферат на тему Deciduous Forests Essay Research Paper Deciduous ForestsINTRODUCTION
3. Реферат на тему Excerpts From Interviews With Garrett Hongo Essay
4. Диплом на тему Управление основным капиталом медицинского учреждения
5. Реферат Семейное право 19
6. Реферат на тему Guns Essay Research Paper The Freedom to
7. Реферат Двойное убийство и самоубийство Криса Бенуа
8. Реферат Платон как учитель человечества
9. Реферат на тему Alber Einstein Essay Research Paper Albert EinsteinAlbert
10. Реферат Теории лидерства в менеджменте