P
pro·school.ru
Каталог школ

Накопление суммы и произведения в цикле

💻 Информатика · 8 класс

Накопление результата в цикле

Многие задачи требуют объединить набор чисел в одно значение — найти их сумму или произведение. Это делают при помощи цикла и переменной-накопителя: на каждом шаге к ней добавляют очередное число или умножают её на него. Такой приём называют накоплением, и он встречается практически в любой программе обработки данных.

Главная идея в том, что результат строится постепенно. Перед циклом накопитель получает начальное значение, а затем за каждый проход цикла «вбирает» в себя ещё одно число. После последнего прохода в накопителе оказывается готовый ответ.

Накопление суммы

Для подсчёта суммы заводят переменную и присваивают ей начальное значение 0. Затем в цикле к ней прибавляют каждое очередное число.

s = 0 для i от 1 до n: ввод a s = s + a вывод s

Начальное значение 0 выбрано не случайно: прибавление нуля не меняет результат, поэтому первое же слагаемое запишется в накопитель правильно.

Накопление произведения

Для произведения переменную-накопитель сначала делают равной 1, ведь умножение на единицу не меняет числа. Затем в цикле умножают накопитель на каждое число.

p = 1 для i от 1 до n: ввод a p = p * a вывод p
Что считаемНачальное значениеКоманда в цикле
сумма0s = s + a
произведение1p = p * a

Разбор примера

Вычислим факториал числа 4 — произведение всех чисел от 1 до 4:

p = 1 i=1: p = 1 * 1 = 1 i=2: p = 1 * 2 = 2 i=3: p = 2 * 3 = 6 i=4: p = 6 * 4 = 24 ответ: 24

Видно, как накопитель на каждом шаге увеличивается: единица, два, шесть, двадцать четыре. Если бы мы по ошибке задали ему начальное значение ноль, на первом же умножении получился бы ноль и остался бы таким до конца.

Приём накопления легко обобщить и на другие задачи. Например, чтобы подсчитать, сколько чисел в наборе удовлетворяют какому-то условию, заводят счётчик с начальным значением 0 и в цикле увеличивают его на единицу каждый раз, когда условие выполнено. Это тоже накопление, только накапливается не сумма значений, а количество подходящих элементов. Главное во всех таких задачах одно: правильно выбрать начальное значение накопителя и не забыть задать его до входа в цикл.

Частая ошибка. Нельзя задавать произведению начальное значение 0 — тогда весь результат окажется нулём. И наоборот, сумму нельзя начинать с единицы: ответ получится завышенным. Накопитель всегда задают до начала цикла, а не внутри него, иначе он будет сбрасываться на каждом шаге.

Кратко о главном

  • Сумму и произведение накапливают в специальной переменной внутри цикла.
  • Накопитель суммы начинают с 0, накопитель произведения — с 1.
  • В цикле к накопителю прибавляют очередное число или умножают на него.
  • Начальное значение задают обязательно до входа в цикл.