Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практикум на ЭВМ_126_6сем.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
276.99 Кб
Скачать

Раздел 4. Графика

См. глава 12 (задачник В.К. Томшина)

Задача 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

В центре экрана сидит "жучок", который может перемещаться по прямой на указанное расстояние и поворачивать направо и налево на заданный угол. Кроме того, у жучка есть "перо", которое может оставлять след, повторяющий движение жучка. Эти действия выполняются с помощью команд:

- forward(x) (перемещение на расстояние x);

- left(alfa) (поворот налево на alfa градусов)

- right(alfa) (поворот направо на alfa градусов)

- PenUp (поднять перо, т.е. не оставлять след)

- PenDown (опустить перо, т.е. oставлять след)

Реализовать эти команды в виде отдельных функций и с их помощью вывести на экран изображение.

Задача 6

В точке Р находится собака, а в точке Q – кошка. Расстояние между ними равно 100 м.Кошка бежит вдоль прямой S с постоянной скоростью 5 м/с. Собака бежит в направлении кошки со скоростью 10 м/с. Найти траекторию собаки за первые 15с погони.

Указание. Замените кривую ломаной: за первую секунду кошка пробегает отрезок QQ', а собака - PP'; за вторую - соответственно Q'Q'' и P'P'', и т.д. В начале каждой секунды собака принимает решение о направлении погони.

Задача 7

Осуществить вращение прямоугольника в плоскости экрана вокруг одной из своих вершин.

Задача 8

Изобразить на экране приборную доску, на которой находятся лампочки, тумблеры и прямоугольные кнопки (с тенью). Обеспечить возможность:

- включать/выключать лампочки (сопровождать звуком);

- манипулировать тумблерами;

- нажимать на кнопки (тень исчезает) и возвращать их в исходное положение.

Задача 9

Квадратная металлическая пластина является деталью некоторого устройства. Во время работы устройства во всех точках края пластины поддерживается определенная температура. На пластину нанесена квадратная сетка.

Распределение температуры в принадлежащих к краю узлах сетки показано на рисунке:

200 300 200

200

200

250

200

200

200

100 150 100

Из физических законов, описывающих перенос тепла, известно, что при достаточно малой длине стороны ячейки сетки температуру в каждом внутреннем узле сетки можно считать равной среднему арифметическому температур в ближайших четырех узлах. Т.е. для узла А его температура определяется через температуры четырех соседних узлов B, C, D, E так:

.

Требуется найти распределение температур во всех внутренних узлах сетки (составить и решить систему из 9 уравнений) и изобразить цветами различие температур в узлах (синие, голубые - более холодные; желтые, красные - более теплые).

Задача 10

Четыре жука, расположенные в вершинах квадрата со стороной a, одновременно начинают ползти по направлению к следующему по часовой стрелке жуку с постоянной скоростью v. Изобразите траектории жуков за первые t секунд после начала движения.

Указание: можно заменить траектории жуков ломаными - первые t секунд жуки ползут прямо (первое звено ломаной), затем поворачивают и еще t секунд ползут прямо (второе звено ломаной) и т.д.

Задача 11

Построить узор, образованный 30 вложенными квадратами. Стороны первого квадрата параллельны сторонам экрана и равны 100. Вершины каждого последующего квадрата - это точки на сторонах предыдущего квадрата, делящие эти стороны в отношении 1:1. Использовать звук.

Задача 12

На экране изображена окружность радиуса 20 с центром в точке (100,100). Необходимо предоставить возможность управления размером и положением окружности:

клавиша ">" увеличивает радиус на 5 точек;

клавиша "<" уменьшает радиус на 5 точек;

клавиши управления курсором "Ü", "Ý", "Þ", "ß" перемещают окружность по экрану.

Задача 13

Новобранцы выстроены в шеренгу. По команде "НАЛЕВО" одни из них поворачиваются налево, а другие - направо. Это есть начальное положение шеренги.

Далее каждый новобранец действует следующим образом: увидев перед собой лицо соседа, он ровно через секунду поворачивается кругом. В конце концов повороты прекратятся.

Промоделировать повороты новобранцев, выдавая каждую смену состояний по нажатию клавиши "пробел".

Графическая интерпретация задачи:

поворот налево - вертикальный отрезок;

поворот направо - горизонтальный отрезок.

Пример начального положения:

< < > < > > > < > <

Графическое изображение начального положения:

Первая смена состояния:

Поворот кругом двух солдат, стоящих лицом друг к другу, означает, что "опадут" углы, выпуклые "вправо-вверх". Окончание поворотов означает, что сформировался левый нижний прямой угол.

Задача 14

Осуществить вращение треугольника в плоскости экрана вокруг центра тяжести этого треугольника.

Задача 15

На экране - символ "Х". Клавишами управления курсора можно перемещать его по экрану. Попытка выхода за границу экрана должна обозначаться звуковым сигналом. По нажатию клавиши "пробел" символ начинает перемещаться с оставлением за собой следа. Повторное нажатие "пробела" возвращает его в прежнее состояние.

Задача 16

На экране изображен прямоугольник. Необходимо предоставить возможность управления его размерами и положением:

клавиша ">" увеличивает ширину на 5 точек;

клавиша "<" уменьшает ширину на 5 точек;

клавиша "+" увеличивает высоту на 5 точек;

клавиша "-" уменьшает высоту на 5 точек;

клавиши управления курсором "Ü", "Ý", "Þ", "ß" перемещают прямоугольник по экрану.

Задача 17

Построить фрактальную кривую следующим способом. Пусть имеется отрезок AB, и точки C, D делят его на 3 равные части. Построим на отрезке CD равносторонний треугольник CDE и сотрем отрезок CD. Теперь применим эту же процедуру к каждому звену построенной ломаной ACEDB. Задавая глубину рекурсии, построить фрактальные кривые различных порядков.

Задача 18

"Волшебным квадратом" порядка N называют матрицу (N, N), заполненную первыми натуральными числами так, что суммы чисел, стоящих в любой строке, любом столбце, а также на главной и побочной диагоналях, равны одному и тому же числу .

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

Задача 19

"Греко-латинским квадратом" порядка N называют матрицу (N, N), в каждом столбце, каждой строке и обеих диагоналях которого содержатся все целые числа от 1 до N.

Реализовать игру человека и машины по заполнению "Греко-латинского квадрата". Проигрывает тот, кто первым не сумеет сделать допустимый ход.

Задача 20

Построить срезы функции

Задача 21

Построить эллипс, уравнение которого имеет вид

Задача 22

Построить графики функций (декартова система координат):

Задача 23

Построить графики функций (полярная система координат):

a) ;

b) - строфоида;

c) - лемниската.

Задача 24

Построить график функции

в комплексной плоскости.

Задача 22

На плоскости координатами своих упорядоченных вершин задан произвольный многоугольник без самопересечения и точка a, находящаяся вне многоугольника. Определить число вершин, видимых из точки a.

ЛИТЕРАТУРА

1. Прокофьев Б.П. и др. Графические средства Turbo C, Turbo C++. -М.: Финансы и статистика, 1992.

2. Аммерал Л. Машинная графика на языке Си (4 тома). -М.: СолСистем, 1992.

3. Юлин В.А., Булатова И.Р. Приглашение к Си. Минск, Высшая школа, 1990.

4. Ньюмен У., Спрул Р. Основы интерактивной машинной графики. -М.: Мир, 1976.

5. Фоли Дж., Ван Дэм А. Основы интерактивной машинной графики (в 2 кн.). -М.: Мир, 1985.

6. Белецкий Я. Энциклопедия языка Си. -М.: Мир, 1993.

7. Этюды о персональных компьютерах. -М.: Знание, 1988.

8. Уэзерелл Ч. Этюды для программистов. -М.: Мир, 1982.