Скачиваний:
10
Добавлен:
15.06.2014
Размер:
2.41 Кб
Скачать
unit Unit1;

interface

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

type
TForm1 = class(TForm)
ListBox1: TListBox;
bPut: TButton;
bGetMinMax: TButton;
fMin: TEdit;
fMax: TEdit;
Label1: TLabel;
Label2: TLabel;
BitBtn1: TBitBtn;
procedure bPutClick(Sender: TObject);
{ procedure bSort1Click(Sender: TObject); }
{ procedure bSort2Click(Sender: TObject); }
procedure bGetMinMaxClick(Sender: TObject);

private
{ Private declarations }
public
{ Public declarations }
end;



var
Form1: TForm1;
PSortedStack : TStack;
POriginStack : TStack;
v_min, v_max, v_sum : integer;

const
n = 25;

implementation

{$R *.dfm}

function min(q1, q2 : integer) : integer;
begin
if q1 >= q2 then Result:=q2
else Result:=q1;
end;

function max(q1, q2 : integer) : integer;
begin
if q1 <= q2 then Result:=q2
else Result:=q1;
end;

procedure TForm1.bPutClick(Sender: TObject);
var i, j : integer;
begin

randomize;
ListBox1.Clear;

PSortedStack := nil;
POriginStack := nil;
for i:=1 to n do
begin
j:=random(200);
AddToStack(POriginStack, j);
ListBox1.AddItem(IntToStr(j), Form1);
end;

end;

procedure update_stack;
var k,q : integer;
begin
while PSortedStack <> nil do
begin
ReadStackItem(PSortedStack, k);

end;
end;

{procedure TForm1.bSort1Click(Sender: TObject);
var n : integer;
begin
PSortedStack := nil;
PSortedStack := POriginStack;
ListBox2.Clear;
Repeat
n:=0;
SortBublAfter(PSortedStack, n);
until n=0;
update_stack;
end; }


{procedure TForm1.bSort2Click(Sender: TObject);
begin
PSortedStack := nil;
PSortedStack := POriginStack;

SortBublInf(PSortedStack);
update_stack;
end;
}
procedure TForm1.bGetMinMaxClick(Sender: TObject);
var k:integer;
begin
v_min := 2010000;
v_max := -2010000;
while POriginStack <> nil do
begin
ReadStackItem(POriginStack, k);
v_min := min(k, v_min);
v_max := max(k, v_max);
v_sum := v_sum + k;
end;
Form1.fMin.Text := inttostr(v_min);
Form1.fMax.Text := inttostr(v_max);
{Form1.fAvg.Text := floattostr(v_sum / n); }
{Form1.fCnt.Text := inttostr(n); }
end;

end.
Соседние файлы в папке мин,макс
  • #
    15.06.20142.03 Кб10Project1.dof
  • #
    15.06.2014240 б10Project1.dpr
  • #
    15.06.2014670 б10stacklib.pas
  • #
    15.06.2014952 б10stacklib.~pas
  • #
    15.06.20145.39 Кб10Unit1.dcu
  • #
    15.06.20142.41 Кб10Unit1.pas