3. Требовалось написать программу вычисления факториала числа n (факториал числа n есть произведение всех целых чисел от 1 до n). Программист торопился и написал программу неправильно. Ниже приведён фрагмент его программы, в котором содержится несколько ошибок:
k := 1;
f := 0;
while k < n do
f := f * k;
k := k + 1
Обсудите этот фрагмент программы в группе. Найдите ошибки. Внесите необходимые исправления, допишите программу и выполните её на компьютере. Для проверки правильности программы используйте тест:
Входные данные
Введите n>>5
Введите n>>6
Выходные данные
5!=120
6!=720

Ответ
В данном фрагменте программы содержится несколько ошибок:
- Отсутствует инициализация переменной f. Нужно задать начальное значение f = 1, так как произведение начинается со значения 1.
- Ошибка в условии цикла. Нужно заменить оператор < на <=, чтобы учесть также значение n в произведении.
- Неправильная последовательность операторов в цикле. Нужно сначала увеличивать k, а затем умножать f на k.
Вот исправленный фрагмент программы:
k := 1;
f := 1;
while k <= n do
begin
f := f * k;
k := k + 1;
end;
writeln(n, «!=», f);
Выполните исправленную программу на компьютере и введите входные данные: n = 5. Выходные данные должны быть равны 120.
Выполните исправленную программу на компьютере и введите входные данные: n = 6. Выходные данные должны быть равны 720.