3. Задан одномерный массив из четного количества элементов. Поменяйте местами его «половинки».
Чтобы поменять местами две «половинки» массива, нам достаточно пройтись в цикле только по половине массива, перемещая i
-й элемент на позицию n div 2 + i
. Т.е. если в массиве 4 элемента, то первый элемент мы должны переместить на позицию 3 (4 / 2 + 1 = 3), а 3-й — на первую. Объявим переменнуые buf
, которая будет временно хранить элемент массива при его перемещении, и pol
, в которую запишем количество элементов массива, делённое на 2 — n div 2
.
var a: array[1..20] of integer;
n, buf, pol: integer;
begin
write('Количество n =');
readln(n);
if n mod 2 <> 0 then
writeln('n должно быть чётным числом')
else
begin
writeln('Элементы массива');
for var i := 1 to n do
read(a[i]);
pol := n div 2;
for var i := 1 to pol do
begin
buf := a[i];
a[i] := a[pol + i];
a[pol + i] := buf;
end;
writeln('Преобразованный массив');
for var i := 1 to n do
write(a[i], ' ');
end;
end.