Напишите программу, которая заполняет массив случайными числами в диапазоне [a, b], выводит его на экран, а затем выполняет реверс отдельно первой и второй половин массива. при изменении количества элементов в массиве программа должна работать правильно без дополнительных изменений. , с объяснениями и комментариями.

bonusalixova bonusalixova    3   12.09.2019 17:30    0

Ответы
Денис56545 Денис56545  26.08.2020 19:46
// PascalABC.NET 3.3, сборка 1590 от 03.12.2017
// Внимание! Если программа не работает, обновите версию!

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
ПОКАЗАТЬ ОТВЕТЫ
оксана731 оксана731  26.08.2020 19:46
//PascalABC.NET
//Версия 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.
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика