Касса вокзала.
· Структура данных хранит следующие сведения:
название пункта назначения, номер поезда, время отправления
· Отсортировать данные методом улучшенного пузырька по номерам поездов
· Сформировать список поездов, направляющихся в заданный пункт, после заданного с клавиатуры времени.
что-то тупит с юнитами.
Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,StdCtrls,U2;
type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
Button6: TButton;
Button7: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
Mas:Tdar;
r:Tpoezd;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
r.naz:=Edit1.Text;
r.nomer:=strtoint(Edit2.Text);
r.time:=strtoint(Edit3.Text);
Add_to_Array(Mas,r);
end;
procedure TForm1.Button2Click(Sender: TObject);
Begin
Var
I:integer;
S:string;
Begin
For I:=0 to high(Mas) Do
begin
S:=mas[i].fam+' '+inttostr(mas[i].naz)+' '+inttostr(mas[i].nomer)+' '+inttostr(mas[i].time);
Memo1.Lines.Add(s);
end;
End;
procedure TForm1.Button3Click(Sender: TObject);
begin
Sort_Array(Mas);
end;
procedure TForm1.Button5Click(Sender: TObject);
begin
begin
Edit1.Clear;
Edit2.Clear;
Edit3.Clear;
end;
end;
procedure TForm1.Button6Click(Sender: TObject);
begin
Memo1.Clear;
end;
procedure TForm1.Button7Click(Sender: TObject);
begin
Close;
end;
procedure TForm1.Button4Click(Sender: TObject);
Var
s:string;
begin
Poisk(Mas,s);
Memo1.Lines.Add(s);
end;
end.
unit U2;
interface
uses
Sysutils,Dialogs,Stdctrls;
Type
TPoezd=record
naz:string[10];
nomer:byte;
time:byte;
sb:real;
end;
Tdar=array of TPoezd;
Procedure Add_to_Array(Var Mas:Tdar;r:TPoezd);
Procedure Sort_Array(Var Mas:Tdar);
Procedure Poisk(Mas:Tdar; Var s:string);
implementation
Procedure Add_to_Array(Var Mas:Tdar;r:TPoezd);
Begin
If Mas=nil then Setlength(Mas,1)
else Setlength(Mas,length(Mas)+1);
Mas[high(Mas)]:=r;
End;
Procedure Sort_Array( Var Mas:Tdar);
var
i,j:integer;
r:Tstud;
Begin
For I:=0 to high(MAS)-1 do
Mas[i].sb:=(Mas[i].time);
{ Sortirovka massiva: }
For I:=0 to high(MAS)-1 do
For j:=I+1 to high(MAS) do
if mas[i].sb>mas[j].sb then
begin
r:=mas[i];
mas[i]:=mas[j];
mas[j]:=r;
end;
End;
Procedure Poisk(Mas:Tdar; var s:string);
Var
i:integer;
Begin
For I:=0 to high(MAS)-1 do
if (mas[i].time)<>0 then
s:=Mas[i].naz;
end;
end.
Admin: Пользуемся тегами, иначе последуют санкции.