Вычислить среднегеометрическое значение нечетных по номеру элементов первой половины массива - Pascal

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

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

Дан одномерный массив из 39 элементов. 1.. Вычислить среднегеометрическое значение нечетных по номеру элементов первой половины массива. 2.. Упорядочить положительные элементы массива по возрастанию.

Решение задачи: «Вычислить среднегеометрическое значение нечетных по номеру элементов первой половины массива»

textual
Листинг программы
{$MODE TP}
const
    nMax = 39;
type
    TSize = 0..nMax - 1;
var
    ar: Array[TSize] Of ShortInt;
    i, j: TSize;
    mult: Integer;
    temp: ShortInt;
begin
    Randomize(); mult := 1;
    Write('Original array:');
    for i := Low(TSize) to High(TSize) do
    begin
        ar[i] := Random(199) - 99;
        if (Not Odd(i))
        then
            mult := mult * ar[i];
        Write(ar[i]:4);
    end;
    WriteLn; Write('Geometric mean: ');
    if (mult > 0)
    then
        WriteLn(Exp(Ln(mult) / ((nMax + 1) div 2)):0:4)
    else
        if (mult < 0)
        then
            WriteLn(-Exp(Ln(Abs(mult)) / ((nMax + 1) div 2)):0:4) //хотя математически неверно сие
        else
            WriteLn(0);
    for i := Low(TSize) to High(TSize) - 1 do
        for j := i + 1 to High(TSize) do
            if ((ar[i] > 0) And (ar[j] > 0) And (ar[i] > ar[j]))
            then
            begin
                temp := ar[i];
                ar[i] := ar[j];
                ar[j] := temp;
            end;
    Write('Sorted array:');
    for i := Low(TSize) to High(TSize) do
        Write(ar[i]:4);
end.

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

  1. Объявляется константа nMax со значением 39.
  2. Объявляется тип TSize как диапазон от 0 до nMax - 1.
  3. Объявляются переменные:
    • ar как массив типа TSize элементов типа ShortInt,
    • i и j как переменные типа TSize,
    • mult как переменная типа Integer,
    • temp как переменная типа ShortInt.
  4. Инициализируется генератор случайных чисел.
  5. Выводится сообщение Original array:.
  6. В цикле от 0 до nMax - 1 инициализируются элементы массива случайными значениями от -99 до 99. Если индекс элемента четный, то переменная mult умножается на значение этого элемента, иначе элемент выводится на экран.
  7. Выводится сообщение Geometric mean:.
  8. Если переменная mult больше 0, то вычисляется и выводится среднегеометрическое значение нечетных элементов первой половины массива через функции Exp и Ln.
  9. Если переменная mult меньше 0, то сначала берется модуль от mult, вычисляется и выводится среднегеометрическое значение нечетных элементов первой половины массива, причем с отрицательным знаком.
  10. В случае, если mult равно 0, просто выводится 0.
  11. Сортируется массив методом выбора по возрастанию для положительных чисел.
  12. Выводится сообщение Sorted array:.
  13. В цикле выводятся отсортированные элементы массива.

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


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

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

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