Федеральный портал школ России
Закрыть

Урок 31. Постановка проекта обработки данных

18.10.2026 - Андрей -

  • Учебные программы
  • Информатика

Программирование на Python и C++ · 9 класс

Урок 31 из 34 · 45 минут · Модуль «Итоговый марафон»

Уровень: начинающий программист; Python 3.

Вся программа курса

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

Результат урока: Составить проверяемый контракт файла и отчёта, алгоритм и набор приёмочных примеров для общего проекта.
Учителю: подготовка и план на 45 минут

Подготовьте компьютер, редактор, папку с правом записи, распечатку ученической части PDF, бумагу и ручку. Python 3.11+ и IDLE или редактор; запуск python lesson.py (либо python3 lesson.py). Внешние библиотеки не нужны. Установку и проверку запуска учитель выполняет заранее. Все программы, данные и ожидаемые ответы даны; регистрация детей и интернет на занятии не нужны.

Уровень — начинающий программист, 9 класс. Предпосылки: текстовые файлы, списки, функции, сортировка и поиск. В паре автор прогнозирует и вводит код, проверяющий ведёт журнал, затем роли меняются. Без компьютера выполните трассировку полного кода на бумаге и сопоставьте с готовыми результатами; учитель демонстрирует подготовленный запуск. Бумажный вариант не считается фактическим запуском ученика. Перед практикой учитель выдаёт готовый файл разобранного примера, чтобы дети тратили время на изменение и проверку, а не длинное перепечатывание. Матрица программы предназначена учителю.

МинутыРаботаРезультат
0–5ПроблемаВопрос и первое решение
5–14Понятия и примерСпособ проверки
14–25Практика 1Готовый продукт и проверка
25–33Практика 2Перенос способа
33–40ОбсуждениеАргумент и ограничение
40–45Индивидуальная проверкаСамостоятельный ответ

01. Проблемная ситуация

0–5 минут. Файл содержит 12 25 20 8 25. Один автор считает только значения >20, другой >=20. Чьи ответы 2 и 3 верны? Запишите, какого уточнения не хватает в задании.

02. Понятия и разобранный пример

5–14 минут: 4 минуты на понятия, 3 на пример, 2 на объяснение способа партнёру.

Контракт до кода

Проект четырёх завершающих уроков: отчёт о длительностях учебных запусков, в минутах. Эти числа вымышлены. Файл data.txt в UTF-8 содержит от 0 до 100 неотрицательных целых 0…1000, разделённых пробельными символами. Допустимы только ASCII-цифры без знака и точки. Пустой файл допустим. Порог q=20 минут, требуется количество значений не меньше порога.

result.txt: первая строка содержит n, сумму минут, количество значений >=20 через пробел; вторая — все исходные значения, упорядоченные по неубыванию, с сохранением повторов. Обе строки заканчиваются переводом строки. Для пустоты первая строка 0 0 0, вторая пустая. Файлы именуются точно, повторный успешный запуск заменяет предыдущий result.txt.

На неверном токене, числе вне диапазона, более 100 значениях или ошибке чтения программа сообщает ERROR и не записывает новый отчёт. Старый отчёт не означает успех текущего запуска: перед тестом используем отдельную папку. Алгоритм: чтение → разбор и проверка → вычисление → запись. На этом занятии составляем спецификацию и проверяем ядро; полный файловый конвейер собирается на следующем.

Отступы набирайте обычными пробелами: 4 на уровень. При копировании с веб-страницы замените неразрывные пробелы обычными; полный код с обычными пробелами есть в PDF.

Для 12 25 20 8 25: n=5, сумма 90 минут, >=20 — три значения. Первая строка отчёта 5 90 3, вторая 8 12 20 25 25. Два значения 25 сохраняются. Ядро ниже получает уже проверенный список; оно не читает файл и не проверяет токены.

def report(a, q):
    b = sorted(a)
    count = sum(x >= q for x in a)
    return len(a), sum(a), count, b

print(report([12,25,20,8,25],20))
Контракт общего проекта: единицы и смысл каждой части отчёта.
Контракт общего проекта: единицы и смысл каждой части отчёта.

03. Практика 1. Проверяем материал

Составляем спецификацию

14–25 минут. В паре составьте лист спецификации, не меняя заданный контракт.

Файл data.txtРабота проектировщика
12 25 20 8 25Выписать обе строки
Пустой файлОпределить две строки
0 20 20Проверить ноль и повторы
12 2.5Определить ошибку

2 минуты — перечень входов и единиц; 4 — четыре ожидаемых результата; 3 — алгоритм из четырёх этапов; 2 — взаимная проверка. Форма: вход / статус / первая строка / вторая строка. Критерии: порог включён, повторы сохранены, пустота описана, ошибочный файл не превращён в частичный отчёт.

Практика 1: разбор и критерии

Обычный: 5 90 3 и 8 12 20 25 25. Пустой: 0 0 0 и пустая строка. 0 20 20: 3 40 2 и 0 20 20. 12 2.5: ERROR, нового отчёта нет. Чтение только корректного префикса 12 нарушило бы контракт целого файла.

04. Практика 2. Перенос способа

Разбираем спорный файл

25–33 минуты. Получен файл со строками «020 5» и «1001». За 2 минуты решите судьбу 020 и 1001, за 3 составьте исправленный допустимый пример с тем же числом токенов, за 3 запишите ожидаемый отчёт. Отдельно решите судьбу -0, +5 и 5.0.

Практика 2: разбор и критерии

020 допустим и означает 20; 1001 вне диапазона, весь файл отклоняется. Например, заменить 1001 на 1000: первая строка 3 1025 2, вторая 5 20 1000. -0,+5,5.0 не состоят только из ASCII-цифр и отклоняются. Критерии: не путать формат токена и числовой диапазон, не терять данные молча.

05. Обсуждение и границы вывода

33–40 минут. Предлагается пропускать плохие токены ради удобства. За 2 минуты назовите выгоду, за 3 покажите риск на 12 2.5, за 2 предложите явную альтернативу, не меняя контракт незаметно.

Обсуждение: возможный вывод

Пропуск облегчает получение хоть какого-то результата, но скрывает потерю данных и меняет n и сумму. В этом проекте отклоняем файл целиком. В другом проекте возможен отдельный режим пропуска с журналом отвергнутых строк, но он требует нового контракта и тестов.

06. Индивидуальная проверка

40–45 минут. Для файла 20 0 3 укажите две строки отчёта, единицы суммы и одну причину отказа. Четыре балла.

Индивидуальная проверка: ответ и критерии

3 23 1; 0 3 20; сумма в минутах; например токен 2.5 или значение 1001. По баллу за каждый пункт.

07. Соответствие исходной программе

Пункт программы → действие → результат
Пункт программыДействие ученикаПроверяемый результат
Повторение и обобщение: файлы, функции, сортировка, поискСоставляем спецификациюСоставить проверяемый контракт файла и отчёта, алгоритм и набор приёмочных примеров для общего проекта.
Самостоятельная проверка результатаРазбираем спорный файлОбоснованный ответ и исправление ошибки
Источники и права на изображения

Тексты, учебные данные, реплики, программы и схемы подготовлены для уроков портала «Школы России». Числовые серии — учебные модели, не результаты проведённых классом опытов. Схемы авторские, сторонние фотографии не используются. Методические ссылки приведены для учителя; ученик получает все материалы здесь. Проверка первичных источников: 18.10.2026.