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

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

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

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

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

textual
Листинг программы
  1. {$MODE TP}
  2. const
  3.     nMax = 39;
  4. type
  5.     TSize = 0..nMax - 1;
  6. var
  7.     ar: Array[TSize] Of ShortInt;
  8.     i, j: TSize;
  9.     mult: Integer;
  10.     temp: ShortInt;
  11. begin
  12.     Randomize(); mult := 1;
  13.     Write('Original array:');
  14.     for i := Low(TSize) to High(TSize) do
  15.     begin
  16.         ar[i] := Random(199) - 99;
  17.         if (Not Odd(i))
  18.         then
  19.             mult := mult * ar[i];
  20.         Write(ar[i]:4);
  21.     end;
  22.     WriteLn; Write('Geometric mean: ');
  23.     if (mult > 0)
  24.     then
  25.         WriteLn(Exp(Ln(mult) / ((nMax + 1) div 2)):0:4)
  26.     else
  27.         if (mult < 0)
  28.         then
  29.             WriteLn(-Exp(Ln(Abs(mult)) / ((nMax + 1) div 2)):0:4) //хотя математически неверно сие
  30.         else
  31.             WriteLn(0);
  32.     for i := Low(TSize) to High(TSize) - 1 do
  33.         for j := i + 1 to High(TSize) do
  34.             if ((ar[i] > 0) And (ar[j] > 0) And (ar[i] > ar[j]))
  35.             then
  36.             begin
  37.                 temp := ar[i];
  38.                 ar[i] := ar[j];
  39.                 ar[j] := temp;
  40.             end;
  41.     Write('Sorted array:');
  42.     for i := Low(TSize) to High(TSize) do
  43.         Write(ar[i]:4);
  44. 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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы