Язык Turbo Pascal
Курсовая работа, 16 Декабря 2014, автор: пользователь скрыл имя
Краткое описание
Цель исследования– изучить основы языка программирования, научиться создавать графические изображения на языке Turbo Pascal.
Задачи исследования :
1.изучить структуру программы
2. освоить основные графические процедуры и функции
Объект исследования: программа Turbo Pascal
Прикрепленные файлы: 1 файл
курсовая.docx
— 123.29 Кб (Скачать документ)
Процедура FloodFill(X,Y:integer; Border: word); заполняет ограниченную область текущим цветом и стилем заполнения (SetFillStyle). Граница закрашиваемой области высвечивается цветом, заданным в Border.
Если точка (X,Y) находится внутри области, то эта область закрашивается, если же она расположена вне области, то заполняется внешняя часть области.
Построение дуг, эллипсов и окружностей
Процедура Arc(X,Y:integer; al, a2,R: word); строит дугу. Здесь (X,Y)—центр окружности дуги, al, a2 — начальный и конечный углы, отсчитываемые от горизонтальной оси против часовой стрелки, R—радиус. Если al=00, а а2=360°, то вычерчивается полная окружность.
Процедура Ellipse (X,Y: integer; al,a2,Rx,Ry: word); предназначена для построения эллиптических дуг. Здесь (X,Y)—центр эллипса, al,a2 — начальный и конечный углы, отсчитываемые от горизонтальной оси против часовой стрелки, Rx и Ry — горизонтальная и вертикальная полуоси. Если al=0°, а а2 = 3600, то вычерчивается полный эллипс.
Процедура FillEllipse(X,Y: integer; Rx,Ry: word); строит полный закрашенный эллипс.
Процедура Circle(X,Y: integer; R: word); выводит на экран изображение окружности с центром (X,Y) и радиусом R. Окружность рисуется цветом, заданным SetColor.
Процедура PieSlice(X,Y: integer; al, n2,R: word); выводит на экран изображение закрашенного сектора круга, используя в качестве центра круга точку (X,Y), начальный угол al, конечный угол a2 и радиус R. Контур сектора высвечивается текущим цветом. При заполнении сектора используются шаблон и цвет, установленные процедурой SetFillStyle. Если al =0°, а а2=360°, то на экран выводится закрашенная окружность.
Процедура Sector(X,Y: integer; al,a2,Rx;Ry: word); строит закрашенный сектор эллипса.
Реализация имитации движения графических объектов
Создать видимость движения на экране можно двумя способами.
Первый способ заключается в том, что имитация движения объекта на экране создаётся за счёт многократного выполнения программой напора действий: нарисовать — пауза — стереть рисунок (нарисовать его в том же месте цветом фона)— изменить координаты изображения.
Перед началом составления программы надо продумать описание «движущегося» объекта; характер изменения координат, определяющих текущее положение объекта; диапазон изменения и шаг.
Второй способ имитации движения рисунка или его части состоит и его запоминании в отдельной области оперативной памяти с тем, чтобы в дальнейшем быстро восстановить это изображение в другом месте экрана.
Для хранения фрагмента удобнее
всего использовать динамическую область
памяти. Получить размер памяти в байтах,
необходимой для сохранения образа фрагмента,
позволяет функция ImageSize(X1,Yl,X2,Y2:integer): word.
Здесь (X1,YI) и (X2,Y2) — координаты верхнего
левого и нижнего правого углов прямоугольника.
Если полученный размер памяти больше
64Кб, то значение ImageSize = 0, a GraphResult=-1. Чтобы
этого избежать, следует сохранять изображение
по частям.
Полученный с помощью функции ImageSize размер памяти применяют в качестве входной информации для процедуры GetMem(p,Size), которая выделяет указанный объем памяти в динамической области. Здесь р — указатель на область памяти, Size — ее размер.
Процедура GetImage(Xl,Yl,X2,Y2:integer; var BitMap: word); сохраняет образ фрагмента в памяти, где XI,Y1,X2,Y2 — координаты фрагмента, BitMap — переменная, которая указывает, где сохраняется образ изображения.
Процедура Putlmage(X,Y: integer; var BitMap, Mo-de:word); восстанавливает сохраненный в буфере Bit-Map прямоугольник, левый верхний угол которого задаётся координатами (X,Y). Параметр Mode задает режим вывода изображения.
Циклы в графике. Построение случайных процессов
Для того, чтобы картинки не были монотонными и регулярными, можно задавать фигурам случайные размеры, цвет, координаты. Для этого имеется специальная функция Random. Она генерирует случайные числа из (0, 1). Для расширения первоначального промежутка используется функция Random(I: word), которая выдает число из диапазона 0… I. На самом деле эти функции генерируют некоторую последовательность псевдослучайных чисел, и чтобы добиться иллюзии полной «случайности» используют команду Randomize, которая изменяет базу датчика случайных чисел.
Заключение
Обычно человек мыслит приблизительными категориями, а язык программирования, даже самый простой, никакой приблизительности не терпит. Компьютеру нужно «говорить» абсолютно четко, по пунктам. Если хотя бы одно место прописано недостаточно четко, компьютер остановится и выдаст ошибку.
Относительно лёгкий в освоении, язык Паскаль, который является одним из родоначальников программирования, прекрасно подходит для новичков в программировании.
Паскаль уникальный язык программирования и без основ этого языка невозможно начать свой трудный путь по освоению азов программирования. Только Паскаль может дисциплинировать программиста и научить его логическому мышлению.
В данной курсовой работе описываются различные процедуры и функции, предназначенные для создания графических объектов в Турбо Паскаль.
Используя выше перечисленные процедуры и функции, можно научиться изображать различные фигуры различных форм и размеров.
Целью данной курсовой работы является изучить основы языка программирования, научиться создавать графические изображения на языке Turbo Pascal.
Написав данную работу, автор получила навык работы в графической среде Турбо Паскаль, научилась правильно применять разные процедуры и функции, точно определять и задавать координаты различных линий, эллипсов, окружностей, прямоугольников и т.д.
Список использованной литературы
- Фаронов В.В. Турбо-Паскаль 7.0. Начальный курс. М.: "Нолидж", 2001
- Мизрохи С.В. TURBO-PASCAL и объектно-ориентированное программирование. - М.: Финансы и статистика, 2002
- Культин Н.Б. Программирование в Turbo Pascal 7.0 и Delphi. СПб.:БХВ - Санкт-Петербург, 2005.
- Прайс Д. Программирование на языке Паскаль: Практическое руководство. Пер. с англ. - М.:Мир, 2007.
- Грызлов В.И., Грызлова Т.П. Турбо Паскаль 7.0. - М.: "ДМК", 2000. - 416 с.
- Зуев Е.А. Язык программирования Turbo Pascal 6.0.
- М.: Унитех, 1992. - 298с.,ил. - Зуев Е.А. Turbo Pascal. Практическое программирование.
- Приор,1997. - 336с. - Поляков Д.Б., Круглов И.Ю. Программирование в среде Турбо
Паскаль 5.5.
- М:., МАИ, 1992. - 576 с. - Лилитко Е.П. Практикум по программированию.
Начальный курс.
- Переяславль-Залесский, 1997.
Приложение 1
Процедуры и функции языка Turbo Pascal
Интерфейс |
Назначение | |
Управление графическим режимом | ||
Procedure CloseGraph; |
Закрывает графический режим | |
Procedure DetectGraph (Var GrDriver, GrMode:Integer); GrDriver-код драйвера, GrMode-код графического режима |
Определяет рекомендуемые к применению для данного компьютера графические драйвер и режим | |
Function GetDriverName:String; Значение функции-имя используемого драйвера |
Определяет имя файла с используемым графическим драйвером | |
Function GetGraphMode:Integer; Значение функции-код графического режима |
Определяет код используемого графического режима | |
Function GetMaxName:Integer; Значение функции-имя используемого графического режима |
Определяет имя используемого графического режима | |
Function GetMaxMode:Integer; Значение функции-максимальное значение кода режима |
Определяет максимальное значение кода графического режима для используемого драйвера | |
Procedure GetMaxRange (GrDriver:Integer; Var LoMode, HiMode:Integer); GrDriver-код графического режима; LoMode, HiMode-наименьшее и наибольшее значения кода графического режима для данного драйвера |
Определяет минимальное и максимальное значения кода графического режима для указанного при обращении драйвера | |
Procedure GraphDefaults; |
Устанавливает графический указатель в начало координат и переустанавливает графическую систему | |
Function GraphErrorMsg (ErrorCode:Integer):String; ErrorCode-код графической ошибки. Значение функции - текстовое сообщение о характере ошибки |
Дает стоку – сообщение об ошибке графического режима по коду ошибки | |
Function GraphResult:Integer; Значение функции-код ошибки |
Определяет, произошла ли ошибка при исполнении процедур модуля | |
Procedure InitGraph (var GrDriver, GrMode:Integer, PathToDriver:String); GrDriver-код драйвера, GrMode-код графического режима; PathToDriver-путь к файлу используемого драйвера |
Устанавливает заданный графический режим | |
Function
InstallUserDriver (Name:String; AutoDetectPtr:Pointer): Name-имя файла графического драйвера, AutoDetectPtr-указатель на процедуру, определяющую успешность запуска драйвера. Значение функции-цифровой код установленного драйвера |
Инсталлирует пользовательский драйвер графического режима | |
Procedure RegisterBGIDriver (Driver:Pointer):Integer; Driver-указатель на драйвер |
Регистрирует драйвер графической системы | |
Procedure RestoreCrtMode; |
Закрывает графический режим и восстанавливает текстовый режим, установленный раннее | |
Procedure SetGraphMode (GrMode:Integer); GrMode-код графического режима |
Устанавливает другой графический режим без изменения драйвера | |
Управление экраном и окнами | ||
Procedure ClearDevice; |
Очищает экран, сбрасывает все графические установки к значениям по умолчанию, устанавливает графический указатель в положение (0,0) | |
Procedure ClearViewPort; |
Очищает экран, устанавливая фон, заданный в SetBkColor | |
Function GetMaxX:Integer; Значение функции-максимальная координата Х |
Определяет коэффициенты, характеризующие неодинаковость линейного расстояния между пикселями по осям X и Y | |
Function GetMaxY:Integer; Значение функции-максимальная координата Y | ||
Function GetBkColor:Word; Значение функции-код цвета фона |
Определяет установленный цвет фона | |
Экран и окна | ||
Procedure GetVievSettings (VarVievPort: VievPortType); VievPort-параметры текущего окна |
Запрашивает текущие параметры окна и отсечения | |
Procedure SetBkColor (Color: Word); Значение функции-код цвета фона |
Устанавливает цвет фона | |
Procedure SetActivePage (Page:Word); Page – номер активной страницы |
Устанавливает активную графическую страницу | |
Procedure SetAspectRatio ( Var Xasp, Yasp:Word); Xasp, Yasp – коэффициенты по осям X и Y |
Изменяет масштабный коэффициент отношения сторон экрана | |
Procedure SetVisualPage (Page:Word); Page – номер страницы |
Устанавливает номер видимой графической страницы | |
Procedure SetVievPort (x1, y1, x2, y2:Integer; Clip:Boolean); (x1, y1) и (x2, y2) – координаты противоположных углов окна; Clip – определяет, отсекать ли изображение за пределами окна или нет |
Устанавливает визуальный порт (окно) для вывода графического изображения | |
Function GetColor:Word; Значение функции – код цвета |
Возвращает текущий цвет (установленный SetColor) | |
Procedure GetDefaultPalette (VarPalette:PaletteType); Palette - палитра (массив типа PaletteType) |
Определяет, какая палитра действует в режиме по умолчанию | |
Function GetMaxColor:Word; Значение функции – максимальный код цвета |
Определяет максимальный код цвета в установленном режиме | |
Procedure GetPalette (Var Palette:Palette Type); Palette – палитра (массив типа PaletteType) |
Определяет, какая палитра установлена | |
Function GetPaletteSize:Word; Значение функции – число цветов в палитре |
Возвращает размер таблицы палитры | |
Procedure SetAllPalette (Var Palette:PaletteType); Palette – палитра (массив типа PaletteType) |
Устанавливает все цвета палитры | |
Procedure SetColor (Color:Word); Color - код цвета |
Устанавливает цвет для линий | |
Procedure SetPalette (ColorNum, Color:Word); ColorNum – код заменяемого цвета; Color – код нового цвета |
Устанавливает один новый цвет в палитре | |
Procedure SetRGBPalette (ColorNum, RedValue, GreenValue, BlueValue:Word); ColorNum – код устанавливаемого в палитре цветов; RedValue, GreenValue, BlueValue – интенсивность красного, зеленого и синего в этом цвете |
Устанавливает в палитру цвет, заданный тремя компонентами: красным, зеленым и синим | |
Управление указателем | ||
Function GetX:Integer; GetX – координата Х указателя |
Возвращает координату Х текущего указателя | |
Function GetY:Integer; GetY – координата Y указателя |
Возвращает координату Y текущего указателя | |
Procedure MoveTo (X:Integer; Y:Integer); (X,Y) – координаты точки экрана |
Перемещает указатель в точку, заданную координатами X,Y | |
Procedure MoveRel (dx:Integer; dy:Integer); dx, dy – вектор приращений координат точки экрана |
Перемещает указатель в точку, координаты которой отличаются от текущих координат на значения dx, dy | |
Шаблоны; закраска областей | ||
Procedure FloodFill (X, Y:Integer; ColorBorder:Word); (X,Y) – координаты точки, вокруг которой идет закраска; ColorBorder – цвет, обозначающий границы области закраски |
Закрашивает произвольную область по заданным шаблону и цвету вокруг заданной точки до границ, обозначенных определенным цветом | |
Procedure GetFillPattern (Var FillPattern:FillPatternType); FillPattern – массив типа FillPatternType, содержащий информацию о шаблоне |
Определяет установленный тип шаблона | |
Procedure GetFillSettings (Var FillInfo: FillSettingsType); FillInfo – запись типа FillSettingsType, содержащая информацию о шаблоне |
То же | |
Procedure GetLineSettings (Var LineInfo: LineSettingsType); LineInfo – запись типа LineSettingsType, содержащая информацию о типе линии |
Определяет установленный тип линии | |
Procedure GetGraphBufSize (Size:Word); Size – размер буфера |
Изменяет размер буфера для функций заполнения | |
Procedure SetFillPattern (Pattern:FillPatternType; Color:Word); Pattern – массив типа FillPatternType, содержащий информацию о шаблоне; Color – цвет раскраски |
Устанавливает шаблон и цвет раскраски | |
Procedure SetFillStyle (Pattern, Color:Word); Pattern – код стандартного шаблона; Color - цвет раскраски |
Устанавливает один из стандартных шаблонов и цвет раскраски | |
Procedure SetLineStyle (LineStyle, Pattern, Thickness:Word); LineStyle – код стиля линии; Pattern – собственный шаблон линии; Thickness – толщина линии |
Устанавливает цвет линии как один из стандартных или по собственному шаблону | |
Изображение геометрических фигур | ||
Procedure Arc (X, Y:Integer; StartAngle, EndAngle, R:Word); (X, Y) – координаты центра окружности; StartAngle, EndAngle – начальный и конечный углы дуги окружности в градусах (0,359); R – радиус окружности в пикселях в направлении Х |
Изображает дугу окружности. Процедура учитывает неодинаковость масштаба по осям | |
Procedure Bar (x1, y1, x2, y2:Integer); (x1,y1) и (x2,y2) – координаты левого верхнего и правого нижнего углов прямоугольника |
Изображает окрашенный прямоугольник без контура | |
Procedure Bar3D (x1, y1, x2, y2:Integer; Depth:Word; Top:boolean); (x1, y1) и (x2, y2) – координаты левого верхнего и правого нижнего углов параллелепипеда, Depth – его глубина, Top – определяет, изображать ли верхнюю грань фигуры (true - изображать) |
Изображает трехмерный прямоугольный параллелепипед с заполнением передней грани. Верхняя грань может изображаться или не изображаться | |
Procedure Circle (x, y:Integer; R:Word); (x, y) – координаты центра окружности; R – радиус окружности в пикселях в направлении Х |
Изображает окружность. Процедура учитывает неодинаковость масштаба по осям | |
Procedure DrawPoly (NumPoints:Word; Var PolyPoints); NumPoints – число точек, задающих ломанную линию; PolyPoints – массив точек (элементов типа Point), задающих ломанную линию |
Изображает ломанную линию, проходящую через данный массив точек | |
Procedure Ellipse (X, Y:Integer; StartAngle, EndAngle, Rx, Ry:Word); (X, Y) – координаты центра эллипса; StartAngle, EndAngle – начальный и конечный углы дуги эллипса в градусах (0,359); Rx, Ry – полуоси эллипса в пикселях в направлении Х и Y |
Изображает дугу эллипса , полуоси которого в направлениях Х и Y заданны в пикселях | |
Procedure GetArcCoords (Var ArcCoords: ArcCoordsType); ArcCoordsType – запись, содержащая координаты дуги |
Возвращает координаты дуги, изображенной процедурами Arc и Ellipse | |
Procedure FillEllipse (X, Y:Integer; Rx, Ry:Word); (X, Y) – координаты центра эллипса; Rx, Ry – полуоси эллипса в пикселях в направлениях X и Y |
Чертит закрашенный эллипс, полуоси которого в направлениях X, Y заданы в пикселях | |
Procedure FillPoly (NumPoints:Word; Var PolyPoints); NumPoints – число точек, задающих ломанную линию; PolyPoints – массив точек (элементов типа Point), задающих ломанную линию |
Изображает закрашенный многоугольник, заданный массивом вершин | |
Function GetPixel (x, y:Integer):Word; (x, y) – координаты точки, результат – цвет точки |
Возвращает цвет заданной точки | |
Procedure Line (x1, y1, x2, y2:Integer); (x1, y1), (x2, y2) – координаты конечных точек отрезка прямой |
Чертит отрезок прямой по двум заданным конечным точкам | |
Procedure LineRel (dx, dy:Integer); (dx, dy) – смещение конечной точки относительно начального положения указателя |
Чертит отрезок прямой от положения указателя до точки, смещенной относительно указателя на заданное значение | |
Procedure LineTo (x, y:Integer); (x, y) – координаты точки, в которую проводится отрезок |
Чертит отрезок прямой от точки положения указателя до заданной точки | |
Procedure Rectangle (x1, y1, x2, y2:Integer); (x1, y1), (x2, y2) – координаты противоположных углов прямоугольника |
Чертит контур прямоугольника | |
Procedure Sector (X, Y:Integer; StartAngle, EndAngle, Rx, Ry:Word); (X, Y) – координаты центра эллипса; StartAngle, EndAngle – начальный и конечный углы дуги эллипса в градусах (0,359); Rx, Ry – полуоси эллипса в пикселях в направлениях X и Y |
Изображает закрашенный сектор эллипса, ограниченный углами от StartAngle до EndAngle. Заполняется сектор от минимального значения углов до максимального независимо от их следования | |
Procedure PieSlice (X, Y:Integer; StartAngle, EndAngle, Rx:Word); (X, Y) – координаты центра эллипса; StartAngle, EndAngle – начальный и конечный углы дуги эллипса в градусах (0,359); Rx – радиус окружности в пикселях в направлении X |
Изображает закрашенный сектор круга, ограниченный углами от StartAngle до EndAngle, радиус круга, заданный в пикселях в направлении Х, и учитывает масштаб изображения по осям. Заполняется сектор от минимального значения углов до максимального независимо от их следования | |
Procedure PutPixel (X, Y:Integer, Color:word); (X, Y) – координаты точки; Color – цвет точки |
Окрашивает точку экрана в заданный цвет | |
Вывод текстов | ||
Procedure GetTextSettings (VarTextInfo: TextSettingsType); TextInfo – запись, содержащая действующие установки вывода текста |
Определяет установки вывода текста | |
Procedure OutText (Text:String); Text – выводимая строка текста |
Выводит текст на графический экран, начиная с позиции графического указателя, которая смещается на ширину выводимого текста | |
Procedure OutTextXY (X, Y:Integer; Text: String); (X, Y) – координаты точки, к которой привязывается выводимый текст; Text – выводимая строка текста |
Выводит текст на графический экран относительно заданной точки с учетом используемого типа юстировки | |
Function InstallUserFont (FontFileName:String):Integer; FontFileName – имя файла, содержащего шрифт; Результат – номер кода (код) установленного шрифта |
Инсталлирует новый шрифт | |
Procedure RegisterBGIFont (Font:Pointer); Font – указатель на шрифт |
Регистрирует шрифты для графической системы | |
Procedure SetTextJustify (Horiz, Vert:Word); Horiz, Vert – коды привязки текста по горизонтали и вертикали |
Устанавливает тип привязки текста к точке вывода по горизонтали и вертикали | |
Procedure SetTextStyle (Font, Direction, CharSize:Word); Font – тип используемого шрифта; Direction – направление вывода надписи; CharSize – размер символов |
Устанавливает стиль выводимого текста | |
Procedure SetUserCharSize (MultX, DivX, MultY, DivY: Word); MultX, DivX, MultY, DivY – коэффициенты умножения (Mult) и деления (Div) по осям Х и Y соответственно |
Выполняет масштабирование шрифтов с произвольным дробным масштабом | |
Function TextHeight (Text:String):Integer; Text – выводимая строка текста; Результат – высота текста в пикселях |
Определяет высоту текстовой строки при заданных установках стиля | |
Function TextWidth (Text:String):Integer; Text – выводимая строка текста; Результат – длина текста в пикселях |
Определяет длину текстовой строки при заданных установках стиля | |
Копирование части экрана | ||
Procedure GetImage (x1, y1, x2, y2:Integer; Var BitMap:Pointer); (x1, y1) и (x2, y2) – координаты противоположных углов прямоугольника, ограничивающего копируемую область экрана; BitMap – указатель области памяти, отведенной для хранения данного изображения |
Копирует в ОЗУ прямоугольную область экрана | |
Function ImageSize (x1, y1, x2, y2:Integer) :Word; (x1, y1) и (x2, y2) – координаты противоположных углов прямоугольника, ограничивающего область экрана. Результат – объем информации в байтах |
Определяет размер в байтах памяти, необходимой для хранения прямоугольной области экрана | |
Procedure PulImage (x, y:Integer; Var BitMap:Pointer; BitBit:Word); (x, y) – координаты левого верхнего угла для выводимого изображения; BitMap – указатель области памяти; BitBit – код логической операции |
Выводит изображение из области памяьт ЭВМ в указанную область экрана с заданной логической операцией наложения нового изображения на старое | |
Приложение 2
Примеры графики в Турбо Паскаль
Пример 1
program kv;
uses graph,crt;
var gd, gm, x1, y1,c,a:integer;
begin
clrscr;
randomize;
gd:=0;
initgraph (gd, gm,’c:\bp\bgi’);
x1:=310; y1:=230; a:=20;
repeat;
c:=random(15);
setcolor(c);
rectangle (x1, y1, x1+a, y1-a);
x1:=x1-10; y1:=y1+10; a:=a+20;
until a>400;
readkey;
closegraph;
end.
Пример 2
program krugi;
uses graph,crt;
var gd, gm, c, i, r, x, y, n:integer;
begin
clrscr;
randomize;
writeln (‘введите количество окружностей’); readln (n);
gd:=0;
initgraph (gd, gm,’c:\bp\bgi’);
for i:=1 to n do begin
r:=random (80); x:=random (600); y:=(400);
c:=random (15); setcolor (c);
circle (x, y, r);
setfillstyle (1, c); floodfill (x, y, c);
end;
readkey;
closegraph;
end.
Пример 3
program zvezda;
uses graph,crt;
var gd, gm:integer;
begin
clrscr;
gd:=0;
initgraph (gd, gm,’c:\bp\bgi’);
setcolor (15); line (190, 190, 210, 210);
setcolor (15); line (210, 190, 190, 210);
setcolor (15); line (200, 100, 200, 200);
setcolor (15); line (200, 100, 190, 190);
setcolor (15); line (200, 100, 210, 190);
setcolor (15); line (160, 160, 180, 190);
setcolor (15); line (160, 160, 190, 180);
setcolor (15); line (210, 190, 240, 160);
setcolor (15); line (240, 160, 210, 180);
setcolor (15); line (160, 240, 190, 220);
setcolor (15); line (210, 210, 240, 240);
setcolor (15); line (240, 240, 210, 220);
setcolor (15); line (240, 240, 220, 210);
readkey;
closegraph;
end.
Пример 4
Program cvetok ;
uses graph,crt;
var gd, gm:integer;
begin
clrscr;
gd:=0;
initgraph (gd, gm,’c:\bp\bgi’);
setcolor (4);
ellipse (100, 30, 0, 180, 25, 20);
ellipse (100, 70, 180, 0, 25, 20);
ellipse (75, 50, 90, 270, 25, 20);
ellipse (125, 50, 270, 90, 25, 20);
setfillstyle (1, 4);
floodfill (100, 70, 0);
setcolor (14);
setfillstyle (1, 14);
circle (100, 50, 15);
floodfill (100, 50,14);
readkey;
closegraph;
end.
Пример 5
Program robot ;
uses graph,crt;
var gd, gm:integer;
begin
clrscr;
gd:=0;
initgraph (gd, gm,’c:\bp\bgi’);
setfillstyle (1, 11); bar (200, 40, 300, 180);
setfillstyle (1, 11); bar (180, 70, 200, 140);
setfillstyle (1, 11); bar (300, 80, 320,140);
setfillstyle (1, 11); bar (220, 60, 240, 80);
setfillstyle (1, 11); bar (260, 60, 280, 80);
setfillstyle (1, 11); bar (240, 100, 160, 120);
setfillstyle (1, 11); bar (200, 140, 280, 160);
setfillstyle (1, 11); bar (220, 180, 280, 200);
setfillstyle (1, 11); bar (200, 200, 300, 340);
setfillstyle (1, 11); bar (140, 200, 220, 240);
setfillstyle (1, 11); bar (200, 340, 240, 380);
readkey;
closegraph;
end.
Program snegovik;
uses graph,crt;
var gd, gm:integer;
begin
clrscr;
gd:=0;
initgraph (gd, gm,’c:\bp\bgi’);
setcolor (11); setfillstyle (1, 11); circle(260, 120, 40); floodfill (260,120, 11);
setcolor (11); setfillstyle (1, 11); circle(260, 220, 60); floodfill (260,220, 11);
setcolor (11); setfillstyle (1, 11); circle(260, 360, 80); floodfill (260,300, 11);
setcolor (11); setfillstyle (1, 11); circle(200, 170, 20); floodfill (200,170, 11);
setcolor (11); setfillstyle (1, 11); circle(320, 170, 20); floodfill (320,170, 11);
setcolor (11); setfillstyle (1, 11); circle(200, 440, 20); floodfill (200,440, 11);
setcolor (11); setfillstyle (1, 11); circle(260, 120, 10); floodfill (260,120, 4);
setcolor (11); setfillstyle (1, 11); circle(245, 100, 10); floodfill (245,100, 0);
setcolor (11); setfillstyle (1, 11); circle(275, 100, 10); floodfill (275,100, 0);
readkey;
closegraph;
end.
Список использованной литературы: