ИНФОРМАТИКА · 8 КЛАСС
Программирование · Интерактивный конспект

§ 18. Составление алгоритмов для работы с графикой

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

Попробовать на модели ↓
Разбираемся в теме

Основные пункты параграфа

1

Опорная точка и размеры

Координаты деталей удобно выражать через общую опорную точку.

НАБЛЮДАЙТЕ И ПРОБУЙТЕ

Рисунок от опорной точки

Меняйте параметры и сравнивайте результат с объяснением. Кнопка сброса возвращает исходный опыт.

Пусть дом начинается в точке (x; y), его ширина a, высота b. Правый нижний угол корпуса имеет координаты (x + a; y + b). Если все детали используют те же x и y, изменение опорной точки переносит дом целиком.

Параметры должны иметь понятный смысл. Для прямоугольного треугольника вершины можно задать как (x; y), (x + a; y), (x; y + b). Тогда a и b — длины катетов. Координаты внутренней точки для заливки выбирают с учётом размеров: фиксированный небольшой сдвиг не гарантирует попадание внутрь любой фигуры.

Главная мысль: Координаты деталей удобно выражать через общую опорную точку.
2

Процедура рисования

Процедура объединяет команды, а параметры позволяют вызывать её для разных рисунков.

НАБЛЮДАЙТЕ И ПРОБУЙТЕ

Один алгоритм — разные размеры

Меняйте параметры и сравнивайте результат с объяснением. Кнопка сброса возвращает исходный опыт.

Вместо копирования длинного фрагмента создают процедуру, например DrawBox(x, y, w, h). Вызов с новыми аргументами строит прямоугольник в другом месте или другого размера. Порядок аргументов должен совпадать с объявлением параметров.

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

procedure DrawBox(x, y, w, h: integer);
begin
  Rectangle(x, y, x + w, y + h);
end;
Главная мысль: Процедура объединяет команды, а параметры позволяют вызывать её для разных рисунков.
3

Случайные значения

Случайность ограничивают диапазонами, подходящими для задачи.

НАБЛЮДАЙТЕ И ПРОБУЙТЕ

Допустимые случайные координаты

Меняйте параметры и сравнивайте результат с объяснением. Кнопка сброса возвращает исходный опыт.

Random(a) в PascalABC возвращает целое от 0 до a − 1 при положительном a. Поэтому Random(6) + 1 моделирует значения от 1 до 6. Вариант Random(a, b), рассматриваемый в учебнике, выбирает целое между указанными границами включительно.

Случайные координаты должны учитывать размер фигуры. Для окружности радиуса r в окне W × H допустим центр от r до W − 1 − r по горизонтали и от r до H − 1 − r по вертикали. Сначала проверьте, что такой диапазон существует. Случайный выбор не гарантирует равное число каждого результата в короткой серии.

Главная мысль: Случайность ограничивают диапазонами, подходящими для задачи.
4

Повторение и проверка композиции

Процедуры, циклы и условия позволяют строить целые серии объектов.

НАБЛЮДАЙТЕ И ПРОБУЙТЕ

Ряд или случайная композиция

Меняйте параметры и сравнивайте результат с объяснением. Кнопка сброса возвращает исходный опыт.

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

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

Главная мысль: Процедуры, циклы и условия позволяют строить целые серии объектов.
Интерактивная практика

Исследуйте и примените

Проверьте модель на нескольких наборах данных, затем выполните самостоятельное задание.

НАБЛЮДАЙТЕ И ПРОБУЙТЕ

Лаборатория: исследуйте свой вариант

Меняйте параметры и сравнивайте результат с объяснением. Кнопка сброса возвращает исходный опыт.

Соберём главное

Шесть выводов

01

Координаты деталей удобно выражать через общую опорную точку.

02

Процедура объединяет команды, а параметры позволяют вызывать её для разных рисунков.

03

Случайность ограничивают диапазонами, подходящими для задачи.

04

Процедуры, циклы и условия позволяют строить целые серии объектов.

05

Случайные данные тоже должны удовлетворять ограничениям задачи.

06

Сначала проверяйте одну фигуру, затем ряд или случайную композицию.

Самопроверка

Тест: 10 вопросов

Один верный ответ. За ответ — 0,5 балла. Откройте и проверьте себя.

1. Что даёт общая опорная точка?

2. Правый край при x = 20 и ширине 80 имеет координату…

3. Для чего нужна процедура рисования?

4. Важен ли порядок аргументов?

5. Какие значения даёт Random(6)?

6. Как получить значения 1…6?

7. Почему центр круга нельзя выбирать по всему окну?

8. Минимальный x центра круга радиуса r для полного размещения…

9. Гарантирует ли 6 бросков все значения 1…6?

10. Чем задают количество одинаково построенных объектов?

ВыводыТестВ началоВсе параграфы
↑

Загрузка прогресса…