Заменить положительные элементы средним арифметическим всех элементов массива - 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.

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

  1. Создается переменная ar типа Array[Byte] Of Double, которая будет использоваться для хранения массива чисел.
  2. Затем создаются три переменные i, n и avr. Переменная i будет использоваться для перебора элементов массива, n - для получения количества элементов в массиве, а avr - для хранения среднего арифметического.
  3. В цикле repeat считывается количество n от пользователя. Условие n > 0 используется для предотвращения бесконечного цикла, если пользователь введет ноль.
  4. Переменная avr инициализируется значением 0. Она будет использоваться для хранения суммы всех элементов массива до их изменения.
  5. Выводится исходный массив. Для каждого элемента в массиве выводится его значение с помощью функции Write(ar[i]:7:2), где i - это индекс текущего элемента.
  6. Затем вычисляется среднее арифметическое avr путем деления суммы всех элементов массива на количество элементов n.
  7. Выводится сообщение с значением avr.
  8. В следующем цикле for перебираются элементы массива ar.
  9. Если текущий элемент ar[i] больше нуля, то он заменяется на среднее арифметическое avr.
  10. Значение текущего элемента выводится с помощью функции Write(ar[i]:7:2).
  11. Переменная avr увеличивается на сумму текущего элемента и предыдущего среднего арифметического.
  12. Цикл завершается, когда достигается конец массива.
  13. Выводится сообщение с измененным массивом.
  14. Код завершается.

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

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