Проверить программы онлайн · файлы остаются в браузере

Дискретизация: длины и площади — практикум

10 класс, углублённый уровень. Занятие пятнадцатое. Компьютер не может перебрать все точки отрезка — их бесконечно много. Поэтому отрезок режут на n частей, кривую — на звенья ломаной, фигуру — на клетки, и считают по ним: это и есть дискретизация. Чем мельче части, тем точнее ответ.

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

Часть 1. Тренажёр: как считают по частям

Шесть типов задач, по одной на каждый. Считать в уме или на бумаге: выпиши столбиком, что происходит на каждом шаге цикла. Ответ — всё напечатанное через пробел, так, как печатает Python: вещественное число с точкой (2.0, а не 2), дробная часть через точку, а не через запятую. Ошибся — ниже появится разбор рисунком: таблица шагов и что напечатано, — и кнопка «Новые числа»: реши такую же ещё раз.

0 верно из 6

Часть 2. Как считают длины и площади

Разбиение отрезка

Отрезок [a; b] делят на n равных частей. Шаг — h = (b - a) / n, деление «/», а не «//»: целое деление потеряет остаток, и части не дойдут до b. Часть номер i — это [a + i·h; a + (i + 1)·h], её середина — a + i * h + h / 2. Цикл — for i in range(n): частей ровно n, сколько бы ни округлялось вещественное h.

Площадь под графиком — прямоугольники

фрагмент программы — набери его сам

Фигуру под графиком режут на n полосок и каждую заменяют прямоугольником высотой f(x). Точку x можно взять на левом конце части, на правом или в середине. Настоящая площадь под y = x² на [0; 2] — 2.667; при n = 4 левые прямоугольники дают 1.75, правые 3.75, средние 2.625. При n = 1000 средние дают 2.667 — до тысячных точно.

Площадь — трапеции

Верх полоски — не горизонталь, а хорда от f(x) до f(x + h): площадь трапеции (f(x) + f(x + h)) / 2 * h. Для прямой y = k·x + c трапеции точны при любом n; для y = x² на [0; 2] при n = 4 они дают 2.75 — хорда над параболой лежит выше графика.

Длина кривой — ломаная

фрагмент программы — набери его сам

Кривую заменяют ломаной с вершинами на графике. Звено — гипотенуза: катеты Δx = x₂ − x₁ и Δy = f(x₂) − f(x₁). Ломаная всегда чуть короче кривой и с ростом n приближается к ней: для y = x² на [0; 2] одно звено — 4.472, два — 4.576, четыре — 4.627, тысяча — 4.647.

Площадь фигуры — клетки

Фигуру накрывают сеткой клеток со стороной h и считают клетки, у которых центр внутри фигуры. Площадь ≈ число клеток × h². Круг радиуса 1 при h = 1 выходит квадратом из четырёх клеток — площадь 4; при h = 0.5 — 3.0; при h = 0.1 — 3.16; при h = 0.02 — 3.144, почти π.

Часть 3. Практическая работа: длины кривых и площади фигур

Задание 1 Площадь под графиком

Программа код читает в одной строке три целых числа код, код и код (−10 ≤ a < b ≤ 10, 1 ≤ n ≤ 1000). Она печатает площадь под графиком y = x² на отрезке [a; b], посчитанную методом средних прямоугольников из n частей: высота каждого прямоугольника — значение функции в середине части.

Вход

0 2 4

Вывод

2.625

Проверяется: одна часть, [0; 2] из двух частей (левые прямоугольники здесь дают 1.000, трапеции 3.000, средние 2.500), отрезок левее нуля, n = 1000 и случайные.

Если застрял

Шаг код, сумма код. Цикл код: середина части код, к сумме прибавляется код. После цикла — код.

Задание 2 Длина кривой

Программа код читает в одной строке три целых числа код, код и код (−5 ≤ a < b ≤ 5, 1 ≤ n ≤ 1000). Она печатает длину графика y = x² на отрезке [a; b], посчитанную ломаной из n звеньев: вершины ломаной — точки графика с x = a, a + h, …, b.

Вход

0 2 2

Вывод

4.576

Проверяется: одно звено, [−1; 1] из двух звеньев (2.828), одно крутое звено, n = 1000 и случайные.

Если застрял

Звено номер i идёт от код до код. Его длина — код, не забудь код в начале. Звеньев ровно n: код.

Задание 3 Площадь круга по клеткам

Программа код читает в одной строке два целых числа: радиус код (1 ≤ R ≤ 10) и код (1 ≤ n ≤ 20, R·n ≤ 100). Круг x² + y² ≤ R² накрыт квадратом [−R; R] × [−R; R], разбитым на клетки со стороной h = 1 / n. Программа считает клетки, центр которых лежит в круге, и печатает приближённую площадь круга: число таких клеток × h².

Вход

1 2

Вывод

3.000

Проверяется: R = 1 и n = 1 (четыре клетки — площадь 4.000), мелкая сетка единичного круга, R = 2 крупными клетками, R = 3 и n = 20 (почти π·9) и случайные.

Если застрял

Два вложенных цикла: код и такой же по код. Центр клетки — код, код. Если код — клетку считаем. Площадь — код.

Часть 4. Сдача

  1. Три файла лежат в одной твоей папке, отладочные print убраны.
  2. В общей папке двойной щелчок по Проверка.bat.
  3. «Найти мои файлы» → «Проверить всё».
  4. Покажи учителю два экрана: тренажёр наверху этой страницы и итог оболочки.
Если вместо окна открылся текст программы — файл открылся в IDLE как код. Нажми F5, окно появится.

Оболочка показывает, на каких данных программа ошиблась, что она вывела и что должна была. Исправляй и проверяй снова, попыток сколько угодно. Отметка: три задания — «5», два — «4», одно — «3».

Подсказка: дискретизация

Дискретизация

Непрерывное — отрезок, кривую, фигуру — заменяют конечным набором частей и считают по ним. Чем мельче части, тем точнее и тем дольше.

Разбиение отрезка

h = (b − a) / n. Часть i — [a + i·h; a + (i + 1)·h], середина — a + i·h + h / 2. Цикл for i in range(n).

Прямоугольники

Площадь под графиком ≈ сумма f(x)·h, x — левый конец, правый или середина части. У возрастающей f левые дают меньше, правые — больше.

Трапеции

Площадь части — (f(x) + f(x + h)) / 2 · h. Для прямой — точно.

Длина кривой

Ломаная из n звеньев с вершинами на графике. Звено — √(Δx² + Δy²). Ломаная чуть короче кривой.

Клетки

Фигуру накрывают сеткой со стороной h, считают клетки с центром внутри. Площадь ≈ число клеток · h².

Материалы подготовлены с использованием технологий искусственного интеллекта.