Напишите пожалуйста, как написать во FREE PASCAL число в степени i+1. Вот сама...

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

Напишите пожалуйста, как написать во FREE PASCAL число в степени i+1. Вот сама программа:
Program zadacha;
Var k,s : Double;
n,i : LongInt;
Begin
k:=0
ReadLn(n);
s:=-1;
For i:=1 to n do
k:=k+exp((i+1)*Ln(s));
WriteLn(k:0:6);
ReadLn;
End.

Вот условие задачи:
Дано натуральное число n. Найдите сумму 1−1/2+1/3−...+(−1)n+1/n.
Формат входных данных:
Вводится целое число n(1≤n≤100000).
Формат выходных данных:
Требуется вывести одно число — значение выражения c точностью до шестого знака после запятой.
Примечания:
Условный оператор и оператор возведения в степень использовать запрещается.


Информатика (276 баллов) | 22 просмотров
Дан 1 ответ
0 голосов

У вас программа считает не формулу, приведенную в условии.
Если делать по условию, то:
s := 0;
i := 1; while (i <= n) do begin s := s + 1/n; inc(n,2); end;<br>i := 2; while (i <= n) do begin s := s - 1/n; inc(n,2); end;<br>

(306 баллов)