Конспект урока по Информатике "Графика в Турбо Паскаль"

Тема урока: Графика в Турбо Паскаль.

Цели занятия:
дидактическая: 
– закрепление пройденного материала;
– обобщение и систематизация знаний о среде программирования Паскаль;
– освоение приемов построения простых вычислительных алгоритмов и их программирование на языке 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. Домашнее задание.