Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Абрамов С.А., Гнездилова Г.Г., Капустина Е.Н., Селюн М.И. Задачи по программированию [pdf]

.pdf
Скачиваний:
736
Добавлен:
02.05.2014
Размер:
6.04 Mб
Скачать

+

а

б

в

Рис. 95

901. Изменение указываемой точки (см. задачу 900), или, иначе, управление курсором, может выполняться, например, с клавиатуры: нажатие клавиш управления курсором означает смену указываемой точки и вызывает соответствующее изменение формы или положения курсора. Для курсора-перекрестья изменение указываемой точки сопровождается перемещением горизонтальной или вертикальной прямой, образующей курсор, или обеих прямых одновременно. Изменение указываемой точки для курсора-крестика или курсорастрелки сопровождается соответствующим перемещением курсора.

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

902. Выбор нужной точки экрана обычно выполняется подводом курсора к этой точке и нажатием клавиши «ввод». Иногда бывает полезно видеть и предыдущую выбранную точку - последнюю точку, зафиксированную клавишей «ввод», и новую точку, на которую указывает курсор. Для этого используются метод резиновой нити и метод резинового прямоугольника.

а) В методе резиновой нити (рис. 96, а) один конец отрезка зафиксирован и указывает последнюю выбранную точку, второй конец перемещается в соответствии с изменением указываемой точки.

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

Реализовать метод резиновой нити и метод резинового прямоугольника.

а

+

б

+

 

 

Рис. 96

903. Построить треугольник по заданным вершинам. Точки экрана, являющиеся вершинами треугольника, указываются с клавиатуры по методу

резиновой нити (см. предыдущую задачу).

904. Построить окружность по двум заданным точкам: центру и одной из точек окружности. Обе точки указываются с клавиатуры по методу резинового прямоугольника (см. задачу 900).

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

906.Построить ломаную по заданным вершинам. Вершины указываются с клавиатуры (см. задачу 900).

907.Составить программу для управления размерами окружности и ее положением на экране. Исходная окружность имеет центр в точке (100, 100) и радиус r = 20. Управление выполняется клавишами:

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

клавиши управления курсором вызывают перемещение окружности в соответствующем направлении;

«ввод» завершает работу программы.

908. Составить программу для управления размерами прямоугольника и его положением на экране. Левый верхний угол исходного прямоугольника расположен в точке (50,50), правый нижний - в точке (100, 100). Управление выполняется клавишами:

«> » увеличивает ширину прямоугольника на 5 точек;

«< » уменьшает ширину прямоугольника на 5 точек;

«+ » увеличивает высоту прямоугольника на 5 точек;

«- » уменьшает высоту прямоугольника на 5 точек; клавиши управления курсором вызывают перемещение

прямоугольника в соответствующем направлении; «ввод» завершает работу программы.

909. Составить программу для произвольного рисования на экране. Рисунок - это след курсора, перемещаемого с помощью клавиш управления курсором. Должны обеспечиваться возможность стирания изображения и режим, в котором курсор не оставляет след.

910. Составить программу «электронный калейдоскоп». Построение калейдоскопа выполнять следующим образом. В центре экрана должен быть изображен правильный шестиугольник АВСDЕF, вершины которого соединены с его центром О (рис. 97). Треугольник FOA должен быть рассечен несколькими прямыми, количество и расположение которых выбирается с помощью датчика случайных чисел. Каждая из полученных таким образом частей треугольника FOA должна быть закрашена цветом, номер которого также выбирается с помощью датчика случайных чисел. После этого изображение в каждом следующем треугольнике (при движении по или против часовой стрелки) должно быть получено симметричным отображением изображения, сформированного ранее в каждом предыдущем треугольнике, относительно их общей стороны: так, изображение в треугольнике AOB должно быть получено симметричным отображением изображения, сформированного в треугольнике

относительно стороны OA; изображение в треугольнике BOC должно быть получено симметричным отображением изображения, уже сформированного в треугольнике АОВ, относительно стороны OB и т. д.

Рис. 97

§ 31. Звукогенерация*)

*) В задачах 913, 919, 923-925, 927, 930, 931 этого раздела предполагается, что компьютер (подобно школьному компьютеру «Ямаха») оснащен звукогенератором, имеющим три канала, каждым из которых можно управлять независимо.

911.Воспроизвести до-мажорное трезвучие (до-ми-соль) последовательно, по одной ноте.

912.Воспроизвести:

а) хроматическую гамму; б) гамму указанной тональности.

913. Воспроизвести изображенные на рис. 98 аккорды (все ноты аккорда должны звучать одновременно).

а

б

Рис. 98

914.Составить игровую программу «музыкальная шкатулка». Программа должна воспроизводить одну из нескольких популярных мелодий по выбору играющего.

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

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

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

917.Составить программу для воспроизведения мелодии, «сыгранной» на клавиатуре компьютера. Как и при игре на фортепианной клавиатуре, каждой клавише ставится в соответствие некоторая нота; длительность звучания ноты определяется длительностью нажатия клавиши.

918.Составить программу для запоминания и последующего воспроизведения мелодии, «сыгранной на фортепианной клавиатуре». Клавиатура изображается на экране (рис. 99.а). Вначале курсором указывается клавиша, а после этого - обозначение длительности (рис. 99, б).

а

б

Рис. 99