Показать сообщение отдельно
Старый 04.09.2012, 17:11   #16 (permalink)
gabriela007
Member
 
Регистрация: 03.09.2012
Сообщений: 16
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Цитата:
program Project2;

{$APPTYPE CONSOLE}
uses
SysUtils,
Windows;
const
n=20;
type
traininfo=record
numbertrain:integer;
destination:string[10];
timeofdeparture_h:integer;
timeofdeparture_m:integer;
sv:Integer;
compartment:integer;
plackart:integer;
end;
tmas=array [1..n] of traininfo;
var
train:tmas;
i,t_h,t_m:Integer;
time1,time2:real;
destination,s:string;
f,f1:Text;
f3:file of traininfo ;
//-----------------------------------------------------------------
procedure vvoddannuh; //заполнение файла данными
var
i,numbertrain,timeofdeparture_h,timeofdeparture_m,
sv,compartment,plackart:Integer;
destination:String;
f:Text;
begin
Assign(f,'train_1.txt');
Rewrite(f);
writeln (f,'------------------------------------------------------------');
writeln (f,'номер / пункт назначения / время отпр. / св / купе / плацк. ');
writeln (f,'------------------------------------------------------------');
for i:=1 to n do
begin
Write('введи номер поезда: ');
Readln(numbertrain);
Write('введи пункт назначения: ');
Readln(destination);
Write('введи время отправления (чч мм): ');
Readln(timeofdeparture_h,timeofdeparture_m);
Write('введи количество свободных мест в св: ');
Readln(sv);
Write('введи количество свободных мест в купе: ');
Readln(compartment);
Write('введи количество свободных мест в плацкарте: ');
Readln(plackart);
writeln(f,numbertrain:5,destination:19,timeofdepar ture_h:8,timeofdeparture_m:3,sv:8,compartment:7,pl ackart:8);
writeln
end;
Close(f)
end;
//-----------------------------------------------------------------
Procedure vuvoddannuh(a:tmas); //вывод данных в файл
var
i:Integer;
f:Text;
begin
Assign(f,'train_2.txt');
Rewrite(f);
writeln (f,'------------------------------------------------------------');
writeln (f,'номер / пункт назначения / время отпр. / св / купе / плацк. ');
writeln (f,'------------------------------------------------------------');
for i:=1 to n do
writeln(f,a[i].numbertrain:5,a[i].destination:19,a[i].timeofdeparture_h:8,a[i].timeofdeparture_m:3,a[i].sv:8,a[i].compartment:7,a[i].plackart:8);
Close(f)
end;
//------------------------------------------------------------------------------------------
Procedure Read_data(Var a: tmas); //считывание информации
Var
i,j:Integer;
f:Text;
C:Char;
begin
Assign(f,'train_1.txt');
Reset(f);
readln(f);
readln(f);
readln(f);
for i:=1 to n do
begin
read(f,a[i].numbertrain);
repeat
read(f,C);
until C<>' ';
a[i].destination:=C;
repeat
read(f,C);
if C<>' ' then a[i].destination:=a[i].destination+C;
until C=' ';
readln(f,a[i].timeofdeparture_h,a[i].timeofdeparture_m,a[i].sv,a[i].compartment,a[i].plackart);
end;
Close(f)
end;
//------------------------------------------------------------------------------------------
Procedure Swap(Var k, l: traininfo); //метод пузырька
Var m:traininfo;
begin
m := k;
k := l;
l := m;
end;
// --------------------------------------------------------------------------
Procedure sortirovka; //процедура сортировки
var
x:traininfo;
i,j:Integer;
begin
for i:=1 to n-1 do
for j:=1 to n-i do
if train[j].destination>train[j+1].destination then
Swap(train[j],train[j+1]);
end;
//--------------------------------------------------------------------------------
Procedure search_train(a:tmas;destination:string;tm1,tm2:rea l); //поиск по заданным параметрам
var
i,S:Integer;
f:Text;
begin
Assign(f,'train_2.txt');
Append(f);
Writeln(f);
S:=0;
for i:=1 to n do
if (a[i].destination=destination) and
(a[i].timeofdeparture_h+a[i].timeofdeparture_m/100>=tm1) and
(a[i].timeofdeparture_h+a[i].timeofdeparture_m/100<=tm2) then
begin
Writeln(f,'номер поезда: ',a[i].numbertrain);
Writeln(f,'пункт назначения: ',a[i].destination);
Writeln(f,'время отправления: ',a[i].timeofdeparture_h,'-',a[i].timeofdeparture_m);
Writeln(f,'количество мест в св: ',a[i].sv) ;
Writeln(f,'количество мест в купе: ',a[i].compartment);
Writeln(f,'количество мест в плацкарте: ',a[i].plackart);
Writeln(f);
S:=S+1
end;
if S=0 then writeln(f,'таких поездов нет');
Close(f);
end;
procedure vvoddannuhtype;
var
s:string;
z:traininfo;
k:integer;
begin
Assign(f1,'train_2.txt');
Reset(f1);
Assign(f3,'train_3');
Rewrite(f3);
for i:=1 to 3 do readln(f1,s);
while not eof(f1) do
begin
readln(f1,s);
while pos(' ',s)>0 do
delete(s,pos(' ',s),1);
if s[length(s)]=' ' then delete(s,length(s),1);
val(copy(s,1,pos(' ',s)-1),z.numbertrain,k);
delete(s,1,pos(' ',s));
z.destination:=copy(s,1,pos(' ',s)-1);
delete(s,1,pos(' ',s));
val(copy(s,1,pos(' ',s)-1),z.timeofdeparture_h,k);
delete(s,1,pos(' ',s));
val(copy(s,1,pos(' ',s)-1),z.timeofdeparture_m,k);
delete(s,1,pos(' ',s));
val(copy(s,1,pos(' ',s)-1),z.sv,k);
delete(s,1,pos(' ',s));
val(copy(s,1,pos(' ',s)-1),z.compartment,k);
delete(s,1,pos(' ',s));
val(s,z.plackart,k);
write(f3,z);
end;
Close(f1);
close(f3);
end;

Procedure vuvoddannuhtype;
var z:traininfo;
begin
reset(f3);
writeln ('------------------------------------------------------------');
writeln ('номер/ пункт назначения / время отпр. / св /купе / плац. ');
writeln ('------------------------------------------------------------');
while not eof(f3) do
begin
read(f3,z);
writeln(z.numbertrain:5,z.destination:19,z.timeofd eparture_h:8,z.timeofdeparture_m:3,z.sv:8,z.compar tment:7,z.plackart:8);
end;
close(f3);
end;
begin
SetConsoleOutputCP(1251);
if FileExists('train_1.txt')then
begin
read_data(train);
assign(f,'train_1.txt');
reset(f);
while not eof(f) do
begin
readln(f,s);
writeln(s);
end;
close(f);
sortirovka;
vuvoddannuh(train);
Writeln('введи пункт назначения:');
Readln(destination);
writeln('введи период времени(формат ввода чч мм) с');
readln(t_h,t_m);
time1:=t_h+t_m/100;
writeln('по');
Readln(t_h,t_m);
time2:=t_h+t_m/100;
search_train(train,destination,time1,time2);
assign(f1,'train_2.txt');
reset(f1);
while not eof(f1) do
begin
readln(f1,s);
writeln(s)
end;
close(f1);
vvoddannuhtype;
vuvoddannuhtype
end
else vvoddannuh;

Writeln('Для выхода нажмите enter');
readln
end.
вот добавила эти процедуры.только запускается с ошибкой.помогите найти
gabriela007 вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070