Обучение программированию идёт по пути от простого к сложному. Освоив типы данных и операторы языка, переходят к циклическим конструкциям. Задач на циклы существует бесчисленное количество: начиная от вывода цифр в столбик до подсчёта сумм по сложным формулам. Тем не менее у начинающих программистов остаётся вопрос: "Как вычислить факториал в "Паскале"?"
Реализовать задачу можно как минимум тремя способами. Отличаются они используемыми операторами.
Математические сведения
Перед тем как перейти к построению алгоритмов и написанию программ, следует изучить теорию. В математике факториалом называют произведение целого числа, для которого вычисляется выражение, на целые положительные числа меньше его.
Понять определение поможет пример. Пусть требуется выполнить нахождение факториала для числа 3. Решение: 3! = 3 * 2 * 1 = 6.
Обозначается действие восклицательным знаком, который ставится после числа. Важное замечание: факториал определён только для целых положительных чисел. Вместе с тем, введено понятия для нуля: 0! = 1.
Считать выражение для больших значений вручную – занятие долгое. Чтобы убыстрить процесс вычислений, используют компьютерные программы. Далее рассмотрены способы, как найти факториал в "Паскале".
Первый способ
Код ниже показывает вариант программы.
В примере используют составную конструкцию с условием, которое записывается перед телом цикла. Синтаксис записи:
while {условие} do {последовательность_операторов};
Выполняется код следующим образом: программа проверяет истинность выражения {условие}, в случае положительной проверки переходит на {последовательность_операторов}.
Возвращаясь к программе, нужно обратить внимание на следующие строки:
- 2 – задаётся число n, для которого будет выполнен расчёт;
- 6 – заголовок цикла;
- 7 – начало цикла;
- 8 – вычисление переменной fact, которая хранит значение факториала числа n;
- 9 – увеличение переменной-счётчика на единицу;
- 10 – конец цикла.
Второй способ
Следующий предлагает вычислить факториал в "Паскале" с помощью оператора repeat.
Конструкция цикла: repeat {последовательность_операторов} until {условие};
Чтобы понять, как работает программа, рассмотрим её построчно:
- 2 – константе n назначается число, для которого выполняется вычисление;
- 7 – начало цикла;
- 8, 9 – расчёт факториала и увеличения счётчика i;
- 10 – конец тела цикла;
- 11 – проверка условия, поскольку условие располагается после последовательности операторов, повтор действий будет выполнен как минимум один раз.
Третий способ
Последняя программа также дает возможность вычислить факториал в "Паскале" и является самой компактной по размеру. Причина – используемый оператор for, для которого увеличение счётчика i задаётся в параметрах цикла.
Запись оператора: for {начальное_значение} to {конечное_значение} do {последовательность_операторов}.
Работает код следующим образом (цифрами указаны строки листинга):
- 2 – константе n присваивают значение числа, для которого вычисляется факториал;
- 6 – задаются параметры цикла – начальное и конечное значения;
- 7 – начало цикла;
- 8 – вычисление переменной fact;
- 9 – конец цикла.
Замечание
Даже для чисел из первой десятки факториал имеет значение больше, чем допускает тип данных integer. Поэтому программа в "Паскале" покажет сообщение об ошибке. Исправить её просто – нужно заменить тип данных для переменной-результата на longint или использовать типы для хранения вещественных значений.