

Составить алгоритм Pascal
Составить алгоритм вычисления факториала ( n! ), используя 3 вида циклов:
- с предусловием;
- с постусловием;
- со счетчиком;
С предусловием:
f := 1;
i := 2;
while i <= n do begin
f := f * i;
inc(i)
end;
С постусловием:
f := 1;
i := 0;
repeat
inc(i);
f := f * i
until i >= n;
Со счётчиком:
f := 1;
for i := 2 to n do f := f * i;
Тут главное с типом переменной для факториала не опростоволоситься:
var i, n: integer;
f: int64;
begin
write('n » ');
readln(n);
i := n;
f := 1;
while i > 1 do
begin
f := f * i;
dec(i)
end;
write('n! = ', f);
f := 1;
i := 0;
repeat
inc(i);
f := f * i
until i = n;
write(' ', f);
f := 1;
for i := 1 to n do f := f * i;
writeln(' ', f)
end.
Это точно для натуральных n до двадцати включительно. Приближённо можно ещё вычислять факториал как вещественное число типа real до n=170 включительно, а с факториалом типа extended n можно брать даже больше. A в Паскале ЭйБиСи.Нет можно воспользоваться типом BigInteger - там всё точно и без ограничений.
program Factorial;
var n, f, i: integer;
begin
writeln(‘Введите число n:’);
readln(n);
// Вычисление факториала с использованием цикла с предусловием
f := 1;
i := 2;
while i <= n do
begin
f := f * i;
i := i + 1;
end;
writeln('Факториал числа n с использованием цикла с предусловием: ', f);
// Вычисление факториала с использованием цикла с постусловием
i := 2;
f := 1;
repeat
f := f * i;
i := i + 1;
until i > n;
writeln('Факториал числа n с использованием цикла с постусловием: ', f);
// Вычисление факториала с использованием цикла со счетчиком
i := 1;
f := 1;
while i <= n do begin
f := f * i;
i := i + 1;
end;
writeln('Факториал числа n с использованием цикла со счетчиком: ', f);
readln;
end.