Для заданного числа N составьте программу вычисления суммы S=1/2-1/3+1/4-1/5+..+1/n, где...

0 голосов
78 просмотров

Для заданного числа N составьте программу вычисления суммы S=1/2-1/3+1/4-1/5+..+1/n, где n натуральное число.


Информатика (89 баллов) | 78 просмотров
0

на каком йазыке?

0

Паскаль

Дано ответов: 2
0 голосов

///PascalABC.NET (версия 3.1, сборка 1198 от 11.03.2016)
var i,n: integer;
    s:real;
begin
  readln(n);
  s:=0;
  for i:=2 to n do  begin
  if i mod 2=0 then s:=s+1/i
     else s:=s-1/i ;
  end;
  writeln(s);
end.

(13.9k баллов)
0 голосов

Попробуй так. Думаю должно работать для умеренно небольшого n (во всяком случае до 8 или 9), смотря на сколько хватит стека. При больших n будет вылетать по ошибке памяти, наверное.
Компилятора под рукой нет, не тестировал, может где баг сидит. Попробуй у себя, если что будет не так, то напиши.
Вводимое число должно быть больше или равно 2, иначе прога сбойнёт.

-------------------------------------------------------
program Bobsfeel ;
var n: integer ;var s: real ;
function sm ( i : integer ) : real ;   var znak : integer ;   begin    if ( i = 2 ) then sm := 0.5 else      begin        if ( i % 2 = 1 ) then znak := -1        else znak := 1 ;       sm := znak / i + sm ( i - 1 ) ;      end ;end ; begin write('vvdiete n >= 2 _') ; readln(n) ;
 s := sm ( n ) ; writeln('S= ' , s ) ; end.

(6.5k баллов)