Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые проекты » Завдання про транспортну систему. Підбір варіантів проїзду з урахуванням кол-ва пересадок, тривалості, в ...

Реферат Завдання про транспортну систему. Підбір варіантів проїзду з урахуванням кол-ва пересадок, тривалості, в ...





next: PFlight;

end;


Blank = record {Шаблон для пошуку шляху}

delay: Week;

BCity, ECity: CityCode;

Kind: array [WayKind] of boolean;

ReBoading: CityCode;

WayTime: Integer;

Cost: Longint;

Class: WClass;

end;


Link = ^ CityList; {Ланцюжок рейсів для проїзду від початку до кінця}

CityList = record {Інформація про проїзд між двома пунктами одним рейсом}

DDelay: Word;

waytime: word;

cost: mcost;

Bcity, Target: CityCode;

Flight: PFlight;

Last: Link;

end;


AnswerList = ^ IAnswer; {Список всіх можливих маршрутів прямування}

IAnswer = record

path: link;

reboard: citycode;

mincost, maxcost: longint;

waytime: word;

next: AnswerList;

end;


var Lanswer: AnswerList; {глобальна змінна - початок списку маршрутів}


{Додавання нового знайденого маршруту}

Procedure Answer (A: Link; cost: longint);

var P, Q: Link; d, s1, s2: word; W, PAnswer: answerlist; r: citycode;

function min (a: mcost): longint; {Мінімальна вартість по класах}

var i: integer; m: longint;

begin

m: = 1000000000;

for i: = 1 to Mclass do if (m> a [i]) and (a [i]> 0) then m: = a [i];

min: = m

end;

function max (a: mcost): longint; {Максимальна вартість по класах}

var i: integer; m: longint;

begin

m: = a [1];

for i: = 2 to Mclass do if m

max: = m

end;

begin

new (PAnswer);

Panswer ^. path: = nil;

P: = A;

s1: = 0; s2: = 0; {верхня і нижня межі ціни}

r: = 1; {кількість пересадок}

d: = 0; {час шляху}

Repeat

s1: = s1 + min (P ^. cost); {Підрахунок суми параметрів по рейсах у маршруті}

s2: = s2 + max (P ^. cost);

d: = d + P ^. ddelay + P ^. waytime;

P: = P ^. last; {Перехід до наступного рейсу у маршруті}

inc (r);

Until P = nil;

if s1 <= cost then begin {Якщо відповідає ціна}

P: = A;

Repeat

new (Q); {Збірка ланцюжка рейсів маршруту}

Q ^: = P ^;

Q ^. last: = Panswer ^. path;

Panswer ^. path: = Q;

P: = P ^. last; {Перехід до наступного рейсу у маршруті}

Until p = nil;

Panswer ^. mincost: = s1; Panswer ^. Maxcost: = s2; {Збереження сумарних цін і часу}

Panswer ^. waytime: = d; Panswer ^. reboard: = r; {І числа пересадок в елементі маршруту}

W: = LAnswer;

While (W ^. next <> nil) and ((W ^. Next) ^. Waytime

While (W ^. next <> nil) and ((W ^. Next) ^. Reboard

...


Назад | сторінка 5 з 13 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Команди налаштування, пошуку та усунення неполадок комутатора D-Link DES-30 ...
  • Реферат на тему: Облікова політика ТОО &Link Sys&
  • Реферат на тему: Опробування знімків Landsat Climate Data Record
  • Реферат на тему: Windows та Word
  • Реферат на тему: Концепція бізнес-моделі low-cost (авіакомпанії)