Одномерные массивы: хранение, обработка и поиск элементов
Цели и задачи
- Цель по SMART: к концу урока научиться создавать одномерный массив из заданных элементов, обращаться к элементу по индексу и составлять алгоритм поиска суммы, максимального элемента и количества элементов, удовлетворяющих условию.
- Образовательная задача: сформировать представление о массиве как об упорядоченной совокупности однотипных данных и объяснить роль индекса.
- Развивающая задача: развивать алгоритмическое мышление через анализ последовательности действий, поиск ошибок и составление программных алгоритмов.
- Практическая задача: научиться применять цикл для последовательного просмотра элементов массива и проверять результат работы программы.
- Воспитательная задача: формировать ответственное отношение к точности записи данных, взаимопомощь при программировании и спокойное отношение к заданиям формата ОГЭ.
Планируемые результаты
Личностные
- Осознают значение алгоритмических навыков для учебной и будущей профессиональной деятельности.
- Понимают, что последовательная проверка решения снижает риск ошибки и тревожность при выполнении заданий ОГЭ.
- Проявляют готовность обсуждать разные способы решения и уважительно оценивать идеи одноклассников.
- Формируют положительную мотивацию к изучению программирования через решение практической задачи.
Метапредметные
- Выделяют входные данные, результат и последовательность действий алгоритма.
- Читают фрагмент программы, соотносят его с математическим условием и прогнозируют результат.
- Планируют решение, выполняют самопроверку по тестовым данным и корректируют найденные ошибки.
- Работают в паре, формулируют вопрос и аргументируют выбор алгоритма.
Предметные
- Знать понятия «массив», «элемент массива», «индекс», «размер массива».
- Уметь записывать элементы одномерного массива и обращаться к ним по индексу.
- Уметь организовывать последовательный просмотр массива с помощью цикла.
- Уметь составлять алгоритмы нахождения суммы, максимального элемента и количества элементов по условию.
- Уметь находить типичные ошибки: неверную границу цикла, неправильное начальное значение и обращение к несуществующему индексу.
Универсальные учебные действия (УУД)
Личностные УУД
- Определяют личную учебную цель: научиться уверенно читать и составлять алгоритмы обработки данных.
- Оценивают собственную готовность к заданиям по теме и выбирают посильный уровень практики.
- Понимают связь точности программирования с ответственностью специалиста, работающего с данными.
- Осознают, что ошибка в индексе может изменить весь результат программы.
Регулятивные УУД
- Принимают цель урока и составляют план решения задачи: понять данные, выбрать цикл, проверить результат.
- Работают по алгоритму и соблюдают заданное время выполнения практических шагов.
- Сверяют программу с эталоном на конкретном тесте и исправляют одну найденную ошибку.
- Оценивают результат по критериям и фиксируют затруднение для дальнейшей работы.
Познавательные УУД
- Классифицируют данные как элементы одной упорядоченной последовательности.
- Строят модель массива в виде таблицы «индекс — значение».
- Анализируют фрагмент программы и устанавливают соответствие между строками кода и действиями алгоритма.
- Применяют логические операции и цикл для решения задач обработки массива.
- Извлекают информацию из условия задачи и преобразуют её в алгоритм.
Коммуникативные УУД
- Объясняют напарнику назначение индекса и порядок просмотра массива.
- Задают уточняющие вопросы по условию и совместно выбирают способ решения.
- Аргументируют, почему выбранная граница цикла является корректной.
- При взаимопроверке дают конкретную обратную связь по принципу «две сильные стороны и пожелание».
Подготовка учителя к уроку
- Подготовить презентацию или экранную запись с изображением массива в виде таблицы «индекс — значение», алгоритмом перебора и тремя тестовыми примерами.
- Распечатать карточки с заданиями трёх уровней: базового — 15 экземпляров, повышающего — 15 экземпляров, дополнительного — 5 экземпляров.
- Подготовить карточки для приёма «Подумай — обсуди в паре — поделись» — по одной на парту.
- Разместить на доске памятку: «Индекс — позиция элемента; цикл — последовательный просмотр; проверка — тестовые данные».
- Подготовить компьютеры с выбранной средой программирования или редактором кода — по одному на пару.
- Подготовить мини-листы самопроверки с вопросами: «С какого индекса начинается массив?», «Какая граница цикла?», «Что происходит при выполнении условия?».
- Подготовить стикеры трёх цветов для рефлексии «Светофор» — по одному комплекту на ученика.
- Вывести на экран короткую задачу в формате ОГЭ и таблицу исходных данных для межпредметной связи с математикой и обработкой результатов измерений.
Ход урока
Этап 1. Организационный момент и мотивация (3 мин)
Цель этапа: включить учащихся в работу и показать практическую значимость массивов для обработки набора данных.
Время | Действие учителя | Действие учеников |
|---|---|---|
1 мин | Учитель приветствует класс и проверяет готовность: "Здравствуйте, ребята. Сегодня мы будем работать с данными, которые встречаются в оценках, результатах измерений, статистике и компьютерных программах. Проверьте, что у вас есть тетрадь, ручка и доступ к среде программирования. На уроке мы будем не угадывать ответ, а строить алгоритм и проверять его." | Проверяют оборудование, открывают тетради и среду программирования, записывают дату. |
2 мин | Учитель показывает на экране список температур за неделю: 18, 21, 20, 17, 19, 22, 23, и спрашивает: "Как найти среднюю температуру, самый тёплый день и количество дней с температурой выше 20 градусов? Можно ли обработать эти числа одним и тем же способом? Сегодня мы узнаем, как компьютер хранит такой набор данных." | Рассматривают список, предлагают: "Нужно последовательно просмотреть все числа", "Можно найти сумму, максимум и количество подходящих значений". Формулируют предположение: "Нужна структура для хранения набора чисел". |
Завершение этапа: учитель подводит итог: "Мы увидели, что один набор данных нужно обрабатывать по общему правилу. Теперь вспомним инструменты, которые помогут нам пройти по всем значениям последовательно."
Этап 2. Актуализация знаний (5 мин)
Цель этапа: актуализировать понятия переменной, условия и цикла, необходимые для обработки массива.
Время | Действие учителя | Действие учеников |
|---|---|---|
2 мин | Учитель организует приём «Подумай — обсуди в паре — поделись»: "Вспомните, чем переменная отличается от константы и зачем в программе нужен цикл. Сначала 30 секунд подумайте самостоятельно, затем обсудите ответ в паре и подготовьте одну точную формулировку." | Индивидуально формулируют ответы, затем в парах обсуждают их и предлагают классу: "Переменная может изменять значение", "Цикл повторяет команды". |
3 мин | Учитель записывает на доске фрагмент: `s := 0; для i от 1 до 5 выполнить s := s + i`. Спрашивает: "Сколько раз выполнится тело цикла? Как изменится значение s? Почему начальное значение суммы равно нулю?" | Составляют таблицу значений i и s, отвечают: "Пять раз", "Итоговая сумма равна 15", "Ноль не меняет результат первого сложения". |
Завершение этапа: учитель подводит итог: "Мы умеем повторять действие для последовательности шагов. Но пока каждая переменная хранит только одно значение. Сейчас выясним, как сохранить целый набор чисел под одним именем."
Этап 3. Постановка проблемы и целеполагание (4 мин)
Цель этапа: выявить затруднение при хранении нескольких однотипных значений и сформулировать учебную цель.
Время | Действие учителя | Действие учеников |
|---|---|---|
2 мин | Учитель предлагает ситуацию: "Представьте, что нужно сохранить результаты 30 участников соревнования. Можно ли создать 30 отдельных переменных и затем найти лучший результат? Какие неудобства появятся?" Учитель фиксирует ответы в виде кластера: «много имён», «сложно обращаться», «трудно обрабатывать циклом». | Обсуждают проблему и отвечают: "Это увеличит программу", "Можно перепутать переменные", "Нужен общий способ хранения". |
2 мин | Учитель показывает пустую схему и спрашивает: "Какую цель поставим на урок? Какие действия нам нужно научиться выполнять с набором чисел? Вспомните вопрос о температуре." | Формулируют цель: "Научиться хранить набор чисел в массиве и находить сумму, максимум и количество элементов по условию". Записывают тему урока. |
Завершение этапа: учитель подводит итог: "Затруднение понятно: нам нужен общий объект для однотипных значений и понятное правило обращения к каждому элементу. Откроем это правило и сразу проверим его на данных."
Посмотрите план целиком
Зарегистрируйтесь — и откройте план урока по этой теме полностью: цели, ход урока и рефлексия по ФГОС.
Этап 4. Открытие нового знания (9 мин)
Цель этапа: сформировать понятия одномерного массива, индекса и алгоритма последовательного просмотра.
Время | Действие учителя | Действие учеников |
|---|---|---|
3 мин | Учитель демонстрирует на доске таблицу: «Индекс: 0 1 2 3 4; Значение: 7 3 9 2 5». Объясняет: "Одномерный массив — это упорядоченная последовательность однотипных элементов. У каждого элемента есть индекс — его позиция. Во многих языках программирования нумерация начинается с нуля. Поэтому значение 7 имеет индекс 0, а значение 9 — индекс 2. Индекс и значение — не одно и то же." | Перерисовывают таблицу в тетрадь, называют элементы по индексам: "Под индексом 0 стоит 7", "Под индексом 2 стоит 9", "Элемент с индексом 4 равен 5". |
3 мин | Учитель записывает общий алгоритм: "Создать массив; получить или задать элементы; перебрать индексы от первого до последнего; для каждого элемента выполнить нужное действие; вывести результат." Затем спрашивает: "Что будет ошибкой: начать цикл с 1, если индексы начинаются с 0, или обратиться к индексу 5 в массиве из пяти элементов?" | Объясняют: "Начало с 1 пропустит первый элемент", "Индекс 5 не существует, потому что последний индекс равен 4". Формулируют правило: "Для пяти элементов допустимы индексы от 0 до 4". |
3 мин | Учитель разбирает задачу: "Дан массив [4, 7, 2, 9]. Найдите сумму его элементов и количество чисел, больших 5. Сначала назовите переменные и их начальные значения, затем проследите цикл." Учитель показывает таблицу трассировки на экране. | Заполняют трассировку: сумма последовательно становится 4, 11, 13, 22; счётчик больших 5 принимает значения 0, 1, 1, 2. Делают вывод: сумма равна 22, количество элементов больше 5 равно 2. |
Запись в тетрадях
- Одномерный массив — упорядоченная последовательность однотипных элементов.
- Индекс определяет положение элемента в массиве; при нумерации с нуля последний индекс массива из $n$ элементов равен $n-1$.
- Алгоритм обработки массива: пройти по индексам, выполнить действие для каждого элемента, вывести результат.
- Для суммы начальное значение обычно равно 0, для счётчика — 0, для максимума используют первый элемент массива или корректную границу значений.
Эталон решения
Для массива [4, 7, 2, 9]: $S=0$, $K=0$. После просмотра каждого элемента: $S=0+4+7+2+9=22$. Условие $a_i>5$ выполняется для 7 и 9, поэтому $K=2$. Ответ: сумма 22, количество элементов больше 5 равно 2.
Завершение этапа: учитель подводит итог: "Теперь у нас есть модель массива, правило индексации и общий алгоритм перебора. Следующий шаг — проговорить этот алгоритм и применить его к коротким заданиям, чтобы ошибка индекса не осталась незамеченной."
Этап 5. Первичное закрепление и межпредметная связь (7 мин)
Цель этапа: закрепить понятия массива и индекса через связь информатики с математикой и обработкой результатов измерений.
Время | Действие учителя | Действие учеников |
|---|---|---|
3 мин | Учитель раздаёт карточки и говорит: "Рассмотрим результаты измерения длины ростков в сантиметрах: [6, 8, 7, 10, 9]. Это пример связи информатики с биологией и математикой. В парах определите индекс элемента со значением 10, сумму всех измерений и количество значений не меньше 8. Запишите ход рассуждения, а не только ответ." | В парах составляют таблицу индексов 0–4, называют индекс значения 10: "3", вычисляют сумму 40 и количество значений не меньше 8: "3". |
2 мин | Учитель просит две пары представить решение и задаёт вопрос: "Почему нельзя назвать индексом элемента его порядковый номер 4? Что изменится, если считать с нуля?" | Объясняют: "Четвёртый по порядку элемент имеет индекс 3, если отсчёт начинается с нуля". Сравнивают решения и исправляют неточность в записи. |
2 мин | Учитель проводит мини-приём «Верно — неверно»: "В массиве из 6 элементов последний индекс равен 6. Индекс элемента — это его значение. Цикл обработки должен посетить каждый допустимый индекс." | Поднимают карточки «верно» или «неверно» и обосновывают: первое утверждение неверно, второе неверно, третье верно. |
Завершение этапа: учитель подводит итог: "Мы применили массив к данным измерений и увидели, что математическая таблица легко превращается в структуру данных. Теперь каждый самостоятельно проверит, умеет ли он строить алгоритм обработки массива."
Этап 6. Самостоятельная работа с самопроверкой (10 мин)
Цель этапа: проверить индивидуальное понимание массива, индекса и базовых алгоритмов обработки.
Время | Действие учителя | Действие учеников |
|---|---|---|
1 мин | Учитель объясняет выбор уровня: "Выполните обязательное базовое задание, затем при готовности переходите к повышенному. Ваша задача — не угадать ответ, а записать алгоритм и проверить его на тестовых данных. Если возникает трудность, отметьте место вопросительным знаком и продолжайте следующий шаг." | Выбирают карточку, записывают номер уровня и планируют порядок выполнения. |
5 мин | Учитель выдаёт задания. Базовый уровень: "Дан массив [3, 6, 1, 8, 4]. Запишите индексы всех элементов, найдите сумму и количество чётных элементов." Повышенный уровень: "Дан массив [−2, 5, 7, −1, 4]. Составьте алгоритм нахождения максимального элемента и количества положительных элементов." | Индивидуально строят таблицу индексов, выполняют вычисления или записывают псевдокод, проверяют промежуточные значения. |
2 мин | Учитель выводит эталон: "Для базовой задачи индексы равны 0, 1, 2, 3, 4; сумма равна 22; чётные элементы — 6, 8, 4, их три. Для повышенной задачи максимум равен 7, положительных элементов три. Сверьте не только ответы, но и границы цикла." | Сверяют решения, подчёркивают совпавшие результаты, исправляют одну ошибку другим цветом и отмечают её причину. |
2 мин | Учитель проводит взаимопроверку: "Обменяйтесь листами с соседом. Используйте правило ‘две звезды и пожелание’: назовите два удачных элемента решения и один конкретный совет, например проверить начальный индекс или начальное значение счётчика." | Проверяют работу по эталону, записывают два достоинства и один совет, возвращают лист владельцу. |
Эталон решения
Базовый уровень: массив имеет индексы 0–4. Сумма: $3+6+1+8+4=22$. Чётные элементы: 6, 8, 4, поэтому количество равно 3. Повышенный уровень: последовательный просмотр массива $[-2,5,7,-1,4]$ даёт максимум 7; условие $a_i>0$ выполняется для 5, 7 и 4, поэтому количество положительных элементов равно 3.
Завершение этапа: учитель подводит итог: "Вы проверили собственное решение и увидели, где возникают типичные ошибки: при выборе начального индекса, границы цикла и начального значения переменной. Осталось зафиксировать, что именно стало понятным и какой вопрос нужно взять в дальнейшую работу."
Этап 7. Рефлексия и домашнее задание (7 мин)
Цель этапа: осмыслить результат урока, снизить тревожность перед заданиями ОГЭ и определить дальнейший маршрут закрепления.
Время | Действие учителя | Действие учеников |
|---|---|---|
3 мин | Учитель проводит рефлексию «Светофор»: "Поднимите зелёную карточку, если можете объяснить, что такое массив и индекс; жёлтую — если понимаете идею, но путаетесь в цикле; красную — если нужна индивидуальная помощь. Теперь на стикере допишите одно действие, которое вы уже умеете выполнять с массивом." | Поднимают карточку, записывают: "нахожу сумму", "считаю элементы по условию", "определяю последний индекс", или формулируют затруднение. |
2 мин | Учитель задаёт контрольные вопросы: "Что хранит массив? Что обозначает индекс? Какой последний индекс у массива из 8 элементов? Почему сумма начинается с нуля?" | Отвечают: "Однотипные значения", "позицию элемента", "$7$", "ноль не изменяет результат сложения". |
2 мин | Учитель объявляет домашнее задание: "Выберите обязательный уровень; повышающий и дополнительный выполняйте по готовности. Важно: запишите алгоритм, проведите хотя бы один тест и отметьте, с какого индекса начинается массив. На следующем уроке мы продолжим обработку массивов и разберём поиск элементов, удовлетворяющих более сложному условию." | Записывают домашнее задание, задают уточняющие вопросы, отмечают выбранный уровень в дневнике. |
Завершение этапа: учитель подводит итог: "Сегодня вы научились видеть в наборе чисел массив, обращаться к элементам по индексам и строить алгоритм последовательного просмотра. Ошибка в индексе теперь становится не случайностью, а проверяемым местом программы. На следующем уроке мы усложним условия обработки и потренируем задания, близкие к формату ОГЭ."
Критерии оценивания практической работы
- «5» — верно определены индексы, выполнены все вычисления базового задания или корректно составлен повышенный алгоритм, указаны начальные значения переменных и проведена проверка на тестовых данных.
- «4» — основная логика решения верна, но допущена одна вычислительная или оформительская ошибка, не повлиявшая на понимание индекса и последовательного просмотра.
- «3» — ученик правильно определяет массив и часть индексов, но допускает ошибки в границе цикла, начальном значении суммы или подсчёте элементов; решение выполнено с опорой на эталон.
- Ниже «3» — не различает индекс и значение элемента, не может организовать последовательный просмотр даже после подсказки; требуется индивидуальное повторение по таблице «индекс — значение».
Рефлексия
Вопрос для ученика | Цель вопроса |
|---|---|
Что такое одномерный массив и что обозначает индекс его элемента? | Проверка осознания ключевых понятий и различения индекса и значения. |
Какой алгоритм нужен, чтобы найти сумму или количество элементов по условию? | Выявление понимания последовательного просмотра и роли цикла. |
Какая ошибка была для вас наиболее вероятной: неверный индекс, граница цикла или начальное значение? | Выявление индивидуальных точек затруднения для коррекции. |
Насколько уверенно вы готовы выполнить похожее задание формата ОГЭ? | Субъективная оценка освоения темы и уровня учебной тревожности. |
Завершающее слово учителя
"Сегодня мы научились превращать набор чисел в понятную для программы структуру — одномерный массив. Вы увидели, что индекс показывает позицию элемента, а цикл позволяет обработать все значения по одному правилу. Самая частая ошибка — перепутать индекс и значение или взять неверную границу цикла, поэтому всегда проверяйте массив на маленьком тесте. Спокойная пошаговая проверка помогает успешно выполнять и практические задачи, и задания формата ОГЭ. На следующем уроке мы продолжим обработку массивов и научимся строить более сложные условия."
Домашнее задание
Уровень | Что задать | Зачем |
|---|---|---|
Базовый (обязательный) | Выполнить 3 задания на массив из 5–8 целых чисел: определить последний индекс, найти сумму элементов и посчитать количество элементов, кратных 3. Для каждого задания записать тестовый пример. | Закрепляет понятия массива, индекса и последовательного просмотра; при проверке обратить внимание на границы цикла и начальное значение счётчика. |
Средний (повышающий) | Решить 2 задачи на массивы: найти максимальный элемент и количество положительных элементов; определить, сколько значений не меньше заданного числа. Записать алгоритм и результаты промежуточной проверки. | Формирует умение сочетать перебор с условием; при проверке смотреть на корректность сравнения и обновления переменной-результата. |
Продвинутый (дополнительный) | Составить программу или подробный псевдокод для массива результатов семи измерений: найти среднее значение, максимальный результат и количество элементов, превышающих среднее. Привести один тест и объяснить выбор начальных значений. | Развивает анализ и создание алгоритма; при проверке обратить внимание на порядок вычислений, тип данных и отсутствие обращения к несуществующему индексу. |
Контрольные вопросы перед выходом: «С какого индекса начинается массив в выбранной среде программирования?», «Какой последний индекс у массива из $n$ элементов при нумерации с нуля?», «Зачем перед циклом задают начальное значение суммы или счётчика?», «Как проверить, что алгоритм обработки массива не пропускает элементы?»