7


  • Учителю
  • Разработка практических заданий к урокам по теме: Графика в Turbo Pascal

Разработка практических заданий к урокам по теме: Графика в Turbo Pascal

Автор публикации:
Дата публикации:
Краткое описание:
предварительный просмотр материала





МБОУ СОШ № 30

Разработка практических заданий

к урокам по теме:


Графика в Turbo Pascal






Из опыта работы учителя информатики

Мартынюк С. А.








Кострома - 2015





Содержание:



1. Требования к результатам усвоения учебного материала.


2

2. Понятие графического адаптера.

3



3. Рассмотрение работы в графическом режиме.

3



4. Процедуры и функции модуля GRAPH.

4



5. Пример использования процедур модуля GRAPH.

7



6. Пример составления программы.

7



7. Разработка практических заданий к урокам по темам:


I. Основы работы с графикой

8

II. Дополнительные возможности графики.

9

III. Анимация в графике.

12

IV. Закрепление основ работы в графике.

15



8. Приложение - Диск.

18


1


Приложение - Диск


Содержание диска:


1. Примеры программ на паскале, по теме «Работа с графикой»:


HOUSE.PAS - программа «День, ночь»

SEA.PAS - игра «Морской бой»

PUSHKA.PAS - игра «Осада замка»

TANK.PAS - логическая игра «Танк»

TIR.PAS - работа с «мышью» в графике на примере игры «Тир».

HOCKEY.PAS - разработка игры «Хоккей».








18


Программы с пропусками фрагментов кода (нужное добавить):

Program Sea;

Uses CRT, GRAPH;

Var

P, P2 : Pointer;

Size : Word;

Ch : Char;

X, U : Integer;

-----------------------

BEGIN

{подключение графики}

{создание фона}

{нарисовать корабль}

SIZE := ImageSize(45,45,85,80);

GetMem(P, Size);

GetImage(45,45,85,80, P);

{нарисовать орудие}

SIZE := ImageSize(300,370,345,400);

GetMem(P, Size);

GetImage(300,370,345,400, P2);

X:=0;

U:=310;

REPEAT

X:=X+1;

if X>640 then

begin X:=0; SetFillStyle(1,11); Bar(0, 0, 640, 55); end;

PutImage(X,45, P, 0);

if KeyPressed then

begin

Ch := ReadKey;

if Ch = 'a' then U:=U - 10;

if Ch = 's' then U:=U +10;

if Ch = ' ' then {имитация выстрела из орудия};

end;

PutImage(U, 370, P2, 0);

UNTIL Ch = #27;

END.

17

Цели занятий:

  • дидактические:
    - закрепление пройденного материала;
    - обобщение и систематизация знаний о среде программирования Паскаль;
    - освоение приемов построения алгоритмов и их программирование на языке Turbo Pascal;

  • воспитательные:
    - формирование мировоззрения у учащихся;
    - формирование мотивации к изучению раздела информатики "Основы алгоритмизации и программирования";
    - формирование чувства коллективизма, дружбы;

  • развивающие:
    - развитие логического мышления;
    - развитие навыков работы с системой программирования.

Межпредметные связи: связь с алгеброй и геометрией.

Внутрипредметные связи: связь с разделами геометрии, процедуры, функции.

Обеспечение занятий: компьютер + большой экран, карточки, раздаточный материал с заданиями на закрепление, интерфейс среды программирования Turbo Pascal.

Учащиеся должны знать:

  • особенности среды Turbo Pascal;

  • особенности работы в графическом режиме GRAPH;

  • стандартные процедуры и функции модуля CRT;

  • стандартные процедуры и функции модуля GRAPH.

Учащиеся должны уметь:

  • производить необходимые действия с программой;

  • работать в графическом режиме;

  • правильно применять стандартные процедуры и функции модуля CRT;

  • 2правильно применять стандартные процедуры и функции модуля GRAPH.


Понятие графического адаптера

Аппаратная поддержка графики персонального компьютера обеспечивается двумя основными модулями: видеоадаптером и видеомонитором. Видеомонитор - это устройство, на котором появляется выводимый текст или графические изображения. Видеоадаптеры - это электронные устройства, управляемые собственным микропроцессором.

При работе с экраном в графическом режиме очень важным является то, что любая информация представляет собой совокупность пикселей. Каждый пиксель определяется своими координатами, т.е. положением относительно левого верхнего угла экрана. С помощью программ можно управлять светимостью и цветом любого пикселя, т.е. создавать любое изображение.

Рассмотрение работы в графическом режиме:

Для управления экраном в графическом режиме с помощью программ в Turbo Pascal существуют специальные графические процедуры и функции. Описание этих процедур и функций содержится в специальном библиотечном модуле GRAPH.

Запуск графической системы. Для запуска графической системы необходимо сделать следующее:

  1. Подключить модуль GRAPH - библиотеку графических процедур: uses graph;

  2. Установить графический режим с помощью двух переменных:

var DriverVar, ModeVar: integer;
begin
DriverVar:=Detect;
InitGraph(DriverVar, ModeVar,'\TP\GRAPH');

3С этого момента все графические средства доступны пользователю.


2) Разработка компьютерной игры "морской бой".


План разработки программы:

1. Создание интерфейса программы:

а). создание фона;

б). нарисовать корабль;

в). нарисовать орудие.

2. Копирование фрагментов (корабль, орудие).

3. Движение корабля.

4. Движение орудия.

5. Выстрел из орудия.

390

55

x

y

Цвета:

1 - синий

2 - зеленый

11 - голубой

орудие

корабль

16


IV. Закрепление основ работы в графике.


1) Создать по образцу «Узор»


а)

б)

15

Процедуры и функции модуля GRAPH


Процедуры

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; "">Строит параллелепипед, используя текущий стиль и цвет. X1, Y1, X2, Y2 - координаты левого верхнего и правого нижнего углов передней грани; Glubina - ширина боковой грани (отсчитывается по горизонтали); Top - признак включения верхней грани (если True - верхняя грань вычерчивается, False - не вычерчивается).

Circle (X, Y: Integer; R: word)

Рисует текущим цветом окружность радиуса R с центром в точке (X, Y).

ClearDevice

Очищает графический экран, закрашивает его в цвет фона.

ClearViewPort

Очищает выделенное графическое окно, закрашивает его в цвет фона.

CloseGraph

Закрывает графический режим, т. е. освобождает память, распределенную под драйверы графики и файлы шрифтов, и восстанавливает текстовый режим работы экрана.

4

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.

FloodFill(X,Y:Integer; Color: Word)

Заливка цветом площадь от точки X,Y, ограниченную цветом Color.

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)

5Выводит точку цветом Color с координатами X, Y.


5) День, ночь. По небу движется круг (Солнце, Луна) и при достижении правого края экрана идет смена цветов графических объектов (времени суток).

День: Солнце - желтый, небо - голубое, земля - светло-зеленый, окно - черный.

Ночь: Луна - белый, небо - черный, земля - темно-зеленый, окно - желтый.


Подсказка: использовать код программы из задания III(2) движение круга от левой части экрана до правой.




14


4) Графическое меню. При нажатии на клавиатуре одной из цифр, появляется соответствующая фигура на экране.



1 -


2 -


3 -







1

2

3



Фрагмент программы:

Uses Graph, CRT;

Var Ch: Char; {переменная для хранения кода нажатой клавиши}

- - - - - - - - - - - - -

Repeat

Ch:= ReadKey;

Until Ch in ['1'..'3'];

If Ch = '1' Then {Построение соответствующей фигуры}

- - - - - - - - - - - - - -


13Дополнительное задание: добавить четвертую кнопку для обработки и назвать ее «Выход». Программу зациклить и добавить фрагмент кода для очистки экрана от старой фигуры.


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).

6

Пример использования процедур модуля GRAPH


Вывод красной точки: PutPixel(10,10,LightRed);

Вывод желтой точки: PutPixel(60,10,Yellow);

Зеленая линия: SetColor(Green); Line(10,40,50,40);

Очистка экрана: ClearDevice;

Вывод текста красным цветом:

SetColor(LightRed); OutTextXY(20,20,'Текст на экране');

Вывод точек "звездное небо":

FOR I:=1 to 30000 DO PutPixel(Random(600), Random(300), Random(16));

Построение фиолетовой рамки:

SetColor(LightMagenta); Rectangle(330, 70, 100, 160);

Вывод закрашенного прямоугольника:

SetFillStyle(1, LightRed); Bar(420, 70, 490, 150);

Вывод трехмерного прямоугольника:

Bar3D(510, 70, 580, 150, 10, true);

Построение окружности: Circle(400, 120, 30);

Построение эллипса: Ellipse(540, 200, 0, 360, 40, 30);

Закраска области экрана:

SetFillStyle(1, LightMagenta); FloodFill(520, 200, White);


Пример составления программы

Program Primer;

uses graph;

var DriverVar, ModeVar: integer;
begin
DriverVar:=Detect;
InitGraph(DriverVar, ModeVar,'\TP\GRAPH');

SetColor (Yellow); Rectangle(200, 100, 400, 300);

Circle(300, 200, 100);

SetFillStyle(1, LightMagenta);

FloodFill(300, 200, Yellow);

Readln;

7CloseGraph;
End.

III. Анимация в графике. Задания на движение (изменение), какого либо графического предмета на экране монитора.


1) Поворот линии с оставлением следа.


Подсказка:

FOR I:=1 TO 210 DO

LINE(640 - I*3, 0, I*3, 480);


2) Движение круга от левой части экрана до правой.




Подсказка:

FOR I:=1 TO 640 DO BEGIN

SETCOLOR(15); CIRCLE(I, 200, 20);

SETCOLOR(0); CIRCLE(I, 200, 20);

END;


3) Движение прямоугольника по экрану. При столкновении со стеной смена направления движения на противоположное.

Подсказка:

BAR(600,0,640,480);

REPEAT

SETFILLSTYLE(1,0); BAR(X, 210, X+10, 200);

C:=GETPIXEL(X+12, 200);

IF C=15 THEN P:=1;

IF P=0 THEN X:=X+1 ELSE X:=X-1;

SETFILLSTYLE(1,15); BAR(X, 210, X+10, 200);

UNTIL X< -1;

12


7) Всю область экрана заполнить кружками, радиуса R=10. Потребуется использование цикла и функции выдающей случайное число (Random).

(за основу можно взять вывод точек «звездное небо» из примера использования процедур модуля GRAPH).


8) Построить пирамиду (вид сверху). Для решения используется цикл и построение закрашенного прямоугольника:

SetFillStyle(1, Random(6)+10);

Bar(I*10, I*10, 640 - I*10, 480 - I*10);

11

I. Основы работы с графикой. Задания на построения основных графических элементов и ориентирование в системе координат.


1) Разбить экран на 4 части и в каждой вывести свою фигуру.


2) Создать составную фигуру «Узор».



3) Создать сложную фигуру «Цветок».



8


II. Дополнительные возможности графики. Дальнейшее изучение возможностей графики в Турбо Паскале.


1) Создать овал и закрасить область экрана внутри фигуры и с наружи, использовать разные цвета закраски.


закрасить


2) Построить «бублик» и закрасить внутреннюю область желтым цветом.





закрасить




3) Разбить экран на 3 части и в каждой вывести соответствующий текст.


9


2002

2003

2004

20054) Создать столбчатую диаграмму и разместить внизу года.



X

Y5) Схематически изобразить график функции.


106) Построить фрагмент шахматной доски.




 
 
X

Чтобы скачать данный файл, порекомендуйте его своим друзьям в любой соц. сети.

После этого кнопка ЗАГРУЗКИ станет активной!

Кнопки рекомендации:

загрузить материал