Написать функцию вычисления факториала - Turbo Pascal
Формулировка задачи:
Написать функцию «Факториал» и программу, использующую эту функцию для вывода таблицы факториалов. Напишите пожалуйста всю задачу.
Решение задачи: «Написать функцию вычисления факториала»
textual
Листинг программы
function f(n: Integer): Longint;
const
m: Integer = 1;
r: array [0..10] of Longint = (1,1,0,0,0,0,0,0,0,0,0); {жаль синтаксис требует значения для каждого эл-та}
begin
if n>m then begin
for m:=m+1 to n do r[m]:=r[m-1]*m;
m:=n;
end;
f:=r[n];
end;
Объяснение кода листинга программы
- В функции
fобъявлена переменнаяn, которая имеет типInteger(целое число). - В строке
constобъявлены две константы:mиr. Переменнаяmтакже имеет типIntegerи инициализируется значением 1. Переменнаяrобъявляется как массив целых чиселarray [0..10] of Longint, и инициализируется значениями (1,1,0,0,0,0,0,0,0,0,0). - В условии
if n>mпроверяется, что значение переменнойnбольше значения переменнойm. - Если условие истинно, то выполняется цикл
for m:=m+1 to n do, который проходит отmдоnс шагом 1. - Внутри цикла переменная
r[m]присваивается значениюr[m-1]*m, гдеm-1- это значение переменнойmна предыдущем шаге цикла. - После завершения цикла, значение переменной
mобновляется, чтобы соответствовать значению переменнойn. - По завершении условий
ifиfor, функцияfприсваивает себе значениеr[n]. - В итоге, функция
fвозвращает значениеLongint, которое является результатом вычисления факториала числаn.