Задание 3 Параграф 3.5 ГДЗ Босова 8 класс (Информатика)
к: =1;
f :=0;
while k < n do
f:=f*k;
k:=k+1
Найдите ошибки. Допишите необходимые операторы и выполните программу на компьютере.
Пример входных данных
Введите n > > 5
Введите n > > 6
Пример выходных данных
5!=120
6!=720
В программе для вычисления факториала допущены ошибки:
- $$f := 0$$ — неверно, нужно $$f := 1$$, так как факториал считается как произведение;
- в условии цикла должно быть $$k \le n$$, иначе последнее число не войдёт в произведение;
- после тела цикла нужны служебные слова begin и end, чтобы выполнить несколько операторов;
- отсутствует ввод числа $$n$$;
- отсутствует вывод результата.
Исправленная программа:
program fac;
var
k, n: integer;
f: longint;
begin
k := 1;
f := 1;
write(‘n>>’);
readln(n);
while k <= n do
begin
f := f * k;
k := k + 1
end;
writeln(n, ‘!=’, f)
end.
При $$n = 5$$ получаем:
$$5! = 1 \cdot 2 \cdot 3 \cdot 4 \cdot 5 = 120$$
При $$n = 6$$ получаем:
$$6! = 1 \cdot 2 \cdot 3 \cdot 4 \cdot 5 \cdot 6 = 720$$
Ответ
Ошибки исправлены, верная программа вычисляет факториал числа $$n$$ и выводит результат: $$5! = 120$$, $$6! = 720$$.