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

Реферат Розробка системи завдань (алгоритми-програми) з дискретної математики





>

Program Robots;

Const max = 50;

Type Sset = Set of 1 .. max;

Mas = array [1 .. max] of Sset;

Var A, B: Mas;

{A - матриця досяжних, B [i] - які роботи можуть бути в i пункті}

SOne, STwo: SSet; {SOne - роботи, які їдуть зі швидкістю 1, STwo - роботи, які їдуть зі швидкістю 2}

N, M: integer; {N - число пунктів, M - число роботів}


Procedure Init; {ініціалізація вхідних даних}

Var K, i, FrP, ToP: integer;

Begin

FillChar (A, SizeOf (A), 0);

Write ('Кількість пунктів:'); ReadLn (N);

Write ('Кількість доріг:'); ReadLn (K);

For i: = 1 to K do begin

writeLn ('Введіть пункти, які з'єднує дорога № ', i);

ReadLn (FrP, ToP);

Include (A [FrP], ToP);

Include (A [ToP], FrP);

End;

Write ('Кількість роботів:'); ReadLn (M);

For i: = 1 to M do Begin

Write ('Пункт, де знаходиться робот № ', i,': '); ReadLn (K);

Include (B [k], i);

Write ('швидкість робота №', i, ':');

ReadLn (k);

If K = 1 then Include (SOne, i) Else Include (STwo, i);

End;

End;

Function ProvCanMet: Boolean;

Var i: integer;

Begin

i: = 1;

While (I <= N) and (B [i] <> [1 .. M]) do Inc (i);

ProvCanMet: = i <= N;

End;


Function InTwoNear: Boolean;

Var i, j: integer;

Begin

i: = 1; j: = N +1;

while (i N) do begin

j: = i +1;

while (j <= N) and Not ((j in A [i]) and (B [i] + B [j] = [1 .. M])) do Inc (j);

Inc (i);

End;

InTwoNear: = j <= N;

End;


Function AddIfCan (mode: integer; S: Sset): Boolean;

Var i, j: integer;

C: mas;

Begin

AddIfCan: = false; {S - безліч роботів, які їдуть}

If mode = 0 then

For i: = 1 to N do C [i]: = B [i]-S

Else C: = B;

For i: = 1 to N do

For j: = 1 to N do

If (i <> j) and (j in A [i]) and (C [i] * B [j] * S <> B [j] * S) Then Begin

AddIfCan: = true;

C [i]: = C [i] + B [j] * S;

End;

B: = C;

End;


Function InTwoForC: byte;

Var i, j: integer;

Begin

i: = 1; j: = N +1;

while (i N) do begin

j: = i +1;

While (j <= N) and (not (j in A [i]) or (B [i] + B [j] <> [1 .. m]) or Not ((SOne = []) or (STwo = []) or ((B [i] * SOne = SOne) and (B [j] * STwo = STwo)) or (B [j] * SOne = SOne) and (B [i] * STwo = STwo))) do Inc (j);

Inc (i);

End;

If j> N Then InTwoForC: = 0 Else

If STwo = [] Then InTwoForC: = 1 Else

If SOne = [] Then InTwoForC: = 2 Else

InTwoForC: = 3;

End;


Procedure SolveC;

Var ti...


Назад | сторінка 20 з 23 | Наступна сторінка





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

  • Реферат на тему: Creation of control system by a personnel how to begin with a zero
  • Реферат на тему: Зміст і методика роботи по розділу "Кількість і рахунок" в дошкіл ...
  • Реферат на тему: Докладне вивчення роботи фінансової функції ДАТАКУПОНДО, яка повертає число ...
  • Реферат на тему: Вплив точності виготовлення заготовки деталі &Кронштейн Ж7-УДН-20в.00.025& ...
  • Реферат на тему: Стрігальниє апарати для стрижки овець. Обладнання та організація роботи Ст ...