Найти максимальный элемент и среднее арифметическое отрицательных элементов - Pascal ABC

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

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

Задать одномерный массив вещественных чисел X(n), где n<=30.Найти максимальный элемент и среднее арифметическое отрицательных элементов. Найденный максимальный элемент поменять местами с последним элементом массива. Массив задается рандомными числами в заданном диапазоне. Пожалуйста, нужно максимально просто, без наворотов.

Решение задачи: «Найти максимальный элемент и среднее арифметическое отрицательных элементов»

textual
Листинг программы
  1. const
  2.     MAX = 30;
  3. var
  4.     i, n, nNeg, idMax: 0..MAX;
  5.     a: Array[1..MAX] Of Real;
  6.     sum, aRand, bRand: Real;
  7. begin
  8.     Write('Input left random border: '); ReadLn(aRand);
  9.     repeat
  10.         Write('Input right random border: '); ReadLn(bRand);
  11.     until (bRand > aRand);
  12.     Write('Input n='); ReadLn(n);
  13.     idMax := 1; sum := 0; nNeg := 0;
  14.     Randomize; Write('Original array:');
  15.     for i := 1 to n do
  16.     begin
  17.         a[i] := Random * (bRand - aRand) + aRand;
  18.         Write(' ', a[i]:0:2);
  19.         if (a[i] < 0)
  20.         then
  21.         begin
  22.             Inc(nNeg);
  23.             sum := sum + a[i];
  24.         end;
  25.         if (a[i] > a[idMax])
  26.         then
  27.             idMax := i;
  28.     end;
  29.     WriteLn; Write('Negatives AVR=');
  30.     if (nNeg > 0)
  31.     then
  32.         WriteLn((sum / nNeg):0:2)
  33.     else
  34.         WriteLn('Divide by zero.');
  35.     sum := a[n];
  36.     a[n] := a[idMax];
  37.     a[idMax] := sum;
  38.     Write('Modified array:');
  39.     for i := 1 to n do
  40.         Write(' ', a[i]:0:2);
  41. end.

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

  1. В начале кода объявляются необходимые переменные: MAX, i, n, nNeg, idMax, a, sum, aRand, bRand.
  2. Пользователю предлагается ввести границы случайных чисел для левой и правой части массива. Это делается до тех пор, пока левая граница не станет больше или равной правой.
  3. Затем пользователю предлагается ввести размер массива n.
  4. Инициализируются переменные idMax, sum и nNeg. Переменная idMax устанавливается равной 1, sum - сумме всех элементов массива, nNeg - количеству отрицательных элементов.
  5. В цикле for перебираются элементы массива от 1 до n. Для каждого элемента выполняется следующее:
    • a[i] вычисляется как случайное число в диапазоне от aRand до bRand (включительно), умноженное на разницу между этими значениями и затем прибавленное к aRand.
    • Если a[i] меньше нуля, то увеличивается счетчик nNeg и сумма sum увеличивается на a[i].
    • Если a[i] больше a[idMax], то значение idMax устанавливается равным i.
  6. После завершения цикла выводится сообщение о том, что наибольший элемент равен i (idMax).
  7. Если nNeg больше 0, то выводится среднее арифметическое отрицательных элементов, которое вычисляется как сумма sum, деленная на nNeg.
  8. Затем значение a[n] заменяется на значение a[idMax], а значение a[idMax] заменяется на сумму sum.
  9. Выводится итоговый массив с элементами, выведенными через пробел.
  10. Конец программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

6   голосов , оценка 4.333 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы