Смета получилась больше ожидаемого. Ошибка в ценах или в скобках? Разберём вычисление по действиям и проверим код независимым расчётом.
Учителю: подготовка и план на 45 минут
Подготовьте компьютер, локальную папку с правом записи, Python/IDLE, распечатку ученической части PDF, бумагу и ручку. Внешние библиотеки не нужны: только стандартный Python 3.11 или новее. Все программы, входные данные, таблицы и ключи находятся в статье и PDF. Детские аккаунты, сеть и регистрация не нужны.
Уровень — начинающий, 7 класс. Предпосылки: ввод, переменные и последовательность команд. Работа в паре: автор прогнозирует и вводит код, проверяющий ведёт журнал; затем роли меняются. На бумаге трассируйте готовый код и входные данные; для графики используйте координатную сетку и схему. Учитель может показать заранее полученный вывод/PNG. Бумажный вариант проверяет понимание, но не выдаётся за реальный запуск учеником. Чтение, ввод и проверка включены в план. Матрица программы — материал учителя.
| Минуты | Работа | Результат |
|---|---|---|
| 0–5 | Проблема | Вопрос и первое решение |
| 5–14 | Понятия и пример | Способ проверки |
| 14–25 | Практика 1 | Готовый продукт и проверка |
| 25–33 | Практика 2 | Перенос способа |
| 33–40 | Обсуждение | Аргумент и ограничение |
| 40–45 | Индивидуальная проверка | Самостоятельный ответ |
01. Проблемная ситуация
Для одного стенда нужно 4 листа по 12 рублей и 3 полосы по 8 рублей. Стендов два. Сравните 2*(4*12+3*8) и 2*4*12+3*8: какая запись учитывает все полосы? За 5 минут подпишите смысл каждого множителя.
02. Понятия и разобранный пример
5–14 минут: 4 минуты на понятия, 3 на пример, 2 на объяснение способа партнёру.
Выражение и порядок операций
int хранит целое число. input возвращает строку, поэтому для вычислений используем int(input()). Договор занятия: вводится корректная запись целого числа в отдельной строке; количество и цена неотрицательны. Проверка произвольного текста — отдельная задача.
Скобки выполняются раньше умножения; умножение — раньше сложения. Выражение 2*(4*12+3*8) даёт 144, а 2*4*12+3*8 — 120: во втором случае полосы посчитаны только для одного стенда.
Промежуточные переменные показывают смысл: one — цена одного стенда, total — общая цена. Python int не ограничен привычными 32 битами, но память и время компьютера конечны. Для этих задач деление не требуется: результат остаётся целым.
Отступы набирайте обычными пробелами: 4 на уровень. При копировании с веб-страницы замените неразрывные пробелы обычными; полный код с обычными пробелами есть в PDF.
Разобранный пример: 4*12=48; 3*8=24; one=48+24=72; total=2*72=144. Код ниже читает только число стендов; остальные данные фиксированы условием. При вводе 0 вывод 0 — нет стендов, нет расходов в этой модели.
| stands = int(input()) one = 4 * 12 + 3 * 8 total = stands * one print(total) |

03. Практика 1. Проверяем материал
Считаем материалы для стенда
Учебная модель сметы: цены фиксированы, скидок и других расходов нет. Все входные строки и ответы приведены.
| Ввод: стенды | Ожидаемая стоимость, руб. |
|---|---|
| 2 | 144 |
| 5 | 360 |
| 0 | 0 |
Прогнозируйте результаты таблицы, затем запустите пример трижды. Добавьте вывод стоимости одного стенда отдельной первой строкой и общей стоимости второй. Сохраните estimate.py. В журнале тестов запишите ввод, ожидаемый и фактический вывод. Критерии: скобки/промежуточная переменная, int для ввода, две строки в нужном порядке, пройденный нулевой тест.
Практика 1: разбор и критерии
Для всех трёх запусков первая строка 72, вторая — 144, 360 или 0. Полный код ниже. По 1 баллу за четыре критерия.
| stands = int(input()) one = 4 * 12 + 3 * 8 total = stands * one print(one) print(total) |
04. Практика 2. Перенос способа
Переносим способ на рамку
Новая задача: у прямоугольной рамки длина a см и ширина b см, нужно k одинаковых рамок. Каждое значение вводится отдельной строкой; a,b положительные целые, k неотрицательное. Напишите frame.py, выводящий общую длину планок в сантиметрах без запаса. Тесты: 20,10,3 → 180; 1,1,1 → 4; 20,10,0 → 0. Не используйте цены предыдущей задачи.
Практика 2: разбор и критерии
Периметр одной рамки 2*(a+b), общая длина k*2*(a+b). Для 20,10,3: 2*30*3=180 см. Критерии: три ввода, полный периметр, умножение на k, все тесты.
| a = int(input()) b = int(input()) k = int(input()) perimeter = 2 * (a + b) print(k * perimeter) |
05. Обсуждение и границы вывода
Что надёжнее: короткая запись одной строкой или несколько именованных промежуточных величин? Обоснуйте выбор для сметы; предложите случай, когда короткая запись остаётся понятной.
Обсуждение: возможный вывод
Обе записи могут быть верными. Имена one и total позволяют проверить смысл и легче найти пропущенный множитель. Простое выражение 2*(a+b) читается ясно; длина программы сама по себе не критерий правильности.
06. Индивидуальная проверка
В набор входят 3 карандаша по 7 руб. и 2 блокнота по 15 руб. Наборов 4. Запишите выражение и результат; объясните, чему равен результат при нуле наборов. Критерии: скобки, число, нулевой случай.
Индивидуальная проверка: ответ и критерии
4*(3*7+2*15)=4*(21+30)=204 руб.; 0*(21+30)=0. По 1 баллу за три критерия.
07. Соответствие исходной программе
Пункт программы → действие → результат
| Пункт программы | Действие ученика | Проверяемый результат |
|---|---|---|
| Обработка целых чисел. Арифметические выражения | Переводит смету и периметр в выражение | Верные значения и порядок операций |
| Консольный ввод и вывод | Преобразует строку в int | Три проверенных теста |
Источники и права на изображения
Тексты, учебные данные, реплики, программы и схемы подготовлены для уроков портала «Школы России». Числовые серии — учебные модели, не результаты проведённых классом опытов. Схемы авторские, сторонние фотографии не используются. Методические ссылки приведены для учителя; ученик получает все материалы здесь. Проверка первичных источников: 17.10.2026.