Быстрее 50 ! составить программу подсчета суммы s первых 1000 членов гармонического ряда 1+1/2+1/3+1/4+/n используя оператор цикла repeat.

12dosbol 12dosbol    2   14.09.2019 17:30    8

Ответы
MaShall5619 MaShall5619  10.09.2020 08:49
Правильно подобный ряд начинать вычислять с меньших по величине членов - так будет выше точность.

// PascalABC.NET 3.3, сборка 1599 от 17.12.2017
// Внимание! Если программа не работает, обновите версию!

begin
  var (s,i):=(0.0,1000);
  repeat
    s+=1/i;
    i-=1;
  until i=0;
  Writeln(s)
end.

Результат
7.48547086055034

Во вложении приведено решение этой же задачи с точностью 20 цифр в пакете компьютерной математики Maple15. Видно,что все цифры, полученные программой, точны.
ПОКАЗАТЬ ОТВЕТЫ
alinanazarova20 alinanazarova20  10.09.2020 08:49
Program Summa;
Var   S:real;
      N:integer;
Begin
  S:=0;N:=0;
  repeat
    N:=n+1;
    S:=s+1/n
  Until n>1000;
  Writeln(s);
  Readln
End.


Быстрее 50 ! составить программу подсчета суммы s первых 1000 членов гармонического ряда 1+1/2+1/3+1
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика