Скачиваний:
8
Добавлен:
01.05.2014
Размер:
2.95 Кб
Скачать
unit Unit2;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ComCtrls, Mask;

type
TVvod = class(TForm)
Memo1: TMemo;
BitBtn1: TBitBtn;
SaveDialog1: TSaveDialog;
GroupBox1: TGroupBox;
UpDown1: TUpDown;
Edit1: TEdit;
Button1: TButton;
Edit2: TEdit;
procedure SpeedButton1Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Vvod: TVvod;

implementation
uses unit1;

Var vixod:text;

{$R *.dfm}

procedure TVvod.SpeedButton1Click(Sender: TObject);
begin
Vvod.Close;
end;

procedure TVvod.BitBtn1Click(Sender: TObject);
begin
If savedialog1.execute and FileExists(SaveDialog1.FileName)
Then
Begin
memo1.Lines.SaveToFile(SaveDialog1.FileName);
end;
end;

procedure TVvod.FormClose(Sender: TObject; var Action: TCloseAction);
begin
mainform.Enabled:=true;
end;

procedure TVvod.Button1Click(Sender: TObject);
Var gen:array of tInfo;
vstav,udal,kolvo,x1,vstav_kol,udal_kol:word;
proc:byte;
prt:tPRT;
x:tInfo;

function found:boolean;
Var i:word;
f:boolean;
Begin
f:=false;
i:=0;
While (not f) and (i<vstav) do
Begin
f:=gen[i]=x;
i:=i+1;
end;
found:=f;
end;

function alldel:boolean;
Var i:word;
f:boolean;
Begin
f:=true;
i:=0;
While (f) and (i<vstav) do
Begin
f:=gen[i]=0;
i:=i+1;
end;
alldel:=(i=vstav) and (f);
end;

begin
If savedialog1.execute Then
Begin
AssignFile(vixod,SaveDialog1.FileName);
Rewrite(vixod);
If (edit2.Text<>'') and (edit1.Text<>'') then
Begin
kolvo:=strtoint(trim(edit2.Text));
proc:=strtoint(trim(edit1.Text));
udal_kol:=round(kolvo*proc/100);
vstav_kol:=kolvo-udal_kol;
vstav:=0;
udal:=0;
setlength(gen,1);
writeln(vixod,kolvo);
While vstav+udal<>kolvo do
Begin
randomize;
if (((vstav>0) and (vstav<vstav_kol)) or ((vstav=0) and (kolvo<>0))) and (random(100)>proc) then
Begin
x:=random(65535+1);
If vstav>0 then
While found do
x:=random(65535+1);
setlength(gen,vstav+1);
gen[vstav]:=x;
vstav:=vstav+1;
prt:=random(999+1);
Writeln(vixod,'i ',x,' ',prt);
end
else
If (vstav>0) and (udal<udal_kol) and (not alldel) then
Begin
x1:=random(vstav);
While gen[x1]=0 do
x1:=random(vstav);
x:=gen[x1];
gen[x1]:=0;
udal:=udal+1;
Writeln(vixod,'d ',x);
end;
end;
end;
Closefile(vixod);
end;
memo1.Lines.LoadFromFile(SaveDialog1.FileName);
end;

end.
Соседние файлы в папке Исследование бинарных деревьев
  • #
    01.05.201412.21 Кб8Unit1.dfm
  • #
    01.05.201424.99 Кб8Unit1.pas
  • #
    01.05.20147.21 Кб8Unit2.dcu
  • #
    01.05.201451 б8Unit2.ddp
  • #
    01.05.20147.05 Кб9Unit2.dfm
  • #
    01.05.20142.95 Кб8Unit2.pas
  • #
    01.05.20144.26 Кб8Unit3.dcu
  • #
    01.05.201451 б8Unit3.ddp
  • #
    01.05.201422.73 Кб8Unit3.dfm
  • #
    01.05.2014870 б8Unit3.pas
  • #
    01.05.201449 б8vxod.xom