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

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

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


image

Информатика (3.9k баллов) | 84 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

у тебя получается бесконечный цикл с постоянно увеличивающимя 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.

(3.1k баллов)