Найти максимальный элемент и среднее арифметическое отрицательных элементов - 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.
- Выводится итоговый массив с элементами, выведенными через пробел.
- Конец программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д