Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Отчёт о практике 2010.doc
Скачиваний:
8
Добавлен:
13.05.2015
Размер:
519.68 Кб
Скачать

Задание 6. Динамическая память в программировании графического режима

  1. Задание по практике

Нарисовать на фоне леса периодически движущийся закрашенный шарик. Движение из точки с координатами (400,0) в точку с координатами (0, 400). Размеры шарика ввести с клавиатуры. Движение прерывается после нажатия клавиши “F4”.

  1. Соглашение о требованиях к программе

2.1Назначение программы:

Вывод требуемого изображения и имитация движения объекта.

2.2Перечень функций, выполняемых программой

  1. Отрисовка фона (лес),

  2. Анимация движения шарика.

2.3Формат входных данных:

Числовой (натуральные числа) – радиус шарика.

2.4Формат выходных данных:

Графический – изображение леса и движущегося шарика.

  1. Реализация:

3.1Текст программы:

program p6;

uses Crt, Graph;

type PineDot = record

x, y: Word;

end;

CoordArray = array [1..16] of PineDot;

const M: CoordArray =

((x: 260; y: 300), (x: 290; y: 260) ,(x: 270; y: 260), (x: 300; y: 220),

(x: 285; y: 220), (x: 315; y: 180), (x: 304; y: 180), (x: 330; y: 145),

(x: 358; y: 180), (x: 347; y: 180), (x: 377; y: 220), (x: 362; y: 220),

(x: 392; y: 260), (x: 372; y: 260), (x: 402; y: 300), (x: 260; y: 300));

var Gd, Gm: Integer;

i, R: Byte;

x, y: Word;

dx, dy: ShortInt;

C: Char;

Tree1, Tree2, Grass, Ball: Pointer;

T1, T2, G, B: Word;

begin

ClrScr;

Write('Введите радиус шарика -> ');

ReadLn(R);

Gd := detect;

Gm := 0;

InitGraph(Gd, Gm, 'egavga.bgi');

ClearDevice;

SetBkColor(10);

{ель}

SetFillStyle(1, 6);

Bar(325, 300, 335, 340);

SetColor(2);

DrawPoly(16, M);

SetFillStyle(1, 2);

begin

CloseGraph;

FreeMem(Ball, B);

Halt;

end;

end;

end;

until False;

{--------}

end.

34