
лабораторная работа / лабораторные работы по LAZARUS / Отчет спо лазарус лаба 5
.docxЦель работы: изучить записи и создать приложение, в котором используются данные типа запись.
ЗАДАНИЕ: Даны следующие данные: номер маршрута, название начального пункта маршрута, название конечного пункта маршрута. Написать программу, выполняющую следующие действия:
-
сортировку по номерам маршрутов;
-
вывод на экран информации о маршруте, номер которого введен с клавиатуры; если таких маршрутов нет, вывести на экран окно с соответствующим сообщением.
ЛИСТИНГ ПРОГРАММЫ:
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, Grids,
Buttons, StdCtrls;
type
{ TForm1 }
TForm1 = class(TForm)
BitBtn1: TBitBtn;
Button1: TButton;
Button2: TButton;
Edit1: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
StringGrid1: TStringGrid;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
Form1: TForm1;
implementation
{ TForm1 }
type
zap=record
name1,name2: string[20];
number: integer;
end;
var
MZap:array[1..6] of zap;
procedure TForm1.FormCreate(Sender: TObject);
var i:integer;
begin
with StringGrid1 do
begin
Cells[0,0]:='№ маршрута';
Cells[1,0]:='пункт отправки';
Cells[2,0]:='пункт прибытия';
for i:=1 to 6 do Cells[0,i]:=IntToStr(i);
Cells[0,1]:='1'; Cells[1,1]:='начало1'; Cells[2,1]:='конец1';
Cells[0,2]:='2'; Cells[1,2]:='начало2'; Cells[2,2]:='конец2';
Cells[0,3]:='3'; Cells[1,3]:='начало3'; Cells[2,3]:='конец3';
Cells[0,4]:='4'; Cells[1,4]:='начало4'; Cells[2,4]:='конец4';
Cells[0,5]:='5'; Cells[1,5]:='начало5'; Cells[2,5]:='конец5';
Cells[0,6]:='6'; Cells[1,6]:='начало6'; Cells[2,6]:='конец6';
for i:=1 to 6 do
with MZap[i] do
begin
name1:=Cells[1,i];
name2:=Cells[2,i];
number:=StrToInt(Cells[0,i]);
Cells[0,i]:=FloatToStrF(number,ffFixed,5,2
end;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var i,j: integer;
buffer: zap;
begin
for i:=1 to 5 do
for j:=i+1 to 6 do
if MZap[j].number<MZap[i].number then
begin
buffer:=MZap[i];
MZap[i]:=MZap[j];
MZap[j]:=buffer;
end;
for i:=1 to 6 do
with StringGrid1,MZap[i] do
begin
Cells[1,i]:=name1;
Cells[2,i]:=name2;
Cells[0,i]:=FloatToStrF(number,ffFixed,5,2);
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
var i,x,a: integer;
begin
x:=StrToInt(Edit1.Text);
a:=0;
for i:=1 to 6 do
with StringGrid1,MZap[i] do
begin
if x=MZap[i].number
then
begin
Label1.Caption:=('Начало маршрута:'+#32+StringGrid1.Cells[1,i]+#13+'Конец маршрута:'+#32+StringGrid1.Cells[2,i]);
a:=1
end;
end;
if a<>1
then
begin
MessageDlg('Такого маршрута нет в списке', mtInformation, [mbOk], 0)
end;
end;
initialization
{$I unit1.lrs}
end.