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

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

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

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

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.

6   голосов, оценка 4.167 из 5


СОХРАНИТЬ ССЫЛКУ