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 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.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);

end;

end.
Соседние файлы в папке мин, макс, среднее, кол-во эоементов
  • #
    15.06.20142.03 Кб12Project1.dof
  • #
    15.06.2014255 б13Project1.dpr
  • #
    15.06.20141.4 Кб12stacklib.dcu
  • #
    15.06.20142.19 Кб12stacklib.pas
  • #
    15.06.20141.49 Кб12Unit1.dfm
  • #
    15.06.20141.78 Кб12Unit1.pas