
- •Глава 12 графика
- •1. Общие сведения
- •2. Инициализация графической системы. Обработка ошибок. Переключение режимов
- •Initgraph (&gd, &gm,"путь к bgi-файлам");
- •3. Работа с окнами и координатами
- •4. Графические примитивы
- •1 Способ:
- •2 Способ:
- •5. Включение .Bgi-драйверов в .Exe-файл
- •Примеры решения задач Задача a
- •Задание для самостоятельной работы
- •Задача b
- •Задание для самостоятельной работы
- •Задача c
- •Задание на программирование Задача 1
- •Задача 2
- •Задача 3
- •Задача 4
- •Задача 5
- •Задача 6
- •Задача 7
- •Задача 8
- •Задача 9
- •Задача 14
- •Задача 15
- •Задача 16
- •Задача 17
- •Задача 29
- •Задача 37
- •Задача 39
- •Задача 40
Задание на программирование Задача 1
Игровая доска имеет 9 лунок, в которых лежат 4 черных и 4 белых шара так, как показано на рисунке. Требуется передвинуть черные шары на место белых, а белые - на место черных за наименьшее число ходов. Шар можно передвигать либо в соседнюю с ним пустую лунку, либо в пустую лунку, которая находится непосредственно за ближайшим шаром.
¡
|
¡
|
¡
|
¡
|
|
l |
l |
l |
l |
Задача 2
Построить секторную и столбчатую диаграммы, показывающие соотношение во введенном тексте следующих групп символов:
а) гласных;
б) сонорных согласных: л,м,н,р;
в) глухих согласных;
г) парных глухим звонких согласных;
д) шипяще - свистящих согласных;
е) остальных букв: й,х,ъ,ь.
Задача 3
Показать смену поколений в колонии ЖИЗНИ (см. [8]). Картины менять по нажатию какой-либо клавиши. Клетки переходят из одного состояния в другое по следующим правилам:
- если у клетки менее двух соседей, то она погибает от "одиночества";
- если у клетки более трех соседей, то она погибает от "перенаселения";
- если пустая ячейка имеет ровно трех соседей, то в следующем поколении в ней возникает новая клетка;
- гибель и рождение клеток происходят в момент смены поколения;
- любая клетка может иметь 8 соседей: это ячейки, имеющие с данной хотя бы одну общую точку.
Пример смены поколений:
1) 2) 3) ·
· · · · ·
· · · · · · · · · ·
· · · · ·
·
Задача 4
Игровая доска имеет 11 лунок, в которых лежат 5 черных и 5 белых шаров так, как показано на рисунке. Требуется передвинуть черные шары на место белых, а белые - на место черных за наименьшее число ходов. Шар можно передвигать либо в соседнюю с ним пустую лунку, либо в пустую лунку, которая находится непосредственно за ближайшим шаром. Причем, белые шары разрешается двигать лишь влево, а черные - лишь вправо.
l |
l
|
l |
l |
l |
|
¡ |
¡ |
¡ |
¡ |
¡ |
Задача 5
а) Составить программу, которая генерирует различные прямоугольные проходимые лабиринты с одним входом и одним выходом (см. [7]).
б) Составить программу, которая генерирует различные круговые проходимые лабиринты с одним входом и одним выходом.
Задача 6
В центре экрана сидит "жучок", который может перемещаться по прямой на указанное расстояние и поворачивать направо и налево на заданный угол. Кроме того, у жучка есть "перо", которое может оставлять след, повторяющий движение жучка. Эти действия выполняются с помощью команд:
- forward(x) (перемещение на расстояние x);
- left(alfa) (поворот налево на alfa градусов)
- right(alfa) (поворот направо на alfa градусов)
- PenUp (поднять перо, т.е. не оставлять след)
- PenDown (опустить перо, т.е. oставлять след)
Реализовать эти команды в виде отдельных функций и с их помощью вывести на экран изображение.