Дан массив A(N, M). Найти среднее арифметическое элементов находящихся между max и min элементов массива - Turbo Pascal

Узнай цену своей работы

Формулировка задачи:

Дан массив A(N, M). Найти среднее арифметическое элементов находящихся между max и min элементов (или min и max элементами) массива. При этом, значения min и max элементов в среднее арифметическое не включаются.

Решение задачи: «Дан массив A(N, M). Найти среднее арифметическое элементов находящихся между max и min элементов массива»

textual
Листинг программы
const
  N = 3; M = 4;
  a: array[1.. N, 1.. M] of integer =
  ((2, 3, 4, 5),
   (0, 3, 4, 5),
   (7, 9, 1, 1));
 
var
  i, j, k: integer;
  s: real;
  imin, imax: integer;
 
begin
  imin := 0; imax := 0;
  for i := 1 to n do
    for j := 1 to m do
    begin
      if a[imin div M + 1, imin mod M + 1] > a[i, j] then
        imin := pred(i) * M + pred(j);
      if a[imax div M + 1, imax mod M + 1] < a[i, j] then
        imax := pred(i) * M + pred(j);
    end;
  
  k := abs(imin - imax);
  if k > 1 then
  begin
    s := 0;
    for i := ((imin + imax - k) div 2) + 1 to
             ((imin + imax + k) div 2) - 1 do
      s := s + a[i div M + 1, i mod M + 1];
    writeln('Среднее = ', s / (k - 1):0:3);
  end
  else
    writeln('Между минимумом и максимумом нет элементов')  
end.

Объяснение кода листинга программы

Данный код написан на языке Turbo Pascal и решает задачу поиска среднего арифметического элементов массива, находящихся между максимальным и минимальным элементами. В начале кода объявляются необходимые переменные: N, M, a, i, j, k, s, imin и imax. Затем происходит инициализация переменных: imin устанавливается равным 0, а imax - равным 0. Далее, происходит поиск минимального и максимального элементов массива с помощью циклов for. После этого вычисляется разница между минимальным и максимальным элементами, и если она больше 1, то начинается следующий блок кода. В этом блоке происходит суммирование элементов массива, находящихся между минимальным и максимальным элементами. Затем, вычисляется среднее арифметическое путем деления суммы на разницу между максимальным и минимальным элементами. Если разница между минимальным и максимальным элементами меньше или равна 1, то выводится сообщение о том, что между минимальным и максимальным элементами нет элементов. В конце кода выводится среднее арифметическое на экран.

Оцени полезность:

14   голосов , оценка 4.143 из 5
Похожие ответы