Накопление суммы и произведения в цикле
💻 Информатика · 8 класс
Накопление результата в цикле
Многие задачи требуют объединить набор чисел в одно значение — найти их сумму или произведение. Это делают при помощи цикла и переменной-накопителя: на каждом шаге к ней добавляют очередное число или умножают её на него. Такой приём называют накоплением, и он встречается практически в любой программе обработки данных.
Главная идея в том, что результат строится постепенно. Перед циклом накопитель получает начальное значение, а затем за каждый проход цикла «вбирает» в себя ещё одно число. После последнего прохода в накопителе оказывается готовый ответ.
Накопление суммы
Для подсчёта суммы заводят переменную и присваивают ей начальное значение 0. Затем в цикле к ней прибавляют каждое очередное число.
s = 0
для i от 1 до n:
ввод a
s = s + a
вывод sНачальное значение 0 выбрано не случайно: прибавление нуля не меняет результат, поэтому первое же слагаемое запишется в накопитель правильно.
Накопление произведения
Для произведения переменную-накопитель сначала делают равной 1, ведь умножение на единицу не меняет числа. Затем в цикле умножают накопитель на каждое число.
p = 1
для i от 1 до n:
ввод a
p = p * a
вывод p| Что считаем | Начальное значение | Команда в цикле |
|---|---|---|
| сумма | 0 | s = s + a |
| произведение | 1 | p = 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. - В цикле к накопителю прибавляют очередное число или умножают на него.
- Начальное значение задают обязательно до входа в цикл.