Попробуй так. Думаю должно работать для умеренно небольшого 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.