Напишите программу, которая заполняет массив случайными числами в диапазоне [a, b], выводит его на экран, а затем выполняет реверс отдельно первой и второй половин массива. при изменении количества элементов в массиве программа должна работать правильно без дополнительных изменений. , с объяснениями и комментариями.
// Внимание! Если программа не работает, обновите версию!
begin
var (n,a,b):=ReadInteger3('Введите размер массива и границы диапазона:');
var M:=ArrRandom(n,a,b); M.Println;
var d:=n div 2; // середина массива
M:=(M[:d].Reverse+M[d:].Reverse).ToArray; M.Println
end.
Пример
Введите размер массива и границы диапазона: 16 10 99
68 50 17 92 62 69 18 16 36 83 27 68 98 92 44 12
16 18 69 62 92 17 50 68 12 44 92 98 68 27 83 36
//Версия 3.3. сборка 1583 (25.11.2017)
begin
writeln('Введите диапазон:');
write('От:'); var a:= ReadInteger; // Ввод а с целым типом
write('До:'); var b:= ReadInteger; // Ввод б с целым типом
var m:array[1..10] of integer; // описание массива
writeln('Начальный массив: ');
for var i:=1 to 10 do // генерация и вывод массива
begin
m[i]:=random(a,b);
write(m[i]:4);
end;
writeln;
for var i:=1 to 2 do // переворот первой части обмена 1 с 5, 2 с 4)
begin
var t:=m[i];
m[i]:=m[6-i];
m[6-i]:=t;
end;
for var i:=6 to 7 do // переворот второй части обмена 6 с 10, 7 с 9)
begin
var t:=m[i];
m[i]:=m[16-i];
m[16-i]:=t;
end;
writeln('Измененный массив:'); // вывод измененного массива
for var i:=1 to 10 do
write(m[i]:4);
end.