Добавить материал и получить бесплатное свидетельство о публикации в СМИ
Эл. №ФС77-60625 от 20.01.2015
Инфоурок / Информатика / Другие методич. материалы / Разработка практических заданий к урокам по теме: Графика в Turbo Pascal

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


До 7 декабря продлён приём заявок на
Международный конкурс "Мириады открытий"
(конкурс сразу по 24 предметам за один оргвзнос)

  • Информатика

Поделитесь материалом с коллегами:





МБОУ СОШ № 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




hello_html_eaeab5f.gif

1





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


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


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


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

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

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

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

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

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








hello_html_eaeab5f.gif

18

hello_html_5705b6e7.gif


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

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.

hello_html_eaeab5f.gif

17




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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • hello_html_eaeab5f.gif

    2

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


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

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

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

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

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

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

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

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

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

hello_html_eaeab5f.gif

3

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




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


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

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

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

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

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

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

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

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

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

hello_html_134749f2.gifhello_html_m6758a219.gifhello_html_m6758a219.gifhello_html_m44adb879.gifhello_html_20c3f68.gifhello_html_mb23239a.gifhello_html_5cc473d6.gifhello_html_5cc473d6.gifhello_html_m5ff46836.gif

390

55

hello_html_m6229c3b9.gif

x

y

hello_html_m243a21ee.gif hello_html_m3a322c1d.gif hello_html_32fe9175.gif hello_html_5e9c6afc.gif hello_html_m3af1f850.gif hello_html_m3af1f850.gif hello_html_mde54eb8.gif

Цвета:

1 - синий

2 - зеленый

11 - голубой

орудие

корабль

hello_html_eaeab5f.gif

16



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


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


hello_html_m77d950f0.gifа)















б)

hello_html_m41f6e2ec.gifhello_html_eaeab5f.gif

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

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

hello_html_eaeab5f.gif

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)

hello_html_eaeab5f.gif

5

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




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

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

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


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


hello_html_m33cf1e94.gif




hello_html_eaeab5f.gif

14



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


hello_html_3310f18a.gif

hello_html_m7a5200d2.gif

1 -




2 -




3 -


hello_html_m27d3f6f.gif


hello_html_m173ee48e.gif



hello_html_31b00826.gif




hello_html_3cd4f2b2.gifhello_html_m47357494.gif

hello_html_3c46e58a.gifhello_html_3c46e58a.gifhello_html_3c46e58a.gif

1

2

3



hello_html_1cbd7991.gif



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

Uses Graph, CRT;

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

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

Repeat

Ch:= ReadKey;

Until Ch in [‘1’..’3’];

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

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


hello_html_eaeab5f.gif

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

hello_html_eaeab5f.gif

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;

hello_html_eaeab5f.gif

7

CloseGraph;
End.



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


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


hello_html_m2420c9f6.gif

Подсказка:

FOR I:=1 TO 210 DO

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











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

hello_html_m39b329f9.gif


hello_html_m408e67fc.gif

Подсказка:

FOR I:=1 TO 640 DO BEGIN

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

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

END;







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

hello_html_abf95ab.gifhello_html_1ad0bbda.gifhello_html_3b8a6ff7.gif

Подсказка:

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;

hello_html_eaeab5f.gif

12



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

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

hello_html_24ba507c.gif















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

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

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

hello_html_3d276930.gifhello_html_eaeab5f.gif

11




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


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












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

hello_html_m62493da8.gif








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

hello_html_3f42ad1b.gif


hello_html_eaeab5f.gif

8



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


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


hello_html_789340e9.gif

закрасить







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

hello_html_m2ee45d04.gif


hello_html_m34a8dc54.gif


закрасить






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

hello_html_130e2134.gif

hello_html_eaeab5f.gif

9





2002

2003

2004

2005

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


hello_html_2a0efa5e.gif









hello_html_f09c4ac.gifhello_html_m759bcc2c.gifhello_html_m735ec9d.gif

X

Y

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














hello_html_m371f907a.gifhello_html_eaeab5f.gif

10

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



57 вебинаров для учителей на разные темы
ПЕРЕЙТИ к бесплатному просмотру
(заказ свидетельства о просмотре - только до 11 декабря)

Автор
Дата добавления 22.12.2015
Раздел Информатика
Подраздел Другие методич. материалы
Просмотров329
Номер материала ДВ-278119
Получить свидетельство о публикации
Похожие материалы

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