Найти максимальный элемент и среднее арифметическое отрицательных элементов - Pascal ABC
Формулировка задачи:
Задать одномерный массив вещественных чисел X(n), где n<=30.Найти максимальный элемент и среднее арифметическое отрицательных элементов. Найденный максимальный элемент поменять местами с последним элементом массива.
Массив задается рандомными числами в заданном диапазоне. Пожалуйста, нужно максимально просто, без наворотов.
Решение задачи: «Найти максимальный элемент и среднее арифметическое отрицательных элементов»
textual
Листинг программы
const MAX = 30; var i, n, nNeg, idMax: 0..MAX; a: Array[1..MAX] Of Real; sum, aRand, bRand: Real; begin Write('Input left random border: '); ReadLn(aRand); repeat Write('Input right random border: '); ReadLn(bRand); until (bRand > aRand); Write('Input n='); ReadLn(n); idMax := 1; sum := 0; nNeg := 0; Randomize; Write('Original array:'); for i := 1 to n do begin a[i] := Random * (bRand - aRand) + aRand; Write(' ', a[i]:0:2); if (a[i] < 0) then begin Inc(nNeg); sum := sum + a[i]; end; if (a[i] > a[idMax]) then idMax := i; end; WriteLn; Write('Negatives AVR='); if (nNeg > 0) then WriteLn((sum / nNeg):0:2) else WriteLn('Divide by zero.'); sum := a[n]; a[n] := a[idMax]; a[idMax] := sum; Write('Modified array:'); for i := 1 to n do Write(' ', a[i]:0:2); end.
Объяснение кода листинга программы
- В начале кода объявляются необходимые переменные: MAX, i, n, nNeg, idMax, a, sum, aRand, bRand.
- Пользователю предлагается ввести границы случайных чисел для левой и правой части массива. Это делается до тех пор, пока левая граница не станет больше или равной правой.
- Затем пользователю предлагается ввести размер массива n.
- Инициализируются переменные idMax, sum и nNeg. Переменная idMax устанавливается равной 1, sum - сумме всех элементов массива, nNeg - количеству отрицательных элементов.
- В цикле for перебираются элементы массива от 1 до n. Для каждого элемента выполняется следующее:
- a[i] вычисляется как случайное число в диапазоне от aRand до bRand (включительно), умноженное на разницу между этими значениями и затем прибавленное к aRand.
- Если a[i] меньше нуля, то увеличивается счетчик nNeg и сумма sum увеличивается на a[i].
- Если a[i] больше a[idMax], то значение idMax устанавливается равным i.
- После завершения цикла выводится сообщение о том, что наибольший элемент равен i (idMax).
- Если nNeg больше 0, то выводится среднее арифметическое отрицательных элементов, которое вычисляется как сумма sum, деленная на nNeg.
- Затем значение a[n] заменяется на значение a[idMax], а значение a[idMax] заменяется на сумму sum.
- Выводится итоговый массив с элементами, выведенными через пробел.
- Конец программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д