Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Прак. ОАиП 230401.doc
Скачиваний:
17
Добавлен:
17.02.2016
Размер:
375.81 Кб
Скачать

Контрольные вопросы и задания:

  1. В какой части программы описываются функции?

  2. Что такое аргументы функции пользователя?

  3. Как задаются параметры по умолчанию?

  4. Всегда ли функция возвращает какое-либо значение?

  5. Можно ли использовать функцию до её объявления? Почему?

  6. Охарактеризуйте назначение прототипов.

  7. Опишите прототип функции для вычисления наибольшего из a и b.

Рекомендуемая литература: 1.3, 1.4, 1.5, 1.7, 2.1, 2.2.

Практическое занятие №18

Тема: Рисование в С++ с помощью функций

Цель: закрепление знаний и навыков по использованию графических функций С++ для создания графических примитивов.

Вид работы: фронтальный.

Время выполнения: 2 часа.

Теоретический материал:

Графический режим работы отличается от текстового. Левый верхний угол экрана имеет координаты (0; 0), координаты правого нижнего определяются в зависимости от режима работы (стандартно – (640; 480)).

Графические функции и константы языка С++ содержаться в библиотеке graphics.h, которая подключается следующим образом:

#include<graphics.h>

В теле функции main() необходимо инициализировать графику:

d=DETECT;

initgraph(&d, &m, “c:\prog\bc\include”);

где переменные d и m это переменные целого типа. Последняя переменная в процедуре инициализации – это путь к графической библиотеке graphics.h. Необходимо убедиться, что в меню Options->Directories->Include Directories прописан тот же путь.

Задания:

  1. Постройте прямоугольник со сторонами 100 и 150 пикселей, центр которого совмещен с центром экрана. Стороны прямоугольника должны быть параллельны сторонам экрана.

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

  3. *Постройте 10 вложенных квадратов окрашенных поочередно в зеленый и красный цвета.

Ход работы: в тетрадь запишите функции, использованные при решении задач

1. Для решения задачи подключается и инициализируется графическая библиотека graphics.h. Некоторые графические функции:

getmaxx() – определяется для текущего режима максимальное количество пикселей экрана по горизонтали

getmaxy() – определяется для текущего режима максимальное количество пикселей экрана по вертикали

rectangle(x1, y1, x2, y2) – рисует прямоугольник, где x1 и y1 – координаты левого верхнего угла, x2 и y2 – координаты правого нижнего угла

setcolor(n) – устанавливает текущий цвет рисования, где n (цвет) – может указываться как числом, так и английским названием цвета в соответствие с таблицей цветов

line(x1, y1, x2, y2) – линия, где в скобках указаны координаты начала и конца линии.

2. Координаты точек вводятся с клавиатуры. Для симметричного отображения треугольника относительно вертикальной оси проходящей через центр экрана для нового треугольника координаты y остаются теми же, а x-вые координаты преобразуются по формуле:

xn=getmaxx()-xi;

где xn – новые координаты, xi – старые координаты

3. *Третья задача является дополнительной. 10 вложенных квадратов рисуются через цикл с последовательным уменьшением длины стороны. Установка цвета и стиля заливки происходит функцией setfillstyle(s, c). Заливку замкнутой области, обрисованной цветом c, обеспечивает функция floodfill(x, y, c).