1-11 класс
  • 1-11 класс
  • 1 класс
  • 2 класс
  • 3 класс
  • 4 класс
  • 5 класс
  • 6 класс
  • 7 класс
  • 8 класс
  • 9 класс
  • 10 класс
  • 11 класс
Выберите класс
Предметы
Босова
Задание 3 Параграф 5.5 ГДЗ Босова 8 класс 2023 (Информатика)
Босова, Босова
8 класс
Автор
Босова, Босова

Задание 3 Параграф 5.5 ГДЗ Босова 8 класс 2023 (Информатика)

Задача

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

Подробный ответ

В программе для вычисления факториала допущены ошибки:

  • переменная $$f$$ должна начинаться с $$1$$, а не с $$0$$, иначе произведение всегда будет равно нулю;
  • в цикле нужно умножать на все числа от $$1$$ до $$n$$ включительно, поэтому условие должно быть $$k \le n$$;
  • ввод числа $$n$$ должен быть выполнен до использования переменной в цикле;
  • в выводе нужно печатать значение $$n$$ и найденный факториал в нужном формате.

Исправленная программа:

n = int(input(‘Введите n >> ‘))
k = 1
f = 1
while k <= n:
    f = f * k
    k += 1
print(n, ‘!=’, f)

Проверка:

  • при $$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 = int(input(‘Введите n >> ‘))
k = 1
f = 1
while k <= n:
    f = f * k
    k += 1
print(n, ‘!=’, f)



Общая оценка
4.3 / 5
Другие учебники
Другие предметы