• Дано натуральное число 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.

Ответы 3

  • Спасибо большое!
  • На здоровье ))
    • Автор:

      angel527
    • 5 лет назад
    • 0
  • У вас переменная u не определена при первом запуске цикла, поэтому программа берет u=0, и в итоге выходит тоже ноль. Поставьте после фора сразу: u:=1-(1/sqr(k));а потом уже: s:=s*u;
  • Добавить свой ответ

Еще вопросы

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years