Код:
{Создать массив(расписание движения),хранящий информацию о 20 поездах,отправляющихся со станции Воронеж.
Каждый элемент расписания содержит информацию:номер поезда,пункт назначения,время отправления,количество свободных мест
в вагонах типа св,купе,плацкарт.а)упорядочить массив по пункту назначения.Вывести информацию о поездах,отходящих в заданный период
времени и следующих до заданного пункта назначения}
program Project2;
{$APPTYPE CONSOLE}
uses
SysUtils,
Windows;
const
n=3;
type
telem=record
numbertrain:integer;
destination:string;
timeofdeparture:integer;
sv:Integer;
compartment:integer;
plackart:integer;
end;
tmas=array [1..n] of telem;
var
train:tmas;
i,time1,time2:Integer;
destination:string;
//-------------------------------------------------------------------
procedure vvoddannuh(var a:tmas);
var i:Integer;
begin
for i:=1 to n do
begin
Writeln('введи номер поезда');
Readln(a[i].numbertrain);
Writeln('введи пункт назначения');
Readln(a[i].destination);
Writeln('введи время отправления');
Readln(a[i].timeofdeparture);
Writeln('введи количество свободных мест в св');
Readln(a[i].sv);
Writeln('введи количество свободных мест в купе');
Readln(a[i].compartment);
Writeln('введи количество свободных мест в плацкарте');
Readln(a[i].plackart);
writeln;
end
end;
//-----------------------------------------------------------------
Procedure vuvoddannuh(a:tmas);
var i:Integer;
begin
writeln ('--------------------------------------------------------------------------');
writeln (' номер поезда / пункт назначения / время отправления /места в св /места в купе /места в плацкарте ');
writeln ('--------------------------------------------------------------------------');
for i:=1 to n do
writeln(a[i].numbertrain:3,' ',a[i].destination:10,' ',a[i].timeofdeparture:7,' ',a[i].sv:3,' ',a[i].compartment:3,' ',a[i].plackart:3);
end;
//------------------------------------------------------------------------------------------
Procedure Swap(Var k, l: telem);
Var m:telem;
begin
m := k;
k := l;
l := m;
end;
// --------------------------------------------------------------------------
Procedure sortirovka;
var
x:telem;
i,j:Integer;
begin
for i:=1 to n do
for j:=1 to n-i do
if Ord(train[j].destination[1])>Ord(train[j+1].destination[1]) then
Swap(train[j],train[j+1]);
end;
//--------------------------------------------------------------------------------
Procedure search_train(a:tmas;destination:string;time1,time2:Integer);
var
i,S:Integer;
begin
S:=0;
if (a[i].destination=destination) and (a[i].timeofdeparture>=time1)and(a[i].timeofdeparture<=time2) then
begin
Writeln('номер поезда',a[i].numbertrain);
Writeln('пункт назначения',a[i].destination);
Writeln('время отправления',a[i].timeofdeparture);
Writeln('количество мест в св',a[i].sv) ;
Writeln('количество мест в купе',a[i].compartment);
Writeln('количество мест в плацкарте',a[i].plackart);
s:=s+1
end;
if S=0 then writeln('таких поездов нет');
end;
begin
SetConsoleOutputCP(1251);
vvoddannuh(train);
writeln;
vuvoddannuh(train);
sortirovka;
vuvoddannuh(train);
Writeln('введи пункт назначения');
Readln(destination);
writeln('введи период времени(формат ввода ччмм) с');
readln(time1);
writeln('по');
Readln(time2);
search_train(train,destination,time1,time2);
readln
end.
не работает поиск по указанным параметрам