Дано натуральное число N. Вычислить Р=(1-1/2^2)*(1-1/3^2)*...*(1-1/n^2), где N больше 2 Запускает, но не считает,0.000000000Е 0000 выводит. В чём ошибка? program lab51; {$APPTYPE CONSOLE} uses SysUtils, Math; var s,u:real; n,k:...

Дано натуральное число N. Вычислить Р=(1-1/2^2)*(1-1/3^2)*...*(1-1/n^2), где N>2 Запускает, но не считает,0.000000000Е 0000 выводит. В чём ошибка? program lab51; {$APPTYPE CONSOLE} uses SysUtils, Math; var s,u:real; n,k:byte; begin writeln('vvedite n'); readln(n); s:=1; if n>2 then begin for k:=2 to n do s:=s*u; //inc(k); u:=1-(1/sqr(k)); end; writeln(s); readln; end.
Гость
Ответ(ы) на вопрос:
Гость
У вас переменная u не определена при первом запуске цикла, поэтому программа берет u=0, и в итоге выходит тоже ноль. Поставьте после фора сразу: u:=1-(1/sqr(k));а потом уже: s:=s*u;
Не нашли ответ?
Ответить на вопрос
Похожие вопросы