Показать сообщение отдельно
Старый 01.07.2012, 10:42   #1 (permalink)
virginia
Member
 
Регистрация: 29.10.2011
Сообщений: 42
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: -42
По умолчанию Pascal. Помогите найти ошибку

Код:
 {Создать массив(расписание движения),хранящий информацию о 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.
не работает поиск по указанным параметрам
virginia вне форума   Ответить с цитированием
Ads

Яндекс

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