с заданием по информатике,вот условие
Дана последовательность натуральных чисел 1, 2, 3, ..., N (1 ≤ N ≤ 1000). Необходимо сначала расположить в обратном порядке часть этой последовательности от элемента с номером A до элемента с номером B, а затем от C до D (A < B; C < D; 1 ≤ A, B, C, D ≤ N).
А вот мой код,нужно дописать код программы,а то у меня не получается
var
x: array[1..1000]of integer;
i,n,a,b,c,d,k: integer;
begin
read(n,a,b,c,d);
for i := 1 to n do
x[i]:=i;
for i := 1 to n do
write(x[i],' ');
writeln;
n:=a+b+1;
for i:= a to n div 2-1 do
begin
k:=x[i];
x[i]:=x[b-i+1];
x[b-i+1]:=k
end;
for i := 1 to n do
write(x[i],' ');
end.
{$APPTYPE CONSOLE}
uses
SysUtils;
var
x:array[1..1000] of word;
n,i,a,b,c,d:word;
procedure replace(a,b:word);
var
i,n,tmp:word;
begin
n:=(b-a+1) div 2;
i:=0;
while i<n do
begin
tmp:=x[i+a];
x[i+a]:=x[b-i];
x[b-i]:=tmp;
inc(i);
end;
end;
Begin
read(n,a,b,c,d);
for i:=1 to n do
x[i]:=i;
replace(a,b);
replace(c,d);
for i:=1 to n do
write(x[i],' ');
readln;
readln;
end.
Объяснение: