Найти факториал в Паскале через цикл с предусловием. Программа выдает "вещественное переполнение". Как это исправить? Скрин с программой во вложении.

1

Ответы и объяснения

Лучший Ответ!
  • Tlalok
  • почетный грамотей
2013-03-07T05:53:01+00:00

у тебя получается бесконечный цикл с постоянно увеличивающимя n, конечно рано или поздно программа завершится с переполнением. в твоей программа ты самому n присваиваешь значение n * (n - 1) например при n = 5 n станет равно 20, на следующем проходе n = 20 * 19 и так далее

 

var
  n:integer;
  F:real;
begin
  F := 1;
  write('n = '); readln(n);
  while n > 1 do
  begin
    F := n * F;
    dec(n);
  end;
  writeln('F = ', F);
  readln;
end.