"Информатика (базовый уровень) (в 2 частях)", Под ред. Макаровой Н.В.
Накопление статистики — способ получать итоговые сведения о данных прямо во время их обработки. С помощью счётчиков и накопителей суммы можно за один проход узнать количество элементов, их сумму или число значений, подходящих под условие. Для каждого нового элемента переменные обновляются, поэтому в конце обработки уже готовы нужные результаты. Этот приём лежит в основе вычисления среднего, подсчёта частот и анализа массивов, таблиц и результатов измерений.
Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.
Статистическое накопление — последовательное получение итоговых сведений о наборе данных во время его обработки. Иными словами, программа не ждёт окончания работы, а постепенно собирает нужные результаты. Это позволяет находить сумму, количество и другие показатели одним последовательным просмотром.
Счётчик — переменная, которая хранит количество обработанных элементов или элементов, удовлетворяющих условию. При обычном подсчёте она увеличивается на единицу после каждого элемента. Счётчик нужен, чтобы знать размер обработанной части данных или число подходящих значений.
Накопитель суммы — переменная, в которой по мере обработки данных сохраняется текущая сумма значений. К уже полученному итогу прибавляют очередное число. Такой накопитель нужен для быстрого вычисления общей суммы и среднего арифметического.
Частота значения — количество раз, которое это значение встречается в наборе данных. Для каждого возможного значения можно завести отдельный счётчик. Частоты помогают увидеть, какие данные встречаются чаще и сколько раз появляется конкретный результат.
Статистику часто получают за один проход по данным: очередной элемент сразу учитывается в итоговых переменных. Это экономит время и не требует повторно просматривать уже обработанные значения. Такой подход особенно удобен для больших массивов или потока измерений, когда все данные не обязательно хранить отдельно.
Перед началом обработки счётчики и накопители инициализируют нейтральными значениями: для количества и суммы обычно используют ноль. Это необходимо, потому что первая операция должна выполняться над правильным начальным итогом. Если оставить случайное значение, каждый последующий результат будет смещён.
При поступлении нового значения счётчик количества увеличивают на единицу, а сумму пополняют этим значением. В результате промежуточный итог описывает не весь набор, а именно уже просмотренную часть. Благодаря этому алгоритм в любой момент знает, сколько элементов обработано и какова их общая сумма.
Чтобы посчитать элементы, удовлетворяющие условию, каждый элемент сначала проверяют. Счётчик изменяют только при истинном условии, потому что неподходящее значение не должно входить в искомую группу. Например, при подсчёте оценок не ниже 4 значения 2 и 3 просматриваются, но счётчик для них не увеличивается.
После последнего элемента накопленные величины используют для получения новых показателей. Например, среднее арифметическое находят как отношение суммы к количеству: среднее = сумма / количество. Сначала нужно убедиться, что количество не равно нулю, иначе деление невозможно.
| Что накапливается | Начальное значение | Действие при обработке элемента | Что показывает итог |
|---|---|---|---|
| Количество элементов | 0 | Увеличить счётчик на 1 | Сколько элементов обработано |
| Сумма значений | 0 | Прибавить очередное значение | Общую сумму элементов |
| Количество элементов, удовлетворяющих условию | 0 | Увеличить счётчик, если условие истинно | Сколько элементов подходит |
| Частота каждого значения | 0 для каждого счётчика | Увеличить счётчик соответствующего значения | Сколько раз встретилось значение |
В таблице сначала находят смысл итоговой переменной, затем выбирают её начальное значение и действие на каждом шаге. Если требуется несколько независимых характеристик, их накопители обновляют одновременно. Для частот используют отдельный счётчик для каждого значения или группы значений.
Условие: даны пять чисел, требуется определить их сумму и количество. Количество заранее известно, но его всё равно можно получить с помощью счётчика, чтобы показать общий приём. Обозначим накопитель суммы через s, а счётчик через n.
Ответ: программа получает сумму всех пяти чисел и значение n = 5. Тот же алгоритм подойдёт для набора неизвестной длины, если цикл получает данные до конца ввода.
Условие: даны оценки учеников и задан порог, например 4. Нужно узнать, сколько оценок не ниже этого значения. Здесь не требуется складывать оценки: важен только счётчик подходящих элементов.
Ответ: значение count равно количеству оценок не ниже заданного порога. Оценки, которые меньше порога, просматриваются, но в итоговый счётчик не попадают.
Условие: даны результаты измерений, требуется найти их среднее и количество значений выше этого среднего. Одного прохода недостаточно: пока среднее не известно, нельзя надёжно проверить условие «выше среднего».
Ответ: сначала находятся сумма, количество и среднее, затем отдельным проходом подсчитываются подходящие измерения. Разделение на два прохода нужно потому, что среднее становится известно только после накопления исходных данных.
Забывают обнулить счётчик или сумму перед обработкой. Так в итог попадает старое или неопределённое значение, хотя алгоритм должен начинать с пустого результата. Проверьте начальные присваивания до цикла: количество и сумма обычно должны быть равны нулю.
Увеличивают счётчик не в той ветви условия или не увеличивают его для подходящего элемента. Ошибка появляется, когда условие читают наоборот или действие помещают за пределы нужной ветви. Проверьте алгоритм на одном подходящем и одном неподходящем значении.
Путают число обработанных элементов с суммой их значений. Счётчик увеличивают на единицу, а накопитель суммы — на очередное значение, поэтому одинаковая команда для них неверна. Для самопроверки проследите вручную обработку чисел 2 и 5: количество должно стать 2, а сумма — 7.
Вычисляют среднее, не проверив количество элементов. При пустом наборе получается деление на ноль, которое невозможно выполнить. Перед формулой среднее = сумма / количество убедитесь, что количество больше нуля.
Для накопления статистики нужны переменные, присваивание, циклы, условные операторы и арифметические операции. Цикл организует последовательный просмотр, присваивание обновляет итог, а условие отбирает нужные элементы. Без этих базовых конструкций алгоритм нельзя записать и проверить.
Приём применяется при обработке массивов и таблиц, анализе результатов измерений и подсчёте частот. Он помогает находить суммы, средние значения, количество объектов и распределение данных. Поэтому статистическое накопление встречается во многих задачах обработки информации.
Чем счётчик отличается от накопителя суммы?
Счётчик хранит количество элементов и обычно увеличивается на единицу. Накопитель суммы хранит итог сложения и увеличивается на значение очередного элемента.
Почему счётчик перед циклом нужно обнулять?
До начала обработки в нём ещё нет учтённых элементов, поэтому начальное количество равно нулю. Если не обнулить переменную, к результату могут добавиться старые или неопределённые данные.
Как посчитать только те значения, которые удовлетворяют условию?
Для каждого элемента выполняют проверку условия. Если оно истинно, счётчик увеличивают на единицу, а при ложном результате оставляют без изменения.
Можно ли накопить сумму и количество за один проход?
Да, можно. При обработке каждого элемента одновременно прибавляют его к сумме и увеличивают счётчик количества.
Что делать, если набор данных пуст?
Сумма и количество останутся равными нулю. Среднее вычислять нельзя, потому что возникнет деление на ноль; сначала нужно проверить, что количество элементов больше нуля.
Накопление статистики