program poezda; uses crt; type train=record nazv:string[20]; nom:string; time:string; end; var i:byte; trains:file of train; rab:train; flag:boolean; reis:string[30]; key:0..4; punn:string; procedure vvod; begin clrscr; with rab do begin write('Название пункта:'); readln(nazv); if nazv='9999' then exit; write('Номер рейса:'); readln(nom); write('Время отправки'); readln(time); end; end; procedure vivod; begin with rab do begin reis:=nazv+' '+nom+' '+time; writeln (nazv:10,nom:15,time:16); end; end; procedure form; {Ввод} begin rewrite(trains); i:=1; vvod; while rab.nazv<>'9999' do begin write (trains,rab); i:=i+1; vvod end; close(trains) end; procedure print; {Вывод} begin reset(trains); writeln('---------------------------------------------'); writeln('I Пункт I Номер I Время I'); writeln('---------------------------------------------'); while not eof (trains) do begin read(trains,rab); vivod; end; writeln('--------------------------------------------'); readkey; close(trains); end; procedure poisk; {поиск} var count: integer; begin write('Введите время ');readln(punn); reset(trains); count := 0; while not eof(trans) do begin read(trans, rab); writeln('-----------------------------------------------'); writeln(' Пункт I Номер I Время '); writeln('-----------------------------------------------'); if punn=rab.time then begin inc(count); writeln(' ',rab.nazv, ' ',rab.nom,' ', punn ) end end; if count = 0 then writeln ('Таких поездов нет'); writeln('----------------------------------------------'); readkey; close(trains) end; begin flag:=false; assign(trains,'Поезд'); repeat clrscr; writeln('Выберите пункт меню:'); writeln; writeln('1: сформировать массив'); writeln('2: вывод массива'); writeln('3: поиск записи'); writeln('0: выход'); readln (key); case key of 1:form; 2:print; 3:poisk; 0:flag:=true; end; until flag; end.