Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
65
Добавлен:
11.02.2014
Размер:
31.13 Кб
Скачать

Цель работы: изучить записи и создать приложение, в котором используются данные типа запись.

ЗАДАНИЕ: Даны следующие данные: номер маршрута, название начального пункта маршрута, название конечного пункта маршрута. Написать программу, выполняющую следующие действия:

  • сортировку по номерам маршрутов;

  • вывод на экран информации о маршруте, номер которого введен с клавиа­туры; если таких маршрутов нет, вывести на экран окно с соответствующим сооб­щением.

ЛИСТИНГ ПРОГРАММЫ:

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.