Заполнить массив из 12 элементов случайными числами в интервале [-12..12] и выполнить реверс для каждой трети массива. пример: исходный массив: 4 -5 3 10 -4 -6 8 -10 1 0 5 7 результат: 10 3 -5 4 -10 8 -6 -4 7 5 0 1 есть готовая программа. объясните что да как. const n=12; var a: array[1..n] of integer; i,k,x: integer; begin randomize; writeln('исходный массив'); for i: =1 to n do begin a[i]: =-12+random(25); write(a[i]: 4); end; writeln; k: =n div 3; for i: =1 to k div 2 do begin x: =a[i]; a[i]: =a[k-i+1]; a[k-i+1]: =x; x: =a[k+i]; a[k+i]: =a[2*k-i+1]; a[2*k-i+1]: =x; x: =a[2*k+i]; a[2*k+i]: =a[n-i+1]; a[n-i+1]: =x end; writeln('инверсия третей массива'); for i: =1 to n do write(a[i]: 4); end.

Aleks367783 Aleks367783    1   22.07.2019 05:30    3

Ответы
Jackichan89 Jackichan89  23.09.2020 14:27
// PascalABC.NET 3.1, сборка 1200 от 13.03.2016
begin
  var a:=ArrRandom(12,-12,12); a.Println;
  var b:=a.Batch(a.Length div 3).Select(x->x.Reverse);
  var k:=0;
  foreach var e1 in b do
    foreach var e2 in e1 do begin a[k]:=e2; Inc(k) end;
  a.Println
end.

Тестовое решение:
-7 -9 8 -11 -5 -3 -2 6 11 -7 4 -6
-11 8 -9 -7 6 -2 -3 -5 -6 4 -7 11
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика