Материал: Информационные технологии. методические указания к выполнению лабораторных работ № 3-4 для студентов направления Конструирование и технология электронных средств. Ромащенко М.А., Пирогов А.А

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

увеличения радиуса 15.

4.Число окружностей 8, центр с координатами 270х270, шаг увеличения радиуса 10.

5.Число окружностей 9, центр с координатами 260х280, шаг увеличения радиуса 5.

6.Число окружностей 4, центр с координатами 200х200, шаг увеличения радиуса 30

7.Число окружностей 5, центр с координатами 100х100, шаг увеличения радиуса 10.

8.Число окружностей 6, центр с координатами 120х120, шаг увеличения радиуса 15.

9.Число окружностей 7, центр с координатами 140х140, шаг увеличения радиуса 20.

10.Число окружностей 8, центр с координатами 160х160, шаг увеличения радиуса 10.

1.3. Контрольные вопросы для отчета работы

1.Для чего необходим модуль Graph языка Паскаль?

2.Что такое графический режим? Как происходит инициация графического режима?

3.Что такое графический драйвер? Что такое пиксел?

4.Где находится начало отсчета графических координат?

5.Перечислите основные процедуры и функции для установки положения курсора в графическом режиме языка Паскаль.

6.Перечислите основные процедуры и функции для рисования линий и точек в графическом режиме языка Паскаль.

7.Перечислите основные процедуры и функции для рисования прямоугольников и окружностей в графическом режиме языка Паскаль.

8.Перечислите основные процедуры и функции для вывода текста в графическом режиме языка Паскаль.

11

2.ЛАБОРАТОРНАЯ РАБОТА № 4

ПОСТРОЕНИЕ ГРАФИКОВ ФУНКЦИЙ И СОЗДАНИЕ ГРАФИЧЕСКОГО ИНТЕРФЕЙСА НА ЯЗЫКЕ PASCAL

С ПОМОЩЬЮ МОДУЛЯ GRAPH

Цель работы: расширить знания об использовании процедур и функций модуля Graph языка Паскаль. Научиться строить графики функции и круговые диаграммы. Получить навык создания графического интерфейса средствами языка Паскаль.

Время работы: 8 часов.

2.1. Домашние задания и методические указания по их выполнению

Задание 1 – закрепить знания о процедурах и функциях для работы с красками, палитрами и заполнениями в графическом режиме на языке Паскаль.

Процедура SetColor устанавливает текущий цвет для выводимых линий и символов. Заголовок процедуры имеет вид:

procedure SetColor(Color: Word);

Процедура SetBkColor устанавливает цвет фона. Заголовок процедуры имеет вид:

procedure SetBkColor(Color: Word);

Процедура SetFillStyle устанавливает тип и цвет заполнения. Заголовок процедуры имеет вид:

procedure SetFillStyle(Fill, Color: Word);

За счет заполнения можно покрывать какие-либо фрагменты изображения периодически повторяющимся узором. Для указания типа заполнения используются следующие, предварительно определенные константы

SolidFill

= 1;

{сплошное заполнение}

LineFill

= 2;

{заполнение символами --------}

LtSlashFill

= 3; {заполнение символами ////////}

12

SlashFill

= 4;

{заполнение утолщенными символами ////////}

BkSlashFill

= 5;

{заполнение утолщенными символами \\\\\\\\}

LtBkSlashFill

= 6;

{заполнение символами \\\\\\\}

HatchFill

= 7;

{заполнение символами ++++++}

XhatchFill

= 8;

{заполнение символами ххххххх}

IntegerLeaveFill= 9;

{заполнение символами #######}

WideDotFill

= 10;

{заполнение редкими точками}

CloseDotFill

= 11;

{заполнение частыми точками}

Процедура FloodFill заполняет произвольную замкнутую фигуру используя текущий стиль заполнения. Заголовок процедуры имеет вид:

procedure FloodFill(X, Y: Integer; Border: Word);

где X, Y – координаты любой точки внутри замкнутой фигуры; Border – цвет граничной линии.

Процедура Bar заполняет прямоугольную область экрана текущим стилем. Заголовок процедуры имеет вид:

procedure Bar(X1, Y1, X2, Y2, Depth: Integer);

Процедура Bar3D вычерчивает трехмерное изображение параллелепипеда и закрашивает его переднюю грань. Заголовок процедуры имеет вид:

procedure Bar3D(X1, Y1, X2, Y2: Integer; Top: Boolean);

где Top – способ изображения верхней грани (True – верхняя грань вычерчивается). Передняя грань заливается текущим стилем заполнения.

Процедура FillPoly обводит линией и закрашивает замкнутый многоугольник. Заголовок процедуры имеет вид:

procedure FillPoly(N: Word; var Coords);

где, N – количество вершин замкнутого многоугольника; Coord

– переменная типа PoinType, содержащая координаты вершин.

Для построения круговых диаграмм удобно использовать процедуру PieSlice, которая вычерчивает и заполняет сектор окружности. Заголовок процедуры имеет вид:

procedure PieSlice(X, Y: Integer; BegA, EndA, R: Word);

где BegA и EndA начальный и конечный угол сектора

13

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

Процедура GetImage помещает в память копию прямоугольного фрагмента изображения. Заголовок процедуры имеет вид:

procedure GetImage(X1, Y1, X2, Y2: Integer; var Buf);

где, Buf – переменная в которую будет помещена копия видеопамяти с фрагментом изображения.

Процедура PutImage выводит в заданное место экрана копию фрагмента изображения. Заголовок процедуры имеет вид:

procedure PutImage(X, Y: Integer; var Buf; Mode: Word);

где, Mode – определяет способ взаимодействия размещаемой копии и существующего изображения.

NormalPut= 0;

{замена существующего изображения на

копию}

 

 

XORPut

= 1;

{исключающее ИЛИ}

ORPut

= 2;

{объединяющее ИЛИ}

ANDPut

= 3;

{логическое И}

NOTPut

= 4;

{инверсия изображения}

Задание 3 – изучить основные принципы создания графического интерфейса на языке Паскаль.

Ниже приведен пример построения графического интерфейса с помощью модуля Graph языка Паскаль. Он состоит из 2-х пунктов меню (Выполнить, Выход). При нажатии на клавиш вверх и вниз (коды клавиш #72 и #80 соответственно) происходит поочередный выбор одного из пунктов меню (Выполнить, Выход). При нажатии клавиши Esc (код клавиши #27) происходит выход из программы. При нажатии клавиши Enter (код клавиши #13), если активно меню «Выход», то должен произойти выход из программы, если активно

14

меню «Выполнить», цвет этого меню должен поменяться от 1 до 15 c небольшой задержкой.

Внимание в приведенном ниже тексте реализован механизм выхода, нажатие клавиш Enter (#13) и Вниз (#80). Разобрав принцип работы программы необходимо реализовать нажатие клавиши вверх

(#72).

Program GrIntefice; uses crt, Graph; var

GD, GM, TekDeystvie, i: integer; Ch: char;

begin

GD:=Detect; initgraph(GD,GM, ''); TekDeystvie:=1; setcolor(7);

outtextxy(240,240,’Выполнить’); setcolor(15); outtextxy(240,280,’Выход’); repeat

Ch:=readkey; case ch of #13: begin

case TekDeystvie of

1: begin

{Выполняем какое-то действие} for i:=1 to 15 do

begin delay(3000); setcolor(i);

outtextxy(240,240,’Выполнить’)

end; setcolor(7);

outtextxy(240,240,’Выполнить’);

15

Источник: https://studfile.net/preview/16564114/