с заданием по информатике,вот условие
Дана последовательность натуральных чисел 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.

kos2008 kos2008    1   16.05.2020 23:30    0

Ответы
tugatimu9876 tugatimu9876  14.10.2020 20:57

{$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.

Объяснение:

ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика