Код:
Program Perebor;
uses WinDos, WInCrt;
Const C = 4;
var A: array[1..C] of Integer;
P: array[1..C] of Integer;
X: array[1..C] of Integer;
I,J:Integer;
Procedure swp(N,S:Integer);
var T:Integer;
begin
T:=X[N];
X[N]:=X[N+S];
X[N+S]:=T;
For T:=1 to C do P[X[T]]:=T;
end;
begin
For I:=1 to C do
begin
a[i]:=1;
P[i]:=i;
X[i]:=i;
end;
Writeln ('Begin');
write ('X:');
for i:=1 to C do
write (X[i]);
writeln;
while a[C]=1 do
begin
for i:=1 to C do
case A[i] of
-1:if P[i]=1 then a[i]:=-a[i] else if X[P[i]-1]<X[P[i]] then a[i]:=-a[i] else begin swp(P[i],-1); break end;
1:if P[i]=C then a[i]:=-a[i] else if X[P[i]+1]<X[P[i]] then a[i]:=-a[i] else begin swp(P[i],+1); break end;
end; {Case}
If i=C then swp(P[i],+1);
write ('X:');
for i:=1 to C do
write (X[i]);
writeln;
end;
end.
__________________
Тот факт, что медуза выжила 650 миллионов лет без мозгов, даёт надежду многим.
Последний раз редактировалось Nadir Zaitov; 14.05.2009 в 21:52.
|