Тема урока: Графика в Турбо Паскаль.
Цели занятия:
дидактическая:
– закрепление пройденного материала;
– обобщение и систематизация знаний о среде программирования Паскаль;
– освоение приемов построения простых вычислительных алгоритмов и их программирование на языке Turbo Pascal;
воспитательная:
– формирование мировоззрения учеников;
– формирование мотивации к изучению предмета "Основы алгоритмизации и программирования”;
– формирование чувства коллективизма, дружбы;
развивающая:
– развитие логического мышления;
– развитие навыков работы с системой программирования с использованием модуля Graph.
Тип урока: изучение нового материала.
Оборудование: компьютер + большой экран, интерфейс среды программирования Turbo Pascal.
Основная литература:
Гусева.А.И. Учимся информатике: задачи и методы их решения. – М.: Диалог – МИФИ, 2001.
Шауцукова Л.З. Информатика: –М.: Просвещение, 2003.
Информатика: учебник Под ред. Н.В. Макаровой
Правильный многоугольник. /Информатика. Еженедельное приложение к газете "ПЕРВОЕ СЕНТЯБРЯ”. – 1998. № 30
Требования к результатам усвоения учебного материала.
Ученики должны знать:
• особенности среды Turbo Pascal;
• особенности работы в графическом режиме CRAPH;
• стандартные процедуры и функции модуля CRT;
• стандартные процедуры и функции модуля CRAPH.
Ученики должны уметь:
• производить необходимые действия с программой;
• работать в графическом режиме;
• правильно применять стандартные процедуры и функции модуля CRT;
• правильно применять стандартные процедуры и функции модуля CRAPH.
Ход урока.
1. Организационный момент.
Приветствие. Проверка присутствующих. Постановка цели. Формирование мотивации к изучению темы.
2. Изучение нового материала.
Вступительное слово учителя. Понятие графического редактора в Турбо Паскаль.
Аппаратная поддержка графики персонального компьютера обеспечивается двумя основными модулями: видеоадаптером и видеомонитором. Видеомонитор – это устройство, на котором появляется выводимый текст или графические изображения.Видеоадаптеры – это электронные устройства, управляемые собственным микропроцессором.
При работе с экраном в графическом режиме очень важным является то, что любая информация представляет собой совокупность пикселей. Каждый пиксель определяется своими координатами, т.е. положением относительно левого верхнего угла экрана. С помощью программ можно управлять светимостью и цветом любого пикселя, т.е. создавать любое изображение.
Графический режим ПК существенно отличается от текстового как по принципам функционирования, так и по возможностям.
Графика применяется практически во всех серьезных программных разработках, так как позволяет увидеть результаты расчетов в виде чертежей, графиков, иллюстраций в движении.
Подключение графической библиотеки при программировании
в среде Turbo Pascal производится оператором: Uses Graph;
Переход из текстового режима к графическому (инициализация графики) осуществляется оператором: InitGraph (Gd, Gm, 'way');
Где:
Ø Gd - имя графического драйвера (параметр-переменная),
Ø Gm - номер графического режима монитора (параметр-переменная);
Ø 'way' - дорожка DOS к файлам с графическими драйверами.
Обычно драйверы подключаются в режиме автоопределения используемого монитора ПК. Для этого перед инициализацией графики задается Gd:=Detect; или Gd:=0;. В этом случае по умолчанию устанавливается режим с наибольшим числом точек на экране, а значение параметра Gm игнорируется. Номер наибольшего режима для текущего драйвера возвращает функция GetMaxMode;.
Разрешающую способность для текущего графического режима можно определить функциями, возвращающими максимальные значения координат экрана:
Ø GetMaxX; - по оси Х,
Ø GetMaxY; - по оси Y.
Для возврата из графического режима в текстовый можно
использовать операторы:
Ø CloseGraph; - полное прекращение работы графической системы,
Ø RestoreCrtMode; - переключение в текстовый режим с возможностью возврата к текущим установкам графического режима.
После инициализации графического режима экран очищается и можно
использовать процедуры рисования.
Ø SetBkColor (N); - установить цвет N для пикселов фона. По умолчанию установлен черный цвет фона.
Ø Setcolor (N); - установить цвет N для выводимых линий. По умолчанию установлен белый цвет линий.
Ø PutPixel (X, Y, N); - высветить цветом N пиксел с координатами X, Y
Ø FloodFill (X, Y, N) - заполнение замкнутой области с границей цвета N.
Ø GetPixel (X, Y); - функция возвращает цвет пикселя с координатами X, Y.
Цветовая шкала
Цвет Код
Black- черный 0
Blue - сини 1
Green- зеленый 2
Cyan-бирюзовый 3
Red-красный 4
Magenta-малиновый 5
Brown-коричневый 6
LightGray-светло-серый 7
DarkGray-темно-серый 8
LightBlue- ярко-голубой 9
LightGreen-ярко-зеленый 10
LightCyan-ярко-бирюзовый 11
LightRed-ярко-красный 12
LightMagenta-ярко-малиновый 13
Yellow-желтый 14
White-белый 15
Пример1:
Программа которая выводит на экран «Звездное небо».
uses Graph;
var i, Gd, Gm: Integer;
BEGIN
Gd:=VGA; Gm:=VGAHi; InitGraph (Gd,Gm,'..\bgi');
If GraphResult=grOk
then begin
For i:=0 to 1000 do
PutPixel (random(640),random(480),random(15)+1);
ReadLn
end
END.
Ø Circle (X, Y, R); - построить окружность с центром X, Y и радиусом R.
Ø Line (x1, y1, x2, y2); - построить отрезок прямой линии от точки с координатами x1, y1 к точке с координатами x2, y2.
Ø Rectangle (x1, y1, x2, y2); - построить прямоугольник с левым верхним углом в точке с координатами x1, y1 и правым нижним углом в точке с координатами x2, y2 (стороны параллельны краям экрана)
Пример2:
Программа которая выводит различные незаполненные фигуры (окружности).
uses Graph;
const CenterX=320; CenterY=240;
var i, Gd, Gm: Integer;
BEGIN
Gd:=VGA; Gm:=VGAHi;
InitGraph (Gd,Gm,'..\bgi');
If GraphResult=grOk then
For i:=0 to 23 do
Circle (CenterX,CenterY,i*10);
END.
Ряд графических процедур выполняет построение заполненных фигур - фигур с замкнутым контуром, автоматически заполняемых сразу после построения :
Ø SetFillStyle(P, N); - процедура установки орнамента Р=0,1, .., 12 и цвета с номером
N для заполняемых фигур.
o Р=0 - сплошное заполнение цветом фона,
o Р=1 - сплошное заполнение цветом с номером N,
o Р=2..11 - стандартный набор орнаментов BGI,
o Р=12 - орнамент и цвет определяет пользователь.
Ø Bar (x1, y1, x2, y2); - построить заполненный прямоугольник с заданными
координатами левого верхнего (x1,y1) и правого нижнего (x2,y2) углов.
Ø Bar3d (x1, y1, x2, y2, d, t); - построить параллелепипед с заполненной передней
гранью. Координаты углов (x1,y1), (x2,y2), глубина d. Переменная t типа boolean задает вывод верхней грани. При t=TopOn верхняя грань показывается, (true) t=TopOff (false) - нет.
Ø FillEllipse (X, Y, Rx, Ry); - построить заполненный эллипс с центром в точке (X,Y)
и радиусами (полуосями) Rx - по горизонтали, Ry - по вертикали.
Ø Sector(x,y,a1,a2,Rx,Ry); - построить заполненный сектор эллипса. a1 и a2 начальный и конечный углы (в) градусах, отсчитываемые против часовой стрелки относительно направления оси X.
Ø PieSlice(x, y, a1,a2,R); - построить заполненный сектор круга с центром в точке
(x,y) и радиусом R.
Ø FillPoly (N, M); - заполнить произвольную плоскую фигуру с границей, описанной
массивом точек, N - число точек границы.
3. Практическое задание.
Нарисовать паровоз, который изображен на слайде(7).
Program paravozzz;
uses crt, graph;
procedure paravoz;
begin
setfillstyle(1,4);
bar3d(100,280,280,380,25,true);
setfillstyle(1,5);
bar3d(280,180,400,380,25,true);
setcolor(1);
setfillstyle(1,yellow);
bar3d(300,200,380,260,0,false);
setfillstyle(1,12);
bar3d(120,300,260,360,0,false);
rectangle(300,285,380,370);
end;
procedure koleso;
begin
x:=160;
for i:=1 to 3 do
begin
setfillstyle(1,1);
fillellipse(x,380,40,40);
setfillstyle(1,3);
fillellipse(x,380,30,30);
x:=x+100;
end;
end;
var gd,gm,i,x,y:integer;
begin
gd:=detect;
initgraph(gd,gm,'');
if graphresult<>grok then halt(1);
paravoz;
koleso;
readln; end.
4. Подведение итогов.
5. Контрольные вопросы и задания.
1. Как называется модуль, который подключает графический редактор?
2. Номер наибольшего режима для текущего драйвера возвращает функция… .
3.Что делает процедура: Line (x1, y1, x2, y2)?
4. Какая процедура строит параллелепипед с заполненной передней гранью?
5. Используя какой прием можно нарисовать «полумесяц»?
6. Нарисовать на экране треугольники при помощи цикла всеми возможными способами.
6. Домашнее задание.