Написание программ вычисления факториалов
Каждый оператор в программе Harmonic определял переход из одного множества состояний в другое.
Рассмотрим еще один пример.
Пример 10.1. Написать программу вычисления f(n)=n! , где n - натуральное, либо равно 0.
Program Factorial (input, output);
{ Программа Factorial вычисляет значение функции п!
Input: (nI N)U(n ? 0)
Output: (Fctrl I N)U(Fctrl ? 1)U(Fctrl=)
}
var i, n, fctrl : integer ; { n - исходное значение;
fctrl - результат;
i - параметр цикла
}
begin
{Ввод исходных данных}
write (?Введите значение n = ?) ;
readln ( n ) ;
{Проверка корректности исходных данных}
if n<0 then writeln (?Ошибка.? п ?не может быть меньше 0?)
else
begin
if n=0 then fctrl:=1
else
begin
fctrl:=1 ;
for i:=2 to n do fctrl:=fctrl * i
end {if n=0};
{Вывод результата}
writeln (? При n = ? , n , ?_ n! = ? , fctrl )
end {if n<0}
end {Program}.
Рис. 10.1.
В этой программе в строке 1 мы определяем типы переменных, которые мы будем использовать при вычислениях. В строке 2 пользователю выдается приглашение ввести исходное значение п , а в строке 3, с помощью оператора readln (n) значение, заданное пользователем, полагается текущим значением переменной п . Строка 4 - это проверка корректности исходных данных. Если текущее значение n < 0 , то пользователю будет выдано сообщение об ошибке.
В соответствии с определением функции n!