Заменить положительные элементы средним арифметическим всех элементов массива - Turbo Pascal
Формулировка задачи:
Дан массив. Если элементы выше ноля надо заменить их средним арифметическим значением всех элементах массива.
Решение задачи: «Заменить положительные элементы средним арифметическим всех элементов массива»
textual
Листинг программы
var
ar: Array[Byte] Of Double;
i, n: Byte;
avr: Double;
begin
Randomize;
repeat
Write('Input n (1..255): ');
ReadLn(n);
until (n > 0);
avr := 0; Write('Original array:');
for i := 0 to n - 1 do
begin
ar[i] := Random * 198 - 99;
Write(ar[i]:7:2);
avr := avr + ar[i];
end;
avr := avr / n; WriteLn;
WriteLn('AVR=', avr:0:2);
Write('Modified array:');
for i := 0 to n - 1 do
begin
if (ar[i] > 0)
then
ar[i] := avr;
Write(ar[i]:7:2);
end;
end.
Объяснение кода листинга программы
- Создается переменная
arтипаArray[Byte] Of Double, которая будет использоваться для хранения массива чисел. - Затем создаются три переменные
i,nиavr. Переменнаяiбудет использоваться для перебора элементов массива,n- для получения количества элементов в массиве, аavr- для хранения среднего арифметического. - В цикле
repeatсчитывается количествоnот пользователя. Условиеn > 0используется для предотвращения бесконечного цикла, если пользователь введет ноль. - Переменная
avrинициализируется значением 0. Она будет использоваться для хранения суммы всех элементов массива до их изменения. - Выводится исходный массив. Для каждого элемента в массиве выводится его значение с помощью функции
Write(ar[i]:7:2), гдеi- это индекс текущего элемента. - Затем вычисляется среднее арифметическое
avrпутем деления суммы всех элементов массива на количество элементовn. - Выводится сообщение с значением
avr. - В следующем цикле
forперебираются элементы массиваar. - Если текущий элемент
ar[i]больше нуля, то он заменяется на среднее арифметическоеavr. - Значение текущего элемента выводится с помощью функции
Write(ar[i]:7:2). - Переменная
avrувеличивается на сумму текущего элемента и предыдущего среднего арифметического. - Цикл завершается, когда достигается конец массива.
- Выводится сообщение с измененным массивом.
- Код завершается.