Урок 2,3.       

Тема. Описание графических операций  языком программирования.  Применение в программах процедур и функций для построения  простейших графических изображений.

 

Цели. Закреплять навыки в создании программ с применением процедур  и функций для  графических конструкцій;  

         Учить строить аналогии, выделять главное, ставить и решать проблемы.

         Воспитывать аккуратность, внимательность, вежливость и дисциплинированность.

 

Ход урока.

I.             Орг. Момент. Сообщение цели урока.

II.         Актуализация.  Проверка дом задания  (3 ученика пишут программы д/з на комп’ютерах).

Вопросы:

o        Графический режим.

o        Графический режим сначала  нужно  задать.

§         Что означають строки?

                  var gd,gm:integer;                      {Для характеристик дисплея}

               begin

                gd:=detect;                                 {detect - стандартна}

                   initgraph (gd,gm,'');      {Задание графического  режима

repeat until keypressed;      

closegraph;

o        Процедуры  и функции для графических конструкций.

o        всех есть карточки )

 

                  initgraph (gd,gm,'');  - <путь  до драйвера>) — задает графический режим. Путь к  драйверу обозначают апострофами, если он находится  не  в том ж каталоге, что  и файл turbo.exe;

gd:=detect;    (<драйвер>, <режим>) — возвращает значение характеристик дисплея;

setcolor (<цвет>) — задает цвет  будущего изображения;

putpixel (x, y, <цвет>) — закрашивает  точку (x,y) заданным цветом;

line (x1, y1, x2, y2) — рисует линию между 2 точками;

rectangle (x1, y1, x2, y2) — рисует прямоугольник с заданными координатами от диагонали);

bar (x1, y1, x2, y2) — рисует закрашенный  прямоугольник;

circle (x, y, R) — рисует круг с радиусом R и центром у (x,y);

arc (x, y, <начальный угол>, <конечный угол>, <радиус>) — рисует дугу;

pieslice (x, y, <начальный угол>, <конечный угол>, <радиус>) — рисует закрашенный  сектор;

ellipse (x, y, <начальный угол>, <конечный угол>, <горизонт. радиус>, <вертикадиус>) — рисует эллипс или дугу эллипса;

setfillstyle (<заполнение >, <цвет>) — задает способ заполнения замкнутой области в зависимости  от значения параметра заполнения: 0 — заполнить  цветом фона, 1 — однородное  заполнение, 2 — заполнение толстыми горизонтальными линиями, 3 — заполнение наклонными  линиями, ..., 10 — заполнение точками.

 floodfill (x, y, <цвет границ>) — заполнение замкнутой  области, что содержит  точку(x,y);

closegraphзакриває графічний режим;

outtext (<текст>) — выводить заданный текст с поточной позиции;

outtextxy (x, y, <текст>) — выводить текст в  заданном месте;

 

III.                  Практическая работа.

 

Задача 1. Нарисовать разными цветами десять концентрических кругов, которые имеют общий центр по середине экрана, а именно  в точке с  координатами (320; 240),  и описать около кругов красный прямоугольник.

1. Обсуждение хода работы:

Ø      1 часть

*      program one;

*      uses crt,GRAPH;

*      var gd,gm:integer; r:integer;

*      begin

*      gd:=detect;

*      initgraph (gd,gm,'');

 

Ø      2 часть

*      r := 10;                                           {Радиус 1 круга 10 пиксел}

*      while r <= 100 do

*      begin

*      setcolor(r div 10);

*      circle(320, 240, r);                     

*      r := r + 10

*      end;

 

Ø      3 часть

 

*      setcolor(red);

*         rectangle(220, 140, 420,340);

 

Программу пишут самостоятельною

program one;

uses crt,GRAPH;

var gd,gm:integer; r:integer;

begin

gd:=detect;

initgraph (gd,gm,'');

   r := 10;                                           {Радиус 1 круга 10 пиксел}

   while r <= 100 do

      begin

      setcolor(r div 10);

      circle(320, 240, r);

      r := r + 10

      end;

   setcolor(red);

   rectangle(220, 140, 420,340);

repeat until keypressed;

closegraph;

end.

 

Задача 3. Нарисовать график функции y=2sin(2x)+1 на промежутке [0; 2p],  с шагом h=0,1. В результате экспериментов, меняя значения амплитуды в пикселях, изобразить график на екране .                                                             

program GrafikSin;

uses Crt, Graph;

const a=0; b=2*3.14; h=0.1; h1=5; x0=60; y0=240; M=50;

var gd,gm,x1,y1:integer; x,y:real;

function f(x:real):real;

begin

   f:=2*sin(2*x)+1

end;

 begin     

gd:=detect;

initgraph (gd,gm,'');

 

   setcolor(14); setbkcolor(1);

   line(20,y0,600,y0); line (x0,440,x0,20);                     {Координатні осі}

   x:=a; x1:= x0+trunc(M*x);                        {x,yматематичні координати}

   y:=f(x); y1:=y0-trunc(M*y);                      {x1,y1 – графічні координати}

   moveto(x1,y1);setcolor(15);

   while x<=b do       begin

      y:= f(x); y1:=y0-trunc(M*y); lineto(x1,y1);

      x1:=x1+h1;x:=x+h

      end;

   settextstyle(0,0,1);

   outtextxy(60,245,'0');outtextxy(360,245,'6.3');

   settextstyle(0,0,2);

   outtextxy(200,380,'Графік функції y=2sin2x+1');readln

repeat until keypressed;

closegraph;

 

end.

IV.                  Самостоятельная  работа.

 

 

Задача 2. Нарисовать эмблему. В верхней левой части графического экрана на черном фоне нарисовать голубой  квадрат, а внутри него – черный круг, закрашенный желтым цветом. В центре   эмблемы черными буквами написать слово –произвольное.

                                      program Emblema;

uses Crt, Graph;

var gd,gm, i, x1 , y1: integer; x, y: real;

begin clrscr;

gd:=detect;

initgraph (gd,gm,'');

setbkcolor(0);

setcolor(3);

rectangle(100,0,300,200);

setfillstyle(1,3);

floodfill(200,100,3);

setcolor(14);

circle(200,100,100);

setfillstyle(1,14);

floodfill(200,100,14);

setcolor(0);

circle(200,100,100);

settextstyle(0,0,3);

outtextxy(135,95, 'Льотниче');

repeat until keypressed;

closegraph;

 

end.

 

                                                                                

III.                 Итог урока. Выставление оценок.

                                                                                

                                                                                

                                                                                

                                                                                

                                                                                

                                                                                

                                                                                

                                                                                

                                                                                

                                                                                

                                                                                

                                                                                

                                                                                

                                                                                

                                                                                

                                                                                

                                                                                

                                                                                

                                                                                

                                                                                

                                                                                

                                                                                

Hosted by uCoz