Конспект урока информатики по теме: «Нахождение минимального и максимального значения элементов последовательности» (9 класс)
Автор: Зубаилова Разият Арсаналиевна
Организация: МКО Утамышская СОШ им. А. Гамринского
Населенный пункт: Республика Дагестан, с. Утамыш
Цель: научить учащихся базовому алгоритму поиска min/max в массиве через наглядность и пошаговую отработку.
Время: 45 мин.
1. Мотивация (5 мин)
Что делаем: связываем тему с жизнью.
Примеры:
«Кто в классе самый высокий? Самый низкий?»
«Какая была самая тёплая/холодная температура на прошлой неделе?»
«Кто набрал больше всего баллов в игре? Меньше всех?»
Вывод: везде, где есть список чисел, можно найти самое большое и самое маленькое.
2. Наглядное объяснение алгоритма (10 мин)
Шаг 1. Визуализация
Раздать ученикам карточки с числами (например: [5, 2, 8, 1]).
Попросить «вручную» найти min и max, выкладывая карточки в ряд.
Шаг 2. Блок‑схема (рисуем на доске):
Берём первый элемент → это и min, и max.
Для каждого следующего элемента:
если он меньше текущего min → обновляем min;
если он больше текущего max → обновляем max.
Выводим min и max.
Шаг 3. Таблица трассировки
Заполняем вместе с классом:
|
Шаг |
Текущий элемент |
min |
max |
Пояснение |
|
1 |
5 |
5 |
5 |
Первый элемент — стартовые значения |
|
2 |
2 |
2 |
5 |
2 < 5 → обновляем min |
|
3 |
8 |
2 |
8 |
8 > 5 → обновляем max |
|
4 |
1 |
1 |
8 |
1 < 2 → обновляем min |
Ключевая фраза: «Первый элемент — наш стартовый рекорд!»
3. Простой код (10 мин)
Язык: Python (максимально упрощённый).
Код:
python
a = [5, 2, 8, 1] # Пример массива
min_val = a[0] # Шаг 1: первый элемент — стартовый min
max_val = a[0] # Шаг 1: первый элемент — стартовый max
for i in range(1, len(a)): # Шаг 2: со второго элемента (индекс 1)
if a[i] < min_val: # Если текущий элемент меньше min
min_val = a[i] # Обновляем min
if a[i] > max_val: # Если текущий элемент больше max
max_val = a[i] # Обновляем max
print("Min:", min_val) # Шаг 3: выводим результатыprint("Max:", max_val)
Разбор кода:
a[0] — первый элемент массива.
range(1, len(a)) — цикл начинается со второго элемента (индекс 1).
Два отдельных условия if — проверяем и min, и max.
4. Практическая работа (15 мин)
Задачи (выбрать 1–2):
1.Дан массив [10, 3, 7, 1, 9]. Найти min и max.
- Дан массив из 5 случайных чисел (использовать
random.randint(1, 20)). Вывести min и max.
3.Дан массив [4, 4, 4, 4]. Что будет в min и max?
Шаги для учеников:
1.Скопировать шаблон кода.
2.Подставить свой массив.
3.Запустить программу.
Проверить результат по таблице трассировки.
Помощь учителя:
-Ходить по классу, помогать индивидуально;
-Для застрявших — дать карточку с подсказками:
1.Первый элемент — это и min( max)
2.Цикл начинается с индекса 1.
3.Сравнивай текущий элемент с min и max.
5. Закрепление (3 мин)
Устные вопросы:
1.Почему min_val и max_val изначально равны первому элементу?
2.Почему цикл начинается с 1, а не с 0?
3.Что будет, если в массиве все числа одинаковые?
Ответы:
1.Чтобы было с чем сравнивать следующие элементы.
2.Первый элемент уже учтён как стартовый min/max.
3.min и max будут равны этому числу.
6. Домашнее задание (2 мин)
Вариант 1 (базовый):
- Повторить алгоритм по конспекту.
- Решить задачу: дан массив [2, 8, 3, 6]. Найти min и max «вручную» (заполнить таблицу трассировки).
Вариант 2 (с поддержкой):
-Дописать код по шаблону (как на уроке).
- Привести 2 своих примера, где нужно искать min/max (например, возраст учеников, цены в магазине).
Критерии оценки
«5»: решил 2 задачи, может объяснить код и таблицу трассировки.
«4»: решил 1 задачу, есть мелкие ошибки (исправлены с подсказкой).
«3»: понял алгоритм, но не смог написать код самостоятельно.
«2»: не разобрался в логике даже с помощью учителя.
Важные акценты для учителя
- Не торопите! Дайте время «прочувствовать» каждый шаг.
- Хвалите за малейшие успехи («Ты правильно нашёл min в первом шаге!»).
-Избегайте терминов вроде «оптимизация», «сложность алгоритма».
Используйте метафоры:
- «min — это самый лёгкий камень, max — самый тяжёлый».
- «Мы идём по списку, как по лестнице, и сравниваем каждый шаг с рекордами».
Повторяйте ключевые идеи:
- «Первый элемент — наш стартовый рекорд».
- «Цикл — это прогулка по остальным числам».
Итог:
- Ученики освоят базовый алгоритм, если:
- материал подан наглядно (карточки, таблица, блок‑схема);
- есть много практики с поддержкой;
-создана комфортная атмосфера без страха ошибиться.
- перевод for i in range(1, len(a))
Фраза for i in range(1, len(a)) на Python переводится на русский язык так:
«для i в диапазоне от 1 до длины массива a (не включая саму длину)»
Приложения
1.Разбор по компонентам
for — ключевое слово, означающее «для каждого» / «перебрать все».
i — переменная‑счётчик (обычно обозначает индекс элемента).
in — означает «в» / «из».
range(1, len(a)) — функция, создающая последовательность чисел:
1 - начальное значение (индекс второго элемента, т. к. индексация с 0);
len(a)
длина массива a (например, если в массиве 5 элементов, len(a) = 5);
диапазон будет: 1, 2, 3, 4 (верхняя граница не включается).
Смысл на русском «Перебрать индексы элементов массива a со второго элемента
(индекс 1) до последнего (индекс len(a) − 1),
на каждом шаге помещая текущий индекс в переменную i».
Пример
Если a = [10, 20, 30, 40], то:
len(a) = 4;
range(1, 4) даёт числа: 1, 2, 3;
цикл выполнит 3 шага:
шаг 1: i = 1 → работаем с a[1] = 20;
шаг 2: i = 2 → работаем с a[2] = 30;
шаг 3: i = 3 → работаем с a[3] = 40Почему начинается с 1?
В алгоритме поиска min/max первый элемент (a[0]) уже использован как начальное значение для min_val и max_val. Поэтому цикл стартует со второго элемента (индекс 1), чтобы не сравнивать первый элемент сам с собой.
2.
Задача 1. Поиск min и max в массиве [10, 3, 7, 1, 9]
Алгоритм по шагам:
Инициализация:
min_val = 10 (первый элемент);
max_val = 10 (первый элемент).
Элемент 3 (индекс 1):
3 < 10 → обновляем min_val = 3;
3 < 10 → max_val остаётся 10.
Элемент 7 (индекс 2):
7 > 3 → min_val остаётся 3;
7 < 10 → max_val остаётся 10.
Элемент 1 (индекс 3):
1 < 3 → обновляем min_val = 1;
1 < 10 → max_val остаётся 10.
Элемент 9 (индекс 4):
9 > 1 → min_val остаётся 1;
9 < 10 → max_val остаётся 10.
Ответ:
Минимальный элемент: 1
Максимальный элемент: 10
Задача 2. Массив из 5 случайных чисел: поиск min и max
Полный код на Python:
python
import random
# Генерируем массив из 5 случайных чисел от 1 до 20
array = [random.randint(1, 20) for _ in range(5)]
# Выводим сгенерированный массивprint("Сгенерированный массив:", array)
# Инициализируем min и max первым элементом
min_value = array[0]
max_value = array[0]
# Проходим по остальным элементам (начиная с индекса 1)for i in range(1, len(array)):
if array[i] < min_value:
min_value = array[i]
if array[i] > max_value:
max_value = array[i]
# Выводим результатыprint("Минимальный элемент:", min_value)print("Максимальный элемент:", max_value)
Пример вывода (результаты варьируются из‑за случайности):
Сгенерированный массив: [14, 3, 18, 7, 12]
Минимальный элемент: 3
Максимальный элемент: 18
Пояснение работы кода:
import random — подключаем модуль для генерации случайных чисел.
[random.randint(1, 20) for _ in range(5)] — создаём список из 5 чисел, каждое от 1 до 20.
min_value = array[0], max_value = array[0] — задаём начальные значения min/max.
for i in range(1, len(array)) — цикл по индексам со второго элемента (индекс 1) до конца.
Условия if — сравниваем текущий элемент с текущими min/max и обновляем их при необходимости.
print() — выводим итоговые значения.
Важные замечания:
При каждом запуске программы массив будет разным
(из‑за random.randint).
Алгоритм корректно работает для любого набора чисел.
Цикл начинается с индекса 1, потому что первый элемент уже учтён при инициализации.


