var a: array[1..nn] of integer; b: array[1..10] of integer; { для номеров минимальных четных } n, i, km, min, max, t1, t2: integer;
begin Randomize; Write('Укажите количество элементов массива (не более 50): '); Readln(n); Writeln('Исходный массив'); for i := 1 to n do begin a[i] := Random(76) - 43; Write(a[i]:4); end; Writeln; Writeln('1. Массив со сдвинутыми влево на 2 элементами'); t1 := a[1]; t2 := a[2]; for i := 1 to n - 2 do begin a[i] := a[i + 2]; Write(a[i]:4); end; a[n - 1] := t1; a[n] := t2; Writeln(a[n - 1]:4, a[n]:4); Writeln('2. Минимальные четные элементы массива'); min := 100; for i := 1 to n do if (i mod 2 = 0) then if min > a[i] then begin min := a[i]; km := 1; b[km] := i end else if min = a[i] then begin km := km + 1; b[km] := i end; Write('Значение: ', min, ', индексы:'); for i := 1 to km do Write(b[i]:3); Writeln; Writeln('3. Поменять местами максимальный и последний элементы массива'); max := -100; for i := 1 to n do if max < a[i] then begin max := a[i]; b[1] := i end; t1 := a[b[1]]; a[b[1]] := a[n]; a[n] := t1; for i := 1 to n do Write(a[i]:4); Writeln; Writeln('4. Найти среднее арифметическое элементов массива'); t1 := 0; for i := 1 to n do t1 := t1 + a[i]; Writeln('Среднее арифметическое равно ', t1 / n) end.
Тестовое решение: Укажите количество элементов массива (не более 50): 30 Исходный массив 31 -41 -18 -42 -15 -10 -8 -18 -30 21 -6 -43 -32 -18 -30 26 -37 20 29 18 26 21 29 22 -23 -43 29 30 -41 -9 1. Массив со сдвинутыми влево на 2 элементами -18 -42 -15 -10 -8 -18 -30 21 -6 -43 -32 -18 -30 26 -37 20 29 18 26 21 29 22 -23 -43 29 30 -41 -9 31 -41 2. Минимальные четные элементы массива Значение: -43, индексы: 10 24 3. Поменять местами максимальный и последний элементы массива -18 -42 -15 -10 -8 -18 -30 21 -6 -43 -32 -18 -30 26 -37 20 29 18 26 21 29 22 -23 -43 29 30 -41 -9 -41 31 4. Найти среднее арифметическое элементов массива Среднее арифметическое равно -5.4
//PascalABC.Net 3.0, сборка 1064 type IntArray = array of integer;
var rows, cols: integer; M: array of IntArray;
begin Write('Количество строк и столбцов матрицы: '); Read(rows, cols); var Avg: array of double := new double[cols]; M := new IntArray[rows]; SetLength(Avg, cols); for var i := 0 to rows - 1 do begin M[i] := ArrRandom(cols, -25, 25); M[i].Println(#9) end; for var j := 0 to cols - 1 do Avg[j] := Range(0, rows - 1).Select(x -> M[x, j]).Average; Writeln('Наименьшее среднее по столбцам равно ', Avg.Min) end.