Задача про транспортную систему. Подбор вариантов проезда с учетом кол-ва пересадок, длительности, видов транспорта (самолет, авто, поезд, водн.) — страница 7

  • Просмотров 4664
  • Скачиваний 359
  • Размер файла 38
    Кб

отправление:'); DTInput(a); delay:=a.Dweek*1440+a.time; Write('Максимальное время пути (сутки):'); readln(w); waytime:=round(1440*w); until waytime>0; write('Максимальная стоимость ... '); ReadLn(cost); write('Максимальное число пересадок ... '); readln(reboading); write('Тип перевозки (авиа,ж.д.,авто,водн.) ... '); readln(st); if st='' then for i:=1 to 4 do kind[i]:=true else for i:=1 to 4 do kind[i]:=(st[i]='Y') or (st[i]='y') or (st[i]='X') or (st[i]='x'); write('Допустимые классы 123456 ... '); readln(st); if st='' then for i:=1 to 4 do class[i]:=true else for i:=1 to 4 do class[i]:=(st[i]='Y') or (st[i]='y') or (st[i]='X') or (st[i]='x'); end; end;

procedure outres(p:Answerlist; a:dat); var k:word; q:link; b:dat; i:citycode; y:pway; c:byte; begin k:=0; while P<>nil do begin inc(k); { write(p^.path^.bcity);} Q:=P^.path; b:=a; while Q<>nil do begin write(city[q^.bcity].name); Writeln(' <',q^.flight^.company,q^.Flight^.Number,'> ',city[Q^.Target].name); newdat(b,Q^.ddelay,b); write('Отправление: '); writedat(b); newdat(b,Q^.waytime,b); write(' Прибытие: '); writedat(b); writeln; Q:=Q^.last; end; newdat(a,p^.waytime,b); writeln (' цена: ',P^.mincost,' - ',p^.maxcost); readln(st); if st='p' then begin graphout(city); q:=p^.path; c:=2; while q<>nil do begin i:=1; y:=q^.flight^.path; while y^.way[i].city<>q^.bcity do begin i:=(i mod 4)+1; if i=1 then y:=y^.next; end;

setcolor(c); moveto(4*city[q^.bcity].x,380-3*city[q^.bcity].y); repeat i:=(i mod 4)+1; if i=1 then y:=y^.next; lineto(4*city[y^.way[i].city].x,380-3*city[y^.way[i].city].y); until (y^.way[i].city=q^.target); Q:=Q^.last; inc(c); end; repeat until keypressed; CloseGraph; end; P:=P^.next; end; if k=0 then write('При данных условиях добраться нельзя') else writeln('Всего ',k,' маршшрутов'); end; Begin List:=Load(nil,'trafic',city); graphout(city); repeat until keypressed; closegraph; Input(pattern,a); new(lanswer); lanswer^.next:=nil; Search(List,pattern,nil); outres(Lanswer^.next,a); end. 6.    В качестве транспортной системы бала взята система, состоящая из 23

городов, соединенных 19 прямыми и таким же числом обратных рейсами. Название городов и перевозчиков вымышленные. Рейсы были разработаны так, что имеется несколько крупных транспортных развязок: Palace of Dream, Diamond World, Golden River, Seaside City; и несколько «удаленных» городов: Far Star City, Oil City, North Star City. Разные рейсы отправляются от 3 до 18 раз в неделю. 1. Общий тест Начальный город ... Tropic Port Конечный город ... Beatiful Дата отправление: Дата ... 8.5.1998 Пт Время

... 0:0 Максимальное время пути (сутки):3 Максимальная стоимость ... 200 Максимальное число пересадок ... 3 Тип перевозки (авиа,ж.д.,авто,водн.) ... Допустимые классы 123456 ... Tropic Port <GoldenAirBridge004> Palace Of The Dream Отправление: 14:29 8.5.1998 Пт Прибытие: 19:14 8.5.1998 Пт Palace Of The Dream <GoldenAirBridge009> Diamond World Отправление: 2:15 9.5.1998 Пт Прибытие: 5:15 9.5.1998 Пт Diamond World <DiamondAirlines003> Beatiful Отправление: 17:20 9.5.1998 Пт Прибытие: 19:20 9.5.1998 Пт цена: 195 – 250 Tropic Port <GoldenAirBridge004> Lakes Land

Отправление: 14:29 8.5.1998 Пт Прибытие: 16:29 8.5.1998 Пт Lakes Land <DiamondAirlines006> Diamond World Отправление: 0:25 9.5.1998 Пт Прибытие: 3:25 9.5.1998 Пт Diamond World <DiamondAirlines003> Beatiful Отправление: 17:20 9.5.1998 Пт Прибытие: 19:20 9.5.1998 Пт цена: 165 - 195 Tropic Port <DeepWater02> Oil City Отправление: 12:0 8.5.1998 Пт Прибытие: 4:40 9.5.1998 Пт Oil City <TransExpress002> Beatiful Отправление: 12:0 9.5.1998 Пт Прибытие: 16:10 10.5.1998 Пт цена: 75 – 105 2. Тест с «урезанием бюджета» Начальный город ... Tropic Port Конечный город ... Beatiful Дата