ИНФОРМАТИКА · 10 КЛАСС
Алгоритмы и массивы · Интерактивный конспект

§ 4. Выполнение арифметических действий над элементами массива

Проследим накопление суммы и произведения, рассчитаем среднее, стоимость покупки и доли круговой диаграммы.

Попробовать на модели ↓
Разбираемся в теме

Основные пункты параграфа

1

Сумма и произведение

Накопитель обновляют для каждого элемента: сумму начинают с 0, произведение — с 1.

НАБЛЮДАЙТЕ И ПРОБУЙТЕ

Сумма и произведение

Меняйте данные и выполняйте шаги. Цвет выделяет текущие элементы; подписи объясняют результат. Сброс возвращает исходный опыт.

Для суммы повторяют s := s + a[i], для произведения p := p * a[i]. Перед циклом задают s := 0 и p := 1. Эти начальные значения не меняют результат первого сложения или умножения. Начало произведения с нуля делает весь результат нулевым.

Для [2,−3,4] промежуточные суммы равны 2,−1,3, произведения — 2,−6,−24. Нулевой множитель обнуляет произведение. Тип накопителя должен вмещать результат: даже если каждый элемент помещается в integer, произведение может выйти за его пределы. В тренажёре не более 12 элементов от −20 до 20; их произведение точно представимо используемыми вычислениями.

{ Фрагмент: 0 <= n <= 12, значения от -20 до 20.
  s, p: int64; a — массив целых; i, n: integer. }
s := 0;
p := 1;
for i := 1 to n do
begin
  s := s + a[i];
  p := p * a[i];
end;
Главная мысль: Накопитель обновляют для каждого элемента: сумму начинают с 0, произведение — с 1.
2

Среднее и выбранные элементы

Среднее равно сумме значений, делённой на их количество, если количество не равно нулю.

НАБЛЮДАЙТЕ И ПРОБУЙТЕ

Среднее и выбранные элементы

Меняйте данные и выполняйте шаги. Цвет выделяет текущие элементы; подписи объясняют результат. Сброс возвращает исходный опыт.

Для n элементов среднее вычисляют как s/n. Если нужны только положительные значения, отдельно накапливают их сумму и количество. Делить на длину всего массива в таком случае неверно. Когда подходящих элементов нет, среднего по ним нет: вместо деления на нуль выводят пояснение.

Среднее может быть дробным, поэтому результат хранят в вещественном типе. Для [4,5,9] сумма 18, среднее 6. Пустая сумма по принятому соглашению равна 0, пустое произведение — 1, но среднее пустого набора не определено. Округление выполняют при оформлении ответа, сохраняя точность промежуточных вычислений.

if n > 0 then
  Writeln(s / n)
else
  Writeln('Среднее не определено');
Главная мысль: Среднее равно сумме значений, делённой на их количество, если количество не равно нулю.
3

Связанные массивы и проверка простоты

Попарные действия требуют согласованных индексов, а проверка числа — точного условия.

НАБЛЮДАЙТЕ И ПРОБУЙТЕ

Связанные массивы и проверка простоты

Меняйте данные и выполняйте шаги. Цвет выделяет текущие элементы; подписи объясняют результат. Сброс возвращает исходный опыт.

Если price[i] — цена товара, а count[i] — количество, стоимость равна сумме price[i]*count[i]. Сначала перемножают соответствующую пару, затем складывают результаты. Произведение сумм цен и количеств даёт другую величину. Единицы измерения помогают проверить смысл: цена за штуку × штуки = стоимость.

Для проверки простоты натурального x ищут делитель d от 2, пока d*d ≤ x. Найденный делитель означает составное число. Если делителя нет, x ≥ 2 простое. Числа 0 и 1 не простые и не составные. Таблица заранее найденных простых делителей сокращает проверки, но должна покрывать диапазон до √x.

Главная мысль: Попарные действия требуют согласованных индексов, а проверка числа — точного условия.
4

Круговая диаграмма

Доля элемента равна a[i]/s, а угол сектора — 360°·a[i]/s при неотрицательных данных и s > 0.

НАБЛЮДАЙТЕ И ПРОБУЙТЕ

Круговая диаграмма

Меняйте данные и выполняйте шаги. Цвет выделяет текущие элементы; подписи объясняют результат. Сброс возвращает исходный опыт.

Круговая диаграмма показывает части одного целого. Для [2,3,5] сумма 10: доли 20 %, 30 %, 50 %, углы 72°, 108°, 180°. Сначала вычисляют общую сумму, затем доли. Значение 0 даёт сектор нулевого угла.

Отрицательные числа для такой модели долей не подходят. Если все значения нулевые, целое не определено и круг строить нельзя. При программном рисовании лучше накапливать точные границы секторов и завершать последний на 360°, а не округлять каждый угол независимо: иначе могут появиться зазоры.

Главная мысль: Доля элемента равна a[i]/s, а угол сектора — 360°·a[i]/s при неотрицательных данных и s > 0.
Интерактивная практика

Исследуйте и примените

Проверьте модель на нескольких наборах данных, затем выполните самостоятельное задание.

НАБЛЮДАЙТЕ И ПРОБУЙТЕ

Лаборатория: проверьте свой вариант

Меняйте данные и выполняйте шаги. Цвет выделяет текущие элементы; подписи объясняют результат. Сброс возвращает исходный опыт.

Соберём главное

Шесть выводов

01

Накопитель обновляют для каждого элемента: сумму начинают с 0, произведение — с 1.

02

Среднее равно сумме значений, делённой на их количество, если количество не равно нулю.

03

Попарные действия требуют согласованных индексов, а проверка числа — точного условия.

04

Доля элемента равна a[i]/s, а угол сектора — 360°·a[i]/s при неотрицательных данных и s > 0.

05

Нельзя вычислять среднее, если количество выбранных элементов равно нулю.

06

Проверяйте переполнение и смысл единиц измерения.

Самопроверка

Тест: 10 вопросов

Один верный ответ. За ответ — 0,5 балла. Откройте и проверьте себя.

1. С какого значения начинают сумму?

2. С какого значения начинают произведение?

3. Какова сумма [2,−3,4]?

4. Каково произведение [2,−3,4]?

5. Каково среднее [4,5,9]?

6. Когда среднее выбранных элементов не определено?

7. Как считают стоимость нескольких товаров?

8. Является ли 1 простым числом?

9. До какой границы достаточно искать делитель x≥2?

10. Какой угол у доли 25 %?

ВыводыТестВ началоВсе параграфы
↑

Загрузка прогресса…