В каждом табличном процессоре имеется целый набор функций, применяемых к диапазонам. Это суммирование чисел (СУММ), входящих в диапазон, вычисление среднего значения (СРЗНАЧ), нахождение максимального (МАКС) и минимального (МИН) значения и некоторые другие. Такие функции называются статистическими.
begin writeln('Введите ', n, ' положительных элементов массива Х'); amax := -1E20; k := 0; for i := 1 to n do begin read(x[i]); {защита от дурака} if x[i] < 0 then x[i] := abs(x[i]) else if x[i] = 0 then x[i] := 1; {сразу же находим значения элементов массива у и заодно нужный максимум} y[i] := 0.5 * ln(x[i]); if (y[i]>=3) and ((Trunc(y[i]) mod 3) = 0) and (amax<y[i]) then begin amax := y[i]; k := i end end; writeln(' i Xi Yi'); writeln(''); for i := 1 to n do writeln(i:3,x[i]:12:4, y[i]:12:4); writeln; writeln('Искомый индекс:', k) end.
Тестовое решение:
Введите 20 положительных элементов массива Х 365 7236 1243.4 1823 4.8 273 97.54 17000 42334 13443 323674 6787.23 100000 543433 17422.74732 19534.3 212 5454 7354.8 3153.67 i Xi Yi
var a: array[1..n, 1..n] of integer; i, j, m, nmax, nmin, jmax, jmin: integer;
begin Randomize; writeln('Исходный массив'); for i := 1 to n do begin nmax := -100; nmin := 100; for j := 1 to n do begin a[i, j] := Random(24) - 8; if nmax < a[i, j] then begin nmax := a[i, j]; jmax := j end; if nmin > a[i, j] then begin nmin := a[i, j]; jmin := j end; write(a[i, j]:4) end; writeln; a[i, jmax] := nmin; a[i, jmin] := nmax end; writeln(#13#10, 'Результирующий массив'); for i := 1 to n do begin for j := 1 to n do write(a[i, j]:4); writeln end end.