Для данного n сформировать массив X(n), являющийся последовательностью чисел Фибоначчи, и выполнить заданные действия - Pascal ABC

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

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

Для заданного значения n сформировать массив X(n), являющийся последовательностью чисел Фибоначчи. Определить, насколько отличается положение элемента, наиболее близкого к среднему арифметическому значению массива X, от положения элемента, наиболее близкого к среднему геометрическому значению этого же массива. Помогите пожалуйста те, кто может осилить эту задачу. Заранее спасибо

Решение задачи: «Для данного n сформировать массив X(n), являющийся последовательностью чисел Фибоначчи, и выполнить заданные действия»

textual
Листинг программы
program pr;
uses crt;
const n = 50;
var x: array [0..n-1] of integer;
    i, num1, num2: integer;
    sr_arifm, sr_geom, el1, el2: real;
begin
     x[0] := 0;
     x[1] := 1;
     write(x[0],' ', x[1], ' ');
     sr_arifm := 1;
     sr_geom := 1;
     for i := 2 to n-1 do
     begin
          x[i] := x[i-1] + x[i-2];
          write(x[i], ' ');
          sr_arifm := sr_arifm + x[i];
          sr_geom := sr_geom * x[i];
     end;
     sr_arifm := sr_arifm/n;
     sr_geom := exp((1/n)*ln(sr_geom));
     writeln();
     writeln('ср. арифметическое ', sr_arifm:5:3);
     writeln('ср. геометрическое ', sr_geom:5:3);
     
     num1:=0;
     num2:=0;
     el1:=sr_arifm;
     el2:=sr_geom;
     for i:=1 to n-1 do
     begin
          if (abs(sr_arifm-x[i])<el1) then
          begin
               el1:=abs(sr_arifm - x[i]);
               num1:=i;
          end;
          if (abs(sr_geom-x[i])<el2) then
          begin
               el2:=abs(sr_geom - x[i]);
               num2:=i;
          end;
     end;
     writeln('эл-т, наиболее близкий к ср. арифметическому ', x[num1], ' № ', num1);
     writeln('эл-т, наиболее близкий к ср. геометрическому ', x[num2], ' № ', num2);
     writeln('их положение отличается на ', abs(num1-num2));
end.

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

  1. Создается программа pr, которая использует библиотеку crt.
  2. Задается константа n, которая представляет собой максимальное значение индекса элемента массива X.
  3. Создается переменная x, которая представляет собой массив из n элементов типа integer.
  4. Создаются переменные i, num1, num2, sr_arifm и sr_geom, которые представляют собой индексы, числа Фибоначчи и их суммы, а также коэффициенты для вычисления среднего арифметического и геометрического.
  5. Заполняется массив x числами Фибоначчи: x[0] = 0, x[1] = 1, а затем, используя цикл for, вычисляются все остальные элементы массива.
  6. Вычисляются среднее арифметическое и геометрическое: sr_arifm = сумма чисел Фибоначчи, деленная на n, и sr_geom = экспонента от суммы чисел Фибоначчи, деленной на n.
  7. Вычисляются два элемента, наиболее близкие к среднему арифметическому и геометрическому: num1 и num2, а также соответствующие элементы x[num1] и x[num2].
  8. Выводится информация о наиболее близких элементах, а также их разнице.
  9. Программа завершается.

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


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

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

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