Урок 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. Итог урока. Выставление оценок.