Вид занятия: комбинированное занятие.
Цели занятия:
дидактическая:
– закрепление пройденного материала;
– обобщение и систематизация знаний о среде
программирования Паскаль;
– освоение приемов построения простых
вычислительных алгоритмов и их программирование
на языке Turbo Pascal;
воспитательная:
– формирование мировоззрения у студентов;
– формирование мотивации к изучению предмета
"Основы алгоритмизации и программирования”;
– формирование чувства коллективизма, дружбы;
развивающая:
– развитие логического мышления;
– развитие навыков работы с системой
программирования.
Межпредметные связи: связь c
алгеброй и геометрией.
Внутрипредметные связи: связь с
разделами геометрии, процедуры, функции.
Обеспечение занятия: компьютер +
большой экран, карточки для студентов,
раздаточный материал с заданиями на закрепление,
интерфейс среды программирования Turbo Pascal.
Требования к результатам усвоения
учебного материала.
Студенты должны знать:
- особенности среды Turbo Pascal;
- особенности работы в графическом режиме CRAPH;
- стандартные процедуры и функции модуля CRT;
- стандартные процедуры и функции модуля CRAPH.
Студенты должны уметь:
- производить необходимые действия с программой;
- работать в графическом режиме;
- правильно применять стандартные процедуры и
функции модуля CRT;
- правильно применять стандартные процедуры и
функции модуля CRAPH.
Содержание занятия
1. Организационный момент.
Приветствие. Проверка присутствующих. Постановка цели. Формирование
мотивации к изучению темы.
2. Изучение нового материала.
Понятие графического адаптера.
Аппаратная поддержка графики персонального
компьютера обеспечивается двумя основными
модулями: видеоадаптером и видеомонитором. Видеомонитор
– это устройство, на котором появляется
выводимый текст или графические изображения. Видеоадаптеры
– это электронные устройства, управляемые
собственным микропроцессором.
При работе с экраном в графическом режиме очень
важным является то, что любая информация
представляет собой совокупность пикселей.
Каждый пиксель определяется своими
координатами, т.е. положением относительно
левого верхнего угла экрана. С помощью программ
можно управлять светимостью и цветом любого
пикселя, т.е. создавать любое изображение.
Рассмотрение работы в графическом режиме:
Для управления экраном в графическом режиме с
помощью программ в Turbo Pascal существуют
специальные графические процедуры и функции.
Описание этих процедур и функций содержится в
специальном библиотечном модуле CRAPH.
Запуск графической системы. Для запуска
графической системы необходимо сделать
следующее:
- Подключить модуль CRAPH – библиотеку графических
процедур: uses graph;
- Установить графический режим с помощью двух
переменных:
var DriverVar, ModeVar: integer;
begin
DriverVar:=Detect;
InitGraph(DriverVar, ModeVar,’\TP\GRAPH’);
С этого момента все графические средства
доступны пользователю.
Процедуры и функции модуля CRAPH
Процедуры.
Arc (X,Y:Integer; U1, U2, R:Word)
Строит дугу окружности текущим цветом с
текущими параметрами линии. X, Y – координаты
центра дуги; U1 – угол до начальной точки дуги,
отсчитываемый против часовой стрелки от
горизонтальной оси, направленной с лева на право;
U2 – угол до конечной точки дуги, отсчитываемый
так же, как U1; R – радиус дуги.
Bar (X1, Y1, X2, Y2:Integer)
Строит прямоугольник, закрашенный текущим
цветом с использованием текущего стиля
(орнамента, штриховки). X1, Y1, X2, Y2 – координаты
левого верхнего и правого нижнего углов
прямоугольника.
Bar3D (X1, Y1, X2, Y2:Integer; Glubina: Word; Top:Boolean)
Строит параллелепипед, используя текущий стиль
и цвет. X1, Y1, X2, Y2 – координаты левого верхнего и
правого нижнего углов передней грани; Glubina –
ширина боковой грани (отсчитывается по
горизонтали); Top – признак включения верхней
грани (если True – верхняя грань вычерчивается, False
– не вычерчивается).
Circle (X, Y: Integer; R: word)
Рисует текущим цветом окружность радиуса R с
центром в точке (X, Y).
ClearDevice
Очищает графический экран, закрашивает его в
цвет фона.
ClearViewPort
Очищает выделенное графическое окно,
закрашивает его в цвет фона.
CloseGraph
Закрывает графический режим, т. е. освобождает
память, распределенную под драйверы графики и
файлы шрифтов, и восстанавливает текстовый режим
работы экрана.
Ellipse (X, Y: Integer; U1, U2, XR, YR: Word)
Рисует дугу эллипса текущим цветом. X, Y –
координаты центра эллипса; U1, U2 – углы до
начальной и конечной точек дуги эллипса (см.
процедуру Arc); XR, XY – горизонтальная и
вертикальная полуоси эллипса.
Fill Ellipse (X, Y: Integer; U1, U2, XR, YR: Word)
Рисунт заштрихованный эллипс, используя X, Y как
центр и XR, YR как горизонтальную и вертикальную
полуоси эллипса.
FillPoly (N: Word; Var PolyPoints)
Рисует и штрихует многоугольник, содержащий N
вершин с координатами в поле PolyPoints.
InitGraph (Var Driver, Mode:Integer; Path: String)
Организует переход в графический режим.
Переменные Driver и Mode содержат тип графического
драйвера и его режим работы. Третий параметр
определяет маршрут поиска графического
драйвера. Если строка пустая (т.е. равна ’’),
считается, что драйвер находится в текущем
каталоге.
Line (X1, Y1, X2, Y2:Integer)
Рисует линию от точки X1, Y1, до точки X2, Y2.
LineTo (X,Y:Integer)
Рисует линию от текущего указателя к точке X, Y.
MoveTo (X,Y:Integer)
Смещает текущий указатель к точке X, Y.
OutTextXY (X,Y:Integer; TextString: String)
Выводит текст в заданное место экрана.
PieSlice (X,Y:Integer; U1, U2, Radius: Word)
Строит сектор круга, закрашенный текущей
штриховкой и цветом заполнения. X, Y – координаты
центра сектора круга; U1 и U2 – начальный и
конечный углы сектора, отсчитываемые против
часовой стрелки от горизонтальной оси,
направленной в право; Radius – радиус сектора.
PutPixel (X,Y:Integer; Color: Word)
Выводит точку цветом Color с координатами X, Y.
Rectangle (X1, Y1, X2, Y2)
Рисует контур прямоугольника, используя
текущий цвет и тип линий. X1, Y1 – координаты левого
верхнего угла прямоугольника; X2, Y2 - координаты
левого правого нижнего угла прямоугольника.
Sector (X, Y: Integer; U1, U2, XR, YR: Word)
Рисует и штрихует сектор эллипса радиусом XR, YR с
центром в X, Y от начального угла U1 к конечному
углу U2.
SetBkColor (Color: Word)
Устанавливает цвет фона.
SetColor (Color: Word)
Устанавливает основной цвет рисования.
SetFillStyle (Pattern, Color: Word)
Устанавливает образец штриховки и цвета.
SetLineStyle (LineStyle, Pattern, Thickness: Word)
Устанавливает толщину и цвет линии.
SetTextStyle (Font, Direction, CharSize: Word)
Устанавливает текущий шрифт, направление
(горизонтальное или вертикальное) и размер
текста.
SetViewPort (X1, Y1, X2, Y2:Integer; ClipOn: Boolean)
Устанавливает прямоугольное окно на
графическом экране. Параметр ClipOn определяет
"отсечку” элементов изображения, не
умещающихся в окне.
Функции.
GetMaxX и GetMaxY
Возвращает значения максимальных координат
экрана в текущем режиме работы соответственно по
горизонталь и вертикали.
GraphResult
Возвращает значение GrOk, соответствующее коду 0,
если все графические операции программы
выполнились без ошибок, или возвращает числовой
код ошибки (от -1 до -14).
Закрытие видеорежима. Когда все
запланированные графические работы выполнены,
необходимо выйти из графического режима. Это
делается с помощью не имеющей параметров
процедуры ClozeGraph. В процессе выполнения эта
процедура освобождает память, распределенную
под драйверы графики, файлы шрифтов и
промежуточные данные, и восстанавливает режим
работы адаптера в то состояние, в котором он
находился до выполнения инициализации системы.
Использование процедур и функций при
решении задач. Рассмотрение структуры программы.
Построить правильный многоугольник с заданным
числом сторон.
Решение.
Центр многоульника совмещаем с центром экрана.
Пусть N – число его сторон. Центральный угол
стороны Angle=2 * Pi / N. Начальную вершину
многоугольника поместим на горизонтальной оси
(правее центра). Угол наклона i-й вершины к оси Х
составляет Angle * i, а ее центральные координаты X, Y
–
X = round (R*cos(Angle*i));
Y = round (R*sin(Angle*i));
Где R – радиус описанной окружности.
Проводим i-ю сторону, соединяя линией найденную
i-ю и предыдущую вершины. Выполнив это построение
для всех i от 1 до N, получим наш многоугольник.
(Отметим, что N-я вершина совпадает с начальной .)
{ Построение правильного многоугольника с N
сторонами}
uses graph, crt;
Const
PrD:real=80; { Длина диаметра описанной
окружности в % от высоты экрана}
PATH=’’; { файлы *.BGI находятся в рабочем
каталоге}
Var
W,H,gd,gm,i,N,X,Y.R:integer;
Angle:real;
{ переход от центральных координат к экранным}
procedure WH (var W,H:integer); { ширина и высота экрана}
begin
{ функция GetMaxX и GetMaxY возвращают
максимальные значения соответствующих экранных
координат}
W:=( GetMaxX+1); { ширина}
H:=( GetMaxY+1); { высота}
end;
Function Xscr (X:integer):integer;
Begin Xscr:=X + W div 2 end;
Function Yscr (Y:integer):integer;
Begin Yscr:=H div 2 – Y end;
BEGIN
repeat
write (‘ Укажите число сторон
правильного многоугольника, не менее 3’);
readln(N);
until N>2;
gd:=DETECT;
initgraph (gd,gm,path);
WH(W,H); { определяем ширину и высоту экрана}
R:=round(PrD*0.01/*H/2); { радиус описанной окружности}
Angle :=2*pi/N; { центральный угол стороны в
радиусах}
MoveTo (Xscr(R), Yscr(0)); { первая вершина в экранных
координатах}
SetColor (Yellow); { цвет многоугольника - желтый}
For i:=1 to N do begin {цикл сторон}
{X и Y – центральные координаты очередной
вершины}
X:=round (R*cos(Angle*i));
Y:= round (R*sin(Angle*i));
{проводим очередную сторону}
LineTo (Xscr(X), Yscr(Y));
End; {цикл сторон}
Repeat until keypressed; { выход – нажатием любой
клавиши}
CloseGraph; { переход в текстовый режим}
End.
3. Закрепление и обобщение
изученного материала.
Закрепление изученного материала
рекомендую провести следующим образом. Группу
студентов разделить на две команды и провести
состязание. Состязание содержит три задания.
- Построить график функции y=sin(x) (y=cos(x)).
- Разгадать кроссворд по процедурам модуля GRAPH.
- Составить программу, выводящую на экран
визитную карточку учебного заведения.
4. Домашнее задание.
[1, с. 367 - 387]. Решить задачи 7, 10 на
стр. 420, построить график функции другого
варианта.
5. Итоги занятия.
Выставление оценок за работу в командах.
"Чему мы сегодня научились?” (Перечисляем,
вспоминаем.) "Гости сами решат, к какой компании
обратиться за изготовлением программных
продуктов”. |