Перейти к содержанию
MediaSchool

Обработка массива. Сумма, количество и среднее по условию

Обойти одномерный массив, накопить сумму и количество элементов, в том числе удовлетворяющих условию. Найти среднее через сумму и количество выбранных элементов; отдельно обработать отсутствие подходящих значений. Дополнить и проверить короткую программу на обычном, нулевом и отрицательном наборе. До запуска записать ожидание и различить длину всего массива и количество отобранных элементов.

Открыт · Презентация · Методичка · Рабочий лист

Конспект урока

Обработать целочисленный массив по условию: накопить сумму и количество подходящих элементов, вычислить их среднее только при непустом отборе; проследить цикл, сохранить и запустить свою программу, проверить обычный и пустой результаты.

Все элементы — условные целые числа, включая отрицательные и ноль; списка реальных людей или измерений нет. Индексы 0…len(a)−1; i увеличивают в каждом проходе while. s — сумма, k — количество именно подходящих элементов; len(a) считает все. Среднее s/k определено только при k > 0. При k = 0 выводят «нет подходящих» (в коде no data), а не числовое среднее 0. Нулевая сумма при k > 0 может дать правильное среднее 0. Обычное деление Python / печатает приближённое float; для целого результата может появиться .0. Список, условие и порядок обработки объявлены; установка пакетов, встроенные sum/filter как замена изучаемому обходу и внешние аккаунты не требуются. Без ПК цифровая часть остаётся незавершённой до собственной практики.

Для основной цифровой практики нужна заранее подготовленная школьная среда из инструкции учителя. Прогноз и итог записывай на бумаге; при отсутствии техники цифровое действие проверяют на ближайшей компьютерной практике. Сохраняй первую попытку; исправления отмечай другим знаком.

Безопасное начало

Сухие руки, без напитков у техники. Провода и разъёмы не трогай, о неисправности сообщи учителю. Работай по правилам кабинета. Две полные минуты в середине урока — без экрана и заданий. Внешний ИИ, личные аккаунты и личные данные не требуются.

Что уже нужно знать

Из урока 016: список Python, неотрицательные индексы, len, чтение и замена элемента. Из 8 класса: while, if/else, сравнения, присваивание и арифметическое среднее; из 013/016 — сохранение и запуск своего .py. Новое — согласованные сумма и счётчик по одному условию и защита пустого отбора. Поиск, сортировка и поток без массива относятся к следующим урокам.

S0. В списке пять чисел, но условию подходят только два. Каким числом нужно делить сумму этих двух, чтобы найти их среднее: пятью или двумя? Почему?

Устная проба без отметки.

Одно условие — согласованные s и k

Сначала явно задай условие отбора. s = 0 — начальная сумма, k = 0 — начальное количество. Для каждого индекса от 0 до len(a)−1 проверь одно и то же условие; при истине прибавь значение a[i] к s и единицу к k. При ложном условии оба накопителя прежние. i = i+1 выполняй в каждом проходе while, вне if отбора. Сумма и количество относятся только к выбранным значениям, len(a) — ко всем. Ноль может подходить условию >=0: он не меняет s, но увеличивает k. Среднее выбранных равно s/k только при k>0. При k = 0 среднего нет, даже если массив непуст; выводят понятный текст. При s = 0 и k>0 среднее существует и равно 0: сумма могла компенсироваться. У пустого массива обход не выполняет тело, s = 0, k = 0 сохраняются. В Python / даёт float: целое среднее 5 может печататься 5.0, другие значения могут быть приближёнными. Не заменяй знаменатель количеством всех элементов. Проверяй обычный отбор, границу условия, непустой массив без подходящих и нулевую сумму непустого отбора. Предсказанный вывод отделяй от реально увиденного в своём сохранённом .py.

ВеличинаОтносится к
sСумме выбранных значений
kКоличеству выбранных
len(a)Числу всех элементов
s/k при k>0Среднему выбранных

Условия >0 и >=0 различаются на нуле. В коде отрицательные целые вводят обычным ASCII-минусом -, например -2. Индексы в этом уроке неотрицательные; сами элементы могут быть отрицательными.

Концептуальная иллюстрация. Точные данные определены условиями, таблицами и схемами; предметы на рисунке не являются входными данными.

Личная проба

C1. Для списка Python 3 a = [2, -1, 4, 0] выбери только значения > 0. Запиши выбранные значения, их сумму s, количество k и среднее. Ноль положительным не считается.

В 45-минутном маршруте одна минута лично, две на сверку; в 40-минутном — одна лично и одна на сверку. Памятка разрешена.

Проследить оба накопителя

Другой пример: [1, -2, 5], условие >0. Сначала s = 0, k = 0; после 1 — s = 1, k = 1; после -2 без изменения; после 5 — s = 6, k = 2. Среднее 6/2=3, а не 6/3=2. Переход к следующему индексу происходит и после неподходящего -2. В A1 свои числа и условие >=0.

A1. Список a = [6, -2, 0, 3, -3]. Условие отбора a[i] >= 0. Перед обходом s = 0, k = 0. Для i = 0, 1, 2, 3, 4: если условие истинно, выполнить s = s+a[i] и k = k+1; иначе оба прежние. После каждого элемента запиши s и k. Найди среднее выбранных и объясни роль нуля.

Заготовка для своей записи:

i / a[i]Условие?s послеk после
0 / 6
1 / -2
2 / 0
3 / 3
4 / -3

Сначала своя запись и основание, затем сверка.

Полная пауза

Две минуты без проекции, чтения, вычислений и обсуждения. Отведи взгляд и смени позу.

Не путать отсутствие элементов и нулевую сумму

Другие данные [0, -1], условие >0: len=2, но s = 0, k = 0, среднего нет. При условии >=-1 оба подходят: s = -1, k = 2, среднее -0.5. Для [-1, 1] и условия >=-1 сумма 0, количество 2, среднее 0 определено. Во всех случаях перед делением проверяют k>0, а не len и не s.

A2. После отбора положительных элементов списка [-2, 0, -5] получены s = 0, k = 0. В Python 3 выполняют фрагмент ниже. Что произойдёт? Почему проверка непустого списка не спасает? Исправь проверку и добавь понятный вывод, когда среднее не определено.

a = [-2, 0, -5]
s = 0
k = 0
if len(a) > 0:
    print(s/k)

Две минуты лично, две на guard и текст вместо деления при k = 0.

Концептуальная иллюстрация. Точные данные определены условиями, таблицами и схемами; предметы на рисунке не являются входными данными.

Свой обычный и пустой отбор

В aggregate-starter.py даны обход, счётчик, переход i и проверка k > 0. Строка s = s+0 намеренно не накапливает значения. Допиши текущий элемент, предскажи отдельно s, k и среднее, сохрани и запусти свой файл. Во второй копии измени только данные на заданный список без положительных. Тот же алгоритм выведет количество 0 и сообщение no data. У каждого свои два файла и наблюдения; чужой показ их не заменяет.

ТестЧто проверяет
Обычный отборСогласованные сумма/количество
Граничный нольСтрогое или нестрогое условие
Нет подходящихЗапрет деления на 0
Свой запускФакт исполнения нужного файла

B1. Своя работа в подготовленном Python 3. Открой aggregate-starter.py: строка s = s + 0 помечена TODO и намеренно неполна. Требуется сумма, количество и среднее только положительных значений (>0) списка [4, -1, 8, 3, 0]. Дополни правую часть прибавления значением текущего элемента; остальной каркас, условие и защиту k>0 сохрани. До запуска запиши прогноз s, k и среднего. Сохрани свой aggregate_A.py/aggregate_B.py, проверь путь и запусти именно файл; выпиши фактические две строки. В отдельной копии experiment_A.py/experiment_B.py измени только список на [-4, 0, -2], снова спрогнозируй, сохрани и запусти копию. Сравни результаты и объясни, почему во втором нет числового среднего. У каждого два своих файла, два запуска и журнал.

Заготовка для своей записи:

ДанныеПрогноз s, k и среднееФактический вывод
[4, -1, 8, 3, 0]
[-4, 0, -2]

Двенадцать минут: 1 инструкция, 5 первый, 5 второй, 1 личная сверка; на 30 ПК параллельно. Каждый сохраняет и запускает свои два файла.

Проверка вымышленного ответа ИИ

AI1. Вымышленный ИИ пишет: «Если подходящих нет, среднее равно 0. И если сумма равна 0, значит подходящих тоже нет». Исправь обе фразы. Для второй дан отдельный список [-2, 2] с условием отбора >= -2: оба значения подходят. Покажи s, k и среднее этого примера.

Это заранее составленный учебный пример. Самостоятельно проверь конкретный шаг; обращение к сервису не требуется.

Помощь и резерв

  • Делит на len(a). Перечисли выбранные и посчитай только их.
  • Забывает подходящий ноль. Проверь знак >=, обнови количество при нуле.
  • Проверяет s вместо k. Нулевая сумма возможна при двух выбранных -2 и 2.
  • Цикл стоит на месте. i = i+1 должен быть вне if отбора, внутри while.
  • Считает пустое среднее нулём. При k = 0 запиши отсутствие результата и выведи текст.

D1. Отдельный резерв. Для списка B1 [4, -1, 8, 3, 0] измени только условие >0 на >=0. На бумаге найди s, k и среднее; объясни, почему сумма прежняя, а среднее другое.

D1 — необязательный резерв на 3–4 минуты после основных попыток. При нехватке времени перенести. H1 и весь тест автоматически вместе не назначаются.

Индивидуальный итог

Четыре полные минуты лично. Условия заранее на бумаге. Памятка и разобранные модели разрешены; ключи и веб-разбор закрыты. Учитель не даёт учебных подсказок. Сбор после четырёх минут.

E1. Список [1, 4, 0, -2], условие >=1. Найди сумму s, количество k и среднее только выбранных.

E2. Какое условие нужно проверить перед вычислением среднего отобранных: s>0, len(a)>0 или k>0? Объясни на непустом списке без подходящих.

E3. В while i < len(a) отбор находится внутри if. Где должно стоять i = i+1, чтобы очередной элемент проверялся даже при ложном условии отбора?

Разбор после своей попытки

После исправления выбери один новый пример из самопроверки.

Файлы для собственной практики

Распакуй ZIP и открой aggregate-starter.py в заранее готовом Python 3. Строка s = s+0 помечена TODO. Готового решённого B1 в ученическом архиве нет. В каждом своём файле сохраняй условие и защиту пустого отбора.

Материалы и самопроверка

Презентация, самостоятельный план учителя, рабочий лист, выходной билет и бумажная самопроверка открываются отдельными карточками. DOCX можно смотреть на сайте и скачать. PDF для печати:

Самопроверка на сайте: шесть вопросов с пояснениями, отдельно 6–8 минут. Бумажная версия с письменными основаниями и разбором — 8–12 минут. Все шесть новых письменных случаев — ещё 8–10 минут; выбирай прежде всего случай к своей ошибке. Эти модули не прибавляют к основным 45 минутам и не задаются целиком вместе с H1 автоматически. Пояснения и новые случаи для бумажного разбора есть в плане учителя.

Домашний перенос

H1. Дома на бумаге 5–7 минут. Список [-3, 2, 5, 0, 9], условие >=5. Запиши выбранные, s, k и среднее. Затем измени только условие на >10: что с k и средним? ПК дома не нужен.

Полное условие и памятка есть на листе. Решение запиши в тетради. Достаточно 5–7 минут с сохранённой опорой.

Источники

ФРП информатики 7–9 классов, базовый уровень, содержание 9 класса на печатных с. 10–12, результаты с. 19–20 и тематическое планирование с. 41–42. Соответствующий час авторского КТП 2026/2027. Содержание не расширяется до углублённого курса и не подменяется подготовкой к экзамену. Учебник школы не указан; номера параграфов не назначены.

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

Проверь себя

6 вопросов по теме «Сумма, количество и среднее по условию: самопроверка». Выбери ответ, прочитай объяснение и попробуй ещё раз, если ошибся.

Открыть отдельно

Вопрос 1 из 6

Тренировка
Python 3: список [-1, 3, 0, 5], отбираются только значения >0. Каковы s, k и среднее?

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

Скачать и открыть

Материалы урока

7 материалов

Подготовка к уроку

2 материала

Рабочие листы и практика

4 материала

Проверка знаний

1 материал

От сообщества

Материалы сообщества0

Дополнения от учителей к этому уроку. Проверены модерацией, но не являются редакционным контентом MediaSchool.

Поделиться материалом

Поделитесь первым материалом

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

Комментарии

Войдите, чтобы оставлять комментарии.

Пока нет комментариев. Будьте первым!