ПОМОГИТЕ ПОЖАЛУЙСТА ПРОГРАММУ СДЕЛАТЬ+ блок схема+результат. СМ ФОТО

  • 1 Ответ (-а, -ов)
    Var
      n: integer;
      s, x, xn, y: double;

    begin
      s := 0; x := 0.1; xn := x;
      for n := 1 to 20 do
      begin
        s := s + n * (n + 2) * xn;
        xn := xn * x
      end;
      y := x * (3 + x) / (1 — x);
      Writeln(‘Сумма (x=0.1, n=20)=’, s, ‘, по формуле=’, y );
      s := 0; x := 0.5; xn := x;
      for n := 1 to 15 do
      begin
        s := s + n * (n + 2) * xn;
        xn := xn * x
      end;
      y := x * (3 + x) / (1 — x);
      Writeln(‘Сумма (x=0.5, n=15)=’, s, ‘, по формуле=’, y );
    end.

    Тестовое решение:

    Сумма (x=0.1, n=20)=0.397805212620028, по формуле=0.344444444444445
    Сумма (x=0.5, n=15)=9.99008178710938, по формуле=3.5

    Как видно, если в первом случае формула еще дает какое-то приближение, то во втором она совершенно не годится.

    Блок-схема, реализующая алгоритм, приведена в приложении. Она не копирует программу, а лишь поясняет алгоритм, который в программе использован дважды для разных данных. Конечно, правильнее было воспользоваться функциями и тогда программа выглядела бы так:

    function f1(x: double; k: integer): double;
    var
      s, xn: double;
      n: integer;

    begin
      s := 0; xn := x;
      for n := 1 to k do begin s := s + n * (n + 2) * xn; xn := xn * x end;
      f1 := s
    end;

    function f2(x: double): double;
    begin
      f2 := x * (3 + x) / (1 — x);
    end;

    begin
      Writeln(‘Сумма (x=0.1, n=20)=’, f1(0.1, 20), ‘, по формуле=’, f2(0.1));
      Writeln(‘Сумма (x=0.5, n=15)=’, f1(0.5, 15), ‘, по формуле=’, f2(0.5));
    end.



    RE: ПОМОГИТЕ ПОЖАЛУЙСТА ПРОГРАММУ СДЕЛАТЬ+ блок схема+результат. СМ ФОТО

    Добавить

    Ваш ответ