ося елементи списку щодо
If A [j]
Begin лівої частини по елементу, які стоять не на
w: = A [i]; A [i]: = A [j]; A [j]: = w; своєму місці. Міняємо їх місцями}
end;
Solve (m, j-1); Solve (i +1, t); {шукаємо далі бар'єрний елемент, спочатку в правій
end; частини списку, потім в лівій}
begin
clrscr;
Init ('A: alfa.txt');
Print;
WriteLn;
Solve (1, col);
Print;
readkey;
end.
В
9 Єгер.
Program Eger;
uses crt;
Const n = 4;
var A, P, D: array [1 .. n, 1 .. n] of Integer; {A - матриця суміжності; D - масив найкоротших шляхів, де D [i, j] - мінімальний час, який буде потрібно, щоб дістатися зі станції i до станції j; P - масив, елементами якого є номери станцій, які будуть складати шлях з мінімальним часом}
k, m: integer; {початкова і кінцева станції руху}
procedure Init (z: string); {ініціалізація даних}
var i, j: integer;
f: text;
begin
Assign (f, z);
Reset (f);
For i: = 1 to n do
begin
For j: = 1 to n do
Read (f, A [i, j]);
ReadLn (f);
end;
Close (f);
end;
Procedure Solve;
var i, j, k: integer;
begin
For i: = 1 to n do
For j: = 1 to n do
begin
D [i, j]: = A [i, j];
P [i, j]: = i;
end;
for k: = 1 to n do begin
for i: = 1 to n do
for j: = 1 to n do
If D [i, j]> D [i, k] + D [k, j] then begin {визначення шляху з мінімальним
D [i, j]: = D [i, k] + D [k, j]; часом}
P [i, j]: = k; {заносимо номер станції, яка буде
end; передостанній, відвіданою напарником}
end;
end;
procedure Way (i, j: integer); {рекурсивна процедура, виводить
begin послідовність станцій, які відвідає
If P [i, j] <> i then begin напарник, відштовхуючись від даних,
Way (i, P [i, j]); занесених в масив P}
Write (P [i, j]: 2, '->');
Way (P [i, j], j);
end
end;
begin
clrscr;
Init ('A: eger.txt');
Solve;
Writeln ('Введіть з якої станції і в яку будемо шукати шлях: ');
Readln (k, m);
Write (k: 2, '->');
Way (k, m);
WriteLn (m: 2);
WriteLn ('Час шляху =', D [k, m]);
readkey;
end.
10 Гра В«Знайди другаВ».
uses crt;
Const n = 20;
type mas = array [1 .. n] of Integer;
var A: mas;
X, b: integer;
procedure Init (z: string);
var i: integer;
f: text;
begin
Assign (f, z);
Reset (f);