Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
PASСAL_a4_2007.doc
Скачиваний:
31
Добавлен:
13.09.2019
Размер:
2.51 Mб
Скачать

Вопросы для контроля

  1. Для чего предназначена команда ввода?

  2. Чем отличаются и что общего у команд ввода и присваивания?

  3. В чем разница между командой присваивания и равенством в математике?

  4. Поясните назначение процедуры GOTOXY(x,y).

  5. Как в программе:

a) подключается библиотека Crt?

б) задается цвет символов?

в) задается цвет фона?

г) осуществляется задержка выполнения прог­рам­мы по времени?

Лабораторная работа 4. Графика в языке pascal (первое знакомство)

1. Включение графического режима

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

Сначала решим проблему включения графического режима. Для этого можно воспользоваться процедурой Init, имеющейся в учебной библиотеке Graph0.

Например:

Program Globus;

Uses Graph, Graph0; {Обратите внимание, что для работы в графике подключаются две библиотеки: Graph и Graph0! }

var x,y : word;

begin

Init(‘d:\TP70\BGI’); {Процедура включения графики. В скобках указывается путь к подкаталогу BGI.}

...

CloseGraph; {Процедура закрытия графики, т.е. возврат в алфавитно-цифровой режим.}

end.

Для Вас включение графического режима означает, что теперь простейшей выводимой единицей является не символ (как в алфавитно-цифровом режиме), а ТОЧКА. Таких точек на экране вмещается достаточно много.

  • На самом деле количество точек на экране зависит от типа терминала и от режима его работы. Так, например, терминал EGA обеспечивает максимальный размер экрана 640x350 точек, VGA - 640x480, CGA - 320x200 точек. ТЕРМИНАЛЫ БОЛЬШЕЙ РАЗРЕШИМОСТИ МОГУТ РАБОТАТЬ В РЕЖИМАХ ТЕРМИНАЛОВ МЕНЬШЕЙ РАЗРЕ­ШИМОС­ТИ, т.е. терминал EGA может сделать вид, что он CGA, но не может превратиться в VGA и т. п.

2. Библиотека Graph

В среде Turbo Pascal имеется стандартная библиотека Graph, содержащая множество различных подпрограмм для рисования простейших примитивов (точек, линий, окружностей, эллипсов и т.д.). Подключив библиотеку Graph (Uses Graph;), Вы можете воспользоваться процедурами, перечисленными ниже.

PutPixel (x,y: integer; Color: byte) - рисование точки с координатами (x,y) и цветом Color.

SetColor (Color: byte) - задать цвет рисуемых линий.

ClearDevice; - очистка графического экрана6.

OutTextXY(x,y : integer; txt : string); - вывод строки текста txt на графический экран. Числа x,y указывают координаты левого верхнего угла первой буквы выводимого текста.

Line (x1,y1,x2,y2: integer); - рисует отрезок прямой с концами в точках (x1,y1) и (x2,y2).

Rectangle (x1,y1,x2,y2: integer); - рисует прямоугольную рамку с координатами диагонали (x1,y1) и (x2,y2).

Circle(x,y,R:integer); - рисует окружность с центром в точке с координатами (x,y) и радиусом R.

SetFillStyle (Pattern , Color: byte); - устанавливает вид (Pattern) и цвет (Color) штриховки, действует на все команды штриховки, пока не установлены новые параметры (так же, как и SetColor). Возможные типы штриховки:

EmptyFill =

- штриховка цветом фона

SolidFill =

- сплошная штриховка

LineFill =

- штриховка горизонт. линиями

LtSlashFill =

- штриховка наклонными линиями

SlashFill =

- штриховка утолщенными линиями

BkSlashFill=

- штриховка утолщенными линиями

LtBkSlashFill=

- штриховка наклонными линиями

HatchFill =

- штриховка крестиками

XHatchFill =

- штриховка повернутыми крестиками

InterleaveFill=

- штриховка частыми крестиками

WideDotFill =

- штриховка точками

CloseDotFill=

- штриховка частыми точками

UserFill =

- штриховка, определяемая пользователем.

FloodFill (x,y:integer;Color: byte); - команда закраски области внутри замкнутого контура, x и y - координаты произвольной точки ВНУТРИ контура, Color - ЦВЕТ ГРАНИЦЫ КОНТУРА.

Bar(x1,y1,x2,y2: integer); - рисуется закрашенный прямоугольник с координатами противоположных углов (x1,y1) и (x2,y2), цвет установлен командой SetFillStyle.

Задание 1

Считайте с диска файл с именем lab4_1.pas. Он представляет собой программу рисования линии на экране дисплея. Запустите эту программу - и вы увидите на экране зеленую горизонтальную прямую линию. Рисунок будет стоять на экране до тех пор, пока не будет нажата клавиша <Enter> (это обеспечивается командой ReadLn в программе после рисования линии). Модифицируйте программу так, чтобы:

а) линия располагалась вертикально;

б) линия располагалась по диагонали экрана;

в) на экране рисовались две диагонали - одна красного цвета, а другая - желтого;

г) один конец линии располагался в левом верхнем углу экрана - в точке с координатами (0,0), а координаты другого конца вводились с клавиатуры (ввод нужно произвести до включения графического режима).

Задание 2

Считайте с диска файл с именем lab4_2.pas. Перед вами появилась программа рисования на экране дисплея квадрата и окружности, размеры которых вводятся с клавиатуры (запустите программу и убедитесь в этом). Модифицируйте программу так, чтобы с клавиатуры вводился только размер стороны квадрата. При этом окружность должна быть:

а) вписана в квадрат;

б) описана около квадрата.

Задание 3

В файле lab4_3.pas записана программа рисования заштрихованного квадрата, меняющего цвет после нажатия клавиши <Enter>. Запустите ее и прона­блюдайте за ее работой. Модифицируйте программу так, чтобы цвет квадрата не менялся, а менялся тип штриховки.

Еще одна модификация: на экране, кроме квадрата, должен появляться еще и заштрихованный круг:

а) того же цвета в другом месте экрана;

б) другого цвета внутри квадрата.

Задание 4

Нарисуйте на экране дисплея:

а) российский флаг 150х150 пиксель (гори­зон­таль­ные полосы: белая, синяя, красная - одинаковой ширины);

б) французский флаг 150х150 пиксель; (вертикаль­ные полосы: синяя, белая, красная - одинаковой ширины);

б) японский флаг 300х150 пиксель (красный круг в центре белого прямоугольника).

Задание 5

Модифицируйте составленные программы рисования:

а) российского флага;

б) французского флага;

в) японского флага,

так, чтобы размеры и место на экране вводились с клавиатуры7.

Задание 6**

Нарисуйте на экране дисплея простейшую модель Солнечной системы, изобразив планеты кружками различного цвета и диаметра, а их орбиты - окружностями. Усложните модель, добавив Луну, спутники Марса и т.п.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]