Добавил:
Kaz
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:АСОИ, Delphi, много вариантов 2 сем / 2стеки / максим число + место / Unit1
.pas unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Menus, Buttons,Ustack,Math;
type
TForm1 = class(TForm)
Button1: TButton;
Label1: TLabel;
Label2: TLabel;
Edit1: TEdit;
Button2: TButton;
ListBox1: TListBox;
Edit2: TEdit;
BitBtn1: TBitBtn;
Label4: TLabel;
Edit3: TEdit;
Label3: TLabel;
Label5: TLabel;
Label6: TLabel;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
s:TSel;
stack:tstack;
procedure CheckMem(var stack:TSel);
procedure ClearMem(var stack:TSel);
procedure Print_B(stack:TSel;listbox:Tlistbox);
implementation
{$R *.dfm}
procedure Print_B;
begin
while stack<>nil do begin
listbox.items.add(inttostr(stack^.inf));
stack:=stack^.a;
end;
end;
procedure TForm1.Button1Click(Sender: TObject); //сформировать стек
var i,x,n:integer;
begin
listbox1.Clear;
if Edit1.Text<>'' then begin
n:=strtoint(edit1.text);
randomize;
CheckMem(s);
for i:=1 to n do begin
x:=random(99)+1;
stack.AddStack(s,x);
end;
print_b(s,listbox1)
end
else ShowMessage('Введите количество элементов');
end;
procedure CheckMem;
begin
while stack<>nil do ClearMem(stack);
end;
procedure ClearMem;
var sp:TSel;
begin
if stack=nil then exit;
sp:=stack;
stack:=stack^.a;
dispose(sp);
end;
procedure TForm1.Button2Click(Sender: TObject);
var top,VremUk:TSel;
max,pos1, pos,tempPos,e:integer;
begin
VremUk:=s;
pos1:=0;
tempPos:=-1;
max:=VremUk^.inf;
while VremUk<>nil do begin
inc(tempPos);
if max<VremUk.inf then begin
max:=VremUk.inf;
pos1:=tempPos;
end;
Edit3.Text:=IntToStr(max);
VremUk:=VremUk^.a;
end;
Edit2.Text:=IntToStr(pos1);
end;
end.
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Menus, Buttons,Ustack,Math;
type
TForm1 = class(TForm)
Button1: TButton;
Label1: TLabel;
Label2: TLabel;
Edit1: TEdit;
Button2: TButton;
ListBox1: TListBox;
Edit2: TEdit;
BitBtn1: TBitBtn;
Label4: TLabel;
Edit3: TEdit;
Label3: TLabel;
Label5: TLabel;
Label6: TLabel;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
s:TSel;
stack:tstack;
procedure CheckMem(var stack:TSel);
procedure ClearMem(var stack:TSel);
procedure Print_B(stack:TSel;listbox:Tlistbox);
implementation
{$R *.dfm}
procedure Print_B;
begin
while stack<>nil do begin
listbox.items.add(inttostr(stack^.inf));
stack:=stack^.a;
end;
end;
procedure TForm1.Button1Click(Sender: TObject); //сформировать стек
var i,x,n:integer;
begin
listbox1.Clear;
if Edit1.Text<>'' then begin
n:=strtoint(edit1.text);
randomize;
CheckMem(s);
for i:=1 to n do begin
x:=random(99)+1;
stack.AddStack(s,x);
end;
print_b(s,listbox1)
end
else ShowMessage('Введите количество элементов');
end;
procedure CheckMem;
begin
while stack<>nil do ClearMem(stack);
end;
procedure ClearMem;
var sp:TSel;
begin
if stack=nil then exit;
sp:=stack;
stack:=stack^.a;
dispose(sp);
end;
procedure TForm1.Button2Click(Sender: TObject);
var top,VremUk:TSel;
max,pos1, pos,tempPos,e:integer;
begin
VremUk:=s;
pos1:=0;
tempPos:=-1;
max:=VremUk^.inf;
while VremUk<>nil do begin
inc(tempPos);
if max<VremUk.inf then begin
max:=VremUk.inf;
pos1:=tempPos;
end;
Edit3.Text:=IntToStr(max);
VremUk:=VremUk^.a;
end;
Edit2.Text:=IntToStr(pos1);
end;
end.
Соседние файлы в папке максим число + место