Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Turbo Pascal / Учебники / Учебник по Паскалю.doc
Скачиваний:
60
Добавлен:
15.06.2014
Размер:
633.34 Кб
Скачать

Процедуры и функции

Имя

Назначение

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

CloseGraph;

Завершает работу в графическом режиме и осуществляет переход в текстовый режим.

DetectGraph(var GraphDriver,GraphMode:integer);

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

GraphDriver-переменнаяБв которую процедура помещает код трубуемого драйвера,

GraphMode-переменная,в которую процедура помещает код графического режима.

GetModeRange(GraphDriver:integer;var LoMode,HiMode:integer);

Возвращает минимальный и максимальный номера графических режимов драйвера.

Если значение Graphdriver задано неверно, то параметры Lomode,HiMode устанавливаются равными -1.

GraphDriver-код драйвера

LoMode-переменная,куда записывается минимальный номер режима

HiMode-переменная,куда записывается максимальный номер режима

GraphDefaults;

Сбрасывает заданные пользователем параметры графического режима и устанавливает исходные

InitGraph(var GraphDriver:integer;var GraphMode:integer;DriverPath:string);

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

GraphDriver-переменная,в которую необходимо записать код трубуемого графического драйвера или нуль, если требуется автоматическоге определение драйвера.

GraphMode-переменная,в которую процедура помещает код графического режима

Driverpath-строка,содержащая путь к драйверу( если строка пустая, то считается,что драйвер находится в текущем каталоге).

RestoreCrtMode;

Осуществляет переход из графического режима в текстовый.

SetGraphMode( Mode:integer);

Задает графический режим, устанавливает исходные значения текущего указателя, палитры, цвета и т.д.,

очищает экран.

Mode- графический режим

SetGraphBufSise( bufsize:word);

Изменяет размер буфера сканирования и заполнения фигур ( по умолчанию размер буфера равен 4 кб).

Процедуру следует использовать только до обращения к InitGraph.

Функции управления графическим режимом

GetGraphMode:integer;

Возвращает номер текущего графического режима.

Пр именяется только в графическом режиме.

GetMaxmode:word;

Возвращает число режимов текущего драйвера.

Применяется в графическом режиме.

GetModeName( modenumber:word):string;

Возвращает строку с именем заданного графического режима

Modename-номер графического режима

GraphErrorMsg( errorcode:integer):string;

Возвращает сообщение об ошибке для заданного кода ошибки

Graphresult:integer;

Возвращает код ошибки последней графической операции и сбрасывает его в 0

GetDriverName:string;

Возвращает строку, содержащую имя текущего драйвера. Применяется только в графическом режиме.

InstallUserDriver(name:string;autodetectptr:pointer):word;

Размещает драйвер в таблице BGI-драйверов ( функция принимает значение внутреннего номера драйвера).

Name- имя файла с драйвером

autodetectptr- указатель на функцию автоматического распознавания драйвера ( nil- такой функции нет)

InstallUserFont( fontfilename:string):integer;

Устанавливает новый шрифт, не встроенный в систему BGI ( функция принимает значения внутреннего номера шрифта). Шрифт следует зарегистрировать до обращения к InitGraph;

FontFileName-имя файла с шрифтом

RegisterBGIDriver(driver:pointer):integer;

Регистрирует загруженный в память BGI- драйвер для последующего использования драйвера в графическом режиме

Driver- адрес драйвера в памяти.

RegisterBGIFont(Font:pointer);

Региструет загруженный в память шрифт для последующего использования его в графическом режиме.

Font-адрес шрифта в памяти.

Процедуры управления экраном,окном,станцией

ClearDevice;

Очищает графический экран, закрашивает его в цвет фона, устанавливает указатель текущей позиции в точку с координатами (0,0)

Цвет фона задается процедурой SetBkcolor

ClearViewPort;

Очищает выделенное окно графического экрана,закрашивает его в цвет фона,устанавливает указатель текущей позиции в левый верхний угол окна с координатами (0,0)

GetAspectRatio(var Xasp,Yasp:word);

Возвращает число точек (пикселей) на графическом экране по горизонтали и вертикали.

Xasp,Yasp- переменные, в которые процедура записывает число точек по горизонтали и вертикали.

GetViewSetting( var viewport:viewporttype);

Возвращает параметры текущего окна.

ViewPort-переменная типа Viewporttype, в которую процедура помещает параметры окна

SetActivePage(Page:word);

Устанавливает номер активной страницы( страницы, в которую можно записывать информацию).

Page- номер страницы( нумерация начинается с нуля).

SetAspectRatio(Xasp,Yasp:word);

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

Xasp,Yasp- задаваемые масштабы по горизонтали и вертикали

SetViewPort(X1,Y1,X2,Y2:integer; clip: boolean);

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

Х1,Y1- координаты левого верхнего угла окна;

X2,Y2- координаты правого нижнего угла окна ( 0 <=X1<X2 , 0<=Y1<Y2);

Clip- ограничитель фигур. Если clip=true, то

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

SetVisualPage(Page:word);

Устанавливает номер отображаемой на экране страницы

Page- номер страницы( с нуля)

Процедуры управления цветом и палитрой

GetDefaultPalette (var pal:palettetype);

Возвращает параметры исходной палитры, заданной во время выполнения процедуры InitGraph.

pal- переменная , в которую процедура записывает параметры палитры

GetPalette(var Palette:palettetype);

Возвращает текущую палитру и количество цветов в ней.

Palette-переменная , в которую процедура записывает параметры палитры

SetAllPalette(var Palette);

Меняет все цвета палитры на заданные.

Palette- переменная без типа, в первом байте-

N- количество цветов в палитре,в последующих N байтах-коды цветов( -1..15)

SetColor(color:word);

Устанавливает текущий цвет,которым будут изображаться контуры фигур и тексты.

SetBkColor(color:word);

Устанавливает цвет фона на экране

color-устанавливаемый цвет

SetPalette(colornum:word;color:shortint);

Меняет цвет одной компоненты в палитре

colornum-номер компоненты в палитре,

color- задаваемый цвет

SetRGBPalette(colornum,redvalue,greenvalue,bluevalue:integer);

Задает цвет в в палитре для драйверов IBM-8514,VGA

Функции управления цветом и палитрой

GetBKColor:word;

Возвращает номер текущего цвета в палитре

GetColor:word;

Возвращает номер цвета в палитре, заданного последней процедурой Setcolor;

GetMaxColor:word;

Возвращает максимальный номер цвета палитры.

GetPaletteSize:word;

Возвращает количество цветов палитры.

Функции работы с точками

GetMaxX:integer;

Возвращает максимальную координату Х для текущего драйвера в текущем режиме

GetMaxY:integer;

Возвращает максимальную координату Y для текущего драйвера в текущем режиме

GetPixel(X,Y:integer):word;

Возвращает цвет пикселя с заданными координатами

GetX:integer;

Возвращает координату Х текущей позиции на экране относительно установленного графического окна

GetY:integer;

Возвращает координату Y текущей позиции на экране относительно установленного графического окна.

Процедуры работы с точками

PutPixel( X,Y:integer;pixel:word);

Закрашивает пиксель с заданными координатами в цвет pixel

x,y-координаты пикселя;

Процедуры работы с линиями

GetLineSettings(var lineinfo:linesettingtypy);

Возвращает текущие параметры линии(стиль,

шаблон,толщину).

Lineinfo- переменная, в которую записываются текущие параметры линии

Line(x1,y1,x2,y2:integer);

Проводит линию текущего цвета между точками с координатами (x1,y1) и (x2,y2) .

Текущий цвет задается процедурой Setcolor,

текущие параметры линии-процедурой Setlinestyle, а режим построения линии-процедурой Setwritemode.

X1,y1,x2,y2-координаты точек, между которыми проводится линия.

LineRel( dx,dy:integer);

Проводит линию текущего цвета из текущей позиции в точку, сдвинутую относительно исходной позиции на величины dx,dy.

Текущий цвет задается процедурой setcolor,

текущие параметры линии-процедурой setlinestyle, а режим построения линии- setwritemode.

Dx,dy- смещение координат точки конца линии по отношению к исходным координатам.

LineTo(x,y:integer);

Проводит линию текущего цвета из текущей позиции в точку с заданными координатами.

Текущий цвет задается процедурой setcolor, текущие параметры- setlinestyle, режим построения линии-setwritemode.

MoveRel(dx,dy:integer);

Перемещает указатель координат на заданное расстояние(dx,dy) по отношению к его предыдущему положению( точка на экране не высвечивается)

dx,dy:смещение текущего указателя относительно его старого положения

MoveTo(x,y:integer);

Перемещает текущий указатель координат в точку окна с координатами (x,y)

SetLineStyle(linestyle:word;pattern:word;thickness:word);

Задает текущие параметры линии ( стиль,шаблон,толщину)

шаблон задается , если стиль линии задается пользователем, иначе-0)

SetWriteMode(writemode:integer);

Устанавливает режим построения линии для процедур (0- рисуемая линия выводится,

1-рисуемая линия накладывается на экран)

Процедуры построения фигур из линий

Bar(x1,y1,x2,y2:integer);

Строит прмоугольник, закрашенный текущим орнаментом и цветом заполнения.Орнамент и цвет заполнения задаются процедурой setfillstyle или setfillpattern.

X1,y1,x2,y2- координаты левого верхнего и правого нижнего углов прямоугольника

Bar3D(x1,y1,x2,y2:integer;depth:word; top:boolean);

Строит параллелепипед, закрашенный текущим орнаментом и цветом заполнения.

Орнамент и цвет заполнения задаются процедурой setfillstyle или setfillpattern .

x1,y1,x2,y2- координаты левого верхнего и правого нижнего углов передней грани.

Depth-ширина боковой грани

top - признак включения верхней грани :true-

грань вычерчивается)

DrawPoly(numpoints:word;var polypoints);

Строит контур многоугольника линией с заданными параметрами и цветом.

ТТекущий цвет задается процедурой setcolor,

текущие параметры линии- процедурой - setlinestyle, а режим построения линии-setwritemode.

Numpoints-число вершин многоугольника

polypoints- переменная без типа, содержащая numpoint+1 пар координат вершин многоугольника ( координаты должны быть целого типа, перечисляться в той же последовательности, как они идут по контуру, причем первая вершина должна быть повторена и в конце перечисления).

FillPoly(numpoint:word;var polypoints);

Строит многоугольник,закрашенный текущим орнаментом и цветом заполнения. Орнамент и цвет заполнения задаются процедурой setfillstyle или setfillpattern.

Режим построения линии-процедурой setwritemode, текущие параметры линии-setlinestyle.

Numpoints-число вершин многоугольника,

polypoints-переменная бещз типа,содержащая

numpoint+1 пар координат вершин многоугольника ( координаты должны быть целого типа, перечисляться в той же последовательности, как они идут по контуру, причем первая вершина должна быть повторена и в конце перечисления

FloodFill(x,y:integer;border:word);

Закрашивает область,ограниченную непрерывной линией,текущим орнаментом и цветом заполнения: орнамент задается процедурой setfillstyle или setfillpattern.

X,y- координаты любой точки внутри закрашиваемой линии.

Border-цвет, до которого производится закрашивание.

GetFillPattern( var fillpattern:fillpatterntype);

Возвращает установленный пользователем с помощью процедуры setfillpattern орнамент заполнения

fillpattern- переменная,в которую процедура записывает установленный орнамент

GetFillSettings( var fillinfo:fillsettingstype);

Возвращает текущие орнамент и цвет,установленные процедурами setfillpattern,setfillstyle.

Fillinfo-переменная , в которую процедура записывает текущие орнамент и цвет

Rectangle(x1,y1,x2,y2:integer);

Строит контур прямоугольника текущим цветом.Цвет задается процедурой setcolor,

а режим построения линии-setwritemode.

X1,y1-координаты левого верхнего угла прямоугольника

x2,y2-координаты нижнего правого угла прямоугольника

SetFillPattern(pattern:fillpatterntype;color:word);

Задает произвольный орнамент, а также цвет для заполнения фигур

pattern-задаваемый пользователем орнамент

color-цвет заполнения фигур

SetFillStyle(pattern:word;color:word);

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

pattern-задаваемый стандартный номер орнамента

color-цвет заполнения фигур

Процедуры построения криволинейных фигур

Arc(x,y:integer;stangle,endangle,radius:word);

Строит дугу окружности текущим цветом с учетом масштабов по осям. Текущий цвет задается процедурой setcolor, текущие параметры -setlinestyle. Изменение относительных масштабов изображения по вертикали и горизонтали осуществляется процедурой setaspectratio.

X,y-координаты центра дуги.

Stangle- угол до начальной точки дуги, отсчитываемый против часовой стрелки от горизонтальной оси, направленный слева направо,

endangle- угол до конечной точки дуги, отсчитываемый против часовой стрелки от горизонтальной оси, направленный слева направо,

radius-радиус дуги.

Circle(x,y:integer;radius:word);

Строит окружность текущим цветом с учетом масштабов по осям. Текущий цвет задается процедурой setcolor, текущие параметры линии-setlinestyle.

x.y-координаты центра окружности,

radius-радиус

Ellipse(x,y:integer;stangle,endangle:word;xradius,yradius:word);

Рисует дугу эллипса текущим цветом. Текущий цвет задается процедурой setcolor,текущие параметры линии- процедурой setlinestyle.Изменение относительных масштабов изображения по вертикали и горизонтали осуществляется процедурой setaspectratio.

X,y-координаты центра эллипса

stangle- угол до начальной точки эллипса,отсчитываемый против часовой стрелки от горизонтальной оси эллипса, направленной слева направо.

Endangle-угол до начальной точки эллипса,отсчитываемый против часовой стрелки от горизонтальной оси эллипса, направленной слева направо.

FillEllipse(x,y:integer;xradius,yradius:word);

Строит эллипс,закрашенный текущим орнаментом и цветом заполнения. Орнамент и цвет заполнения задаются процедурой setfillstyle или setfillpattern. Текущий цвет контура задается процедурой setcolor, текущие параметры линии- процедурой setlinestyle.

X,y-координаты центра эллипса

xradius,yradius-горизонтальная и вертикальная полуоси эллипса.

GetArcCoords(var arccoord:arccoordtype);

Возвращает параметры дуги или эллипса, построенных при последнем обращении к процедуре arc или ellipse.

Применяется только в графическом режиме.

Arccoord- переменная , в которую помещаются параметры дуги или эллипса.

PieSlice(x,y:integer;stangle,endangle,radius:word);

Строит сектор круга,закрашенный текущим орнаментом и цветом заполнения с учетом масштабов по осям, Орнамент и цвет заполнения задаются процедурой setfillstyle или setfillpattern. Текущий цвет контура задается процедурой setcolor, текущие параметры линии- процедурой setlinestyle.

Изменение относительных масштабов изображения-setaspectratio.

X,y- координаты центра сектора круга

stangle- начальный угол сектора, отсчитываемый против часовой стрелки от горизонтальной оси , направленной вправо.

Endangle- конечный угол сектора, отсчитываемый против часовой стрелки от горизонтальной оси , направленной вправо

radius-радиус сектора.

Sector(x,y:integer;stangle,endangle,xradius,yradius:word);

Строит сектор эллипса,закрашенный текущим орнаментом и цветом заполнения с учетом масштабов по осям, Орнамент и цвет заполнения задаются процедурой setfillstyle или setfillpattern. Текущий цвет контура задается процедурой setcolor, текущие параметры линии- процедурой setlinestyle.

Изменение относительных масштабов изображения-setaspectratio.

X,y- координаты центра сектора эллипса

stangle- начальный угол эллипса, отсчитываемый против часовой стрелки от горизонтальной оси , направленной вправо.

Endangle- конечный угол эллипса, отсчитываемый против часовой стрелки от горизонтальной оси , направленной вправо

xradius,yradius-горизонтальная и вертикальная

полуоси эллипса

Процедуры работы с текстом

GetTextSetting( var textinfo:textsettingtype);

Возвращает текущие параметры шрифта( тип, направление,размер,выравнивание), установленные процедурами settextstyle и settextjustify.

Textinfo- переменная , в которую процедура записывает параметры

OutText(textstring:string);

Выводит на экран последовательность символов, начиная с текущей позиции.

Текущая позиция изменяется только если текст выводится горизонтально с левым выравниванием. Если текст не помещается в графическое окно,он либо вообще не высвечивается( “ грубый” шрифт,принятый по умолчанию), либо высвечивается частично(“ гладкий” шрифт). Текущий цвет текста задается процедурой setcolor.

Параметры шрифта- процедурами settextstyle,

settextjustify. Коэффициенты увеличения ширины и высоты штриховых шрифтов можно задать процедурой setusercharsize/

Ширину и высоту строки определяют с помощью функций textwidth,textheight/

textstring- выводимый текст.

OutTextXY(x,y:integer;textstring:string);

Выводит на экран последовательность символов, начиная с заданных координат x,y.

Текущая позиция после выполнения поцедуры не изменяется.Если выводимый ткст не помещается в графическое окно, он либо вообще не высвечивается( в случае “ грубого” шрифта, принятого по умолчанию), либо высвечивается частично( в случае “гладких” шрифтов).Параметры текста задаются так же, как и для процедуры outtext.

X,y-исходные координаты,

textstring- выводимый текс.

SetTextJustify(horiz,vert:word);

Устаавливает способ выравнивания для вывода текста с использованием процедур outtext,outtextxy.

Horiz,vert-параметры выравнивания по горизонтали и вертикали.

SetTextStyle(font:word;direction:word;charsize:word);

Устанавливает текущие тип шрифта, направление текста и размер символов.

Font-тип шрифта

direction-направление текста

charsize-размар символов.

SetUserCharSize(multx,divx,multy,divy:word);

Задает кoэффициенты увеличения ширины и высоты штриховых шрифтов.

Multx:divx-коэффициент увеличения ширины символов

multy:divy- коэффициент увеличения высоты символов.

Функции работы с текстом

TextHeight(textstring:string):word;

Возвращает высоту строки в пикселях

textstring-исходная строка

TextWidth(textstring::string):word;

Возвращает длину строки в пикселях.

Textstring-исходная строка

Процедуры обмена с памятью

GetImage( x1,y1,x2,y2:integer;var bitmap);

Сохраняет изображение заданного участка экрана в буфере.

X1,y1,x2,y2- координаты левого верхнего и

правого нижнего углов сохраняемого участка экрана.

Bitmap- переменная , являющаяся буфером для сохранения информации.

PutImage(x,y:integer; vae bitmap;bitblt:word);

Выдает на экран образ изображения,записанный в буфере

x,y-координаты левого верхнего угла прямоугольного участка экрана.

Bitmap-переменная.,являющаяся буфером информации

bitbit-параметр, указывающий способ объединения передаваемой на экран информации с уже уже имеющейся там

Функции обмена с памятью

ImageSize(x1,y1,x2,y2:integer):word;

Возвращает количество байтов,необходимое для размещения в памяти прямоугольной области экрана

x1,y1,x2,y2- координаты верхнего левого и правого нижнего угла области.

Примеры использования модуля Graph.

Вращающийся кубик

program demo6;

uses graph,crt;

label

1;

const

x : array [1..8] of integer = (10,70,70,10,10,70,70,10);

y : array [1..8] of integer = (-30,-30,30,30,-30,-30,30,30);

z : array [1..8] of integer = (-30,-30,-30,-30,30,30,30,30);

var

i,j,gt,gm,ky : integer;

d1 : real;

rk : char;

xr,yr,xn1,zn1,xn2,zn2 : array [1..8] of integer;

dx,dz : array [0..359,1..8] of integer;

out : text;

procedure RealCoords;

begin

for i:=1 to 8 do begin

xr[i]:=trunc(x[i]*((z[i]+192)/d1)+320);

yr[i]:=trunc(240-y[i]*(abs(z[i]+192)/d1));

end;

end;

procedure DrawCube(col : integer);

begin

SetColor(col);

if col<>0 then SetColor(2);

Line(xr[1],yr[1],xr[2],yr[2]);

Line(xr[2],yr[2],xr[3],yr[3]);

Line(xr[3],yr[3],xr[4],yr[4]);

Line(xr[1],yr[1],xr[4],yr[4]);

SetColor(col);

Line(xr[1],yr[1],xr[5],yr[5]);

if col<>0 then SetColor(3);

Line(xr[2],yr[2],xr[6],yr[6]);

if col<>0 then SetColor(5);

Line(xr[3],yr[3],xr[7],yr[7]);

if col<>0 then SetColor(1);

Line(xr[4],yr[4],xr[8],yr[8]);

if col<>0 then SetColor(4);

Line(xr[5],yr[5],xr[6],yr[6]);

Line(xr[6],yr[6],xr[7],yr[7]);

Line(xr[7],yr[7],xr[8],yr[8]);

Line(xr[5],yr[5],xr[8],yr[8]);

end;

procedure Turn(k : integer);

begin

for i:=1 to 8 do begin

x[i]:=x[i]+dx[k,i];

z[i]:=z[i]+dz[k,i];

end;

end;

begin

gt:=detect;

initgraph(gt,gm,'c:\turbo\bgi');

d1:=150;

assign(out,'data');

rewrite(out);

for i:=1 to 8 do begin

xn1[i]:=x[i]; zn1[i]:=z[i];

end;

for ky:=0 to 359 do begin

for i:=1 to 8 do begin

xn2[i]:=trunc(x[i]*cos(ky*pi/180)+z[i]*sin(ky*pi/180));

zn2[i]:=trunc(-x[i]*sin(ky*pi/180)+z[i]*cos(ky*pi/180));

dx[ky,i]:=xn2[i]-xn1[i];

dz[ky,i]:=zn2[i]-zn1[i];

xn1[i]:=xn2[i]; zn1[i]:=zn2[i];

end;

end;

ky:=0;

repeat

writeln(out,ky);

Turn(ky);

DrawCube(0);

RealCoords;

DrawCube(15);

ky:=ky+1;

if ky>359 then ky:=0;

delay(10);

until keypressed;

close(out);

1:

rk:=readkey;

ClearDevice;

setcolor(15);

delay(2000);

closegraph;

end.

Дом, который построил Джек.

program s1;

uses graph;

var gd,gm,x,y,s:integer;

begin

gd:=0;

initgraph(gd,gm,'d:\bp\bgi ');

setbkcolor(1);

setcolor(6);

setlinestyle(0,s,3);

x:=getmaxx div 2; y:=getmaxy div 2;

setfillstyle(1,14);

bar(x-100,y-80,x+100,y+80);

setfillstyle(1,6);

pieslice(x,y,0,360,40);

moveto(x-100,y-80);

lineto(x,y-210);

lineto(x+100,y-80);

lineto(x-100,y-80);

setfillstyle(1,14);

floodfill(x,y-100,6);

outtextxy(x-100,y+120,'ДОМ,КОТОРЫЙ ПОСТРОИЛ ДЖЕК');

readln;

closegraph;

end.

Диаграммы ( круговые, столбиковые , Объемные)

program oly;

uses graph;

var x,y,x1,y1,x2,y2,gm,gr:integer;

r,color:word;

begin

r:=80;x:=380;y:=110;

initgraph(gr,gm,'d:\bp\bgi');

setfillstyle(3,2);

bar(70,270,110,360);

bar3d(400,240,440,360,20,true);

pieslice(x,y,20,80,r);

setfillstyle(6,14);

bar(110,280,150,360);

bar3d(440,280,480,360,20,true);

pieslice(x,y,80,110,r);

setfillstyle(7,6);

bar(150,200,190,360);

bar3d(480,200,520,360,20,true);

pieslice(x,y,110,180,r);

setfillstyle(10,5

);

bar(190,120,230,360);

bar3d(520,120,560,360,20,true);

pieslice(x,y,180,270,r);

settextstyle(0,1,1);

outtextxy(90,300,'13%');

outtextxy(130,310,'7%');

outtextxy(170,230,'20%');

outtextxy(210,150,'37%');

outtextxy(420,400,'13%');

outtextxy(460,400,'7%');

outtextxy(500,400,'20%');

outtextxy(500,400,'37%');

settextstyle(0,0,0);

outtextxy(440,40,'13%');

outtextxy(350,20,'7%');

outtextxy(240,80,'20%');

outtextxy(330,210,'37%');

readln;

closegraph;

end.

Паук

Program PAUCK; {!!!!!}

Uses graph,crt;

var

gd,gm:integer;

p :pointer;

size :word;

i :integer;

begin

gd:=detect;

initgraph(gd,gm,'d:\bp\bgi');

if graphresult<>grOK then

halt(1);

{--------------------}

bar(75,190,80,200 });{™г

bar(100,190,105,200);{ Ї  }

bar(60,180,75,190 );{ “м }

bar(105,180,120,190);{ жл !!!!!!!!!!!!}

bar(80,200,100,300) ;{ѓ®“®ў  }

bar(70,210,110,290) ;{‡ ¤ }

bar(60,220,120,280) ;{’Ґ“® }

bar(40,240,140,260) ;{ђгЄЁ }

bar(40,200,60,220) ;{Ќ }

bar(40,280,60,300) ;{ Ћ }

bar(20,200,40,180) ;{ ѓ }

bar(20,300,40,320) ;{ ˆ (‹…‚›…). }

bar(140,200,160,180);{Ќ }

bar(120,200,140,220);{ Ћ }

bar(120,280,140,300);{ ѓ }

bar(140,300,160,320);{ ˆ (ЏђЂ‚›…). }

{---------------------------------------------}

size:=imagesize(0,0,170,330);

getmem(p,size);

getimage(0,0,170,330,p^);

readkey;

cleardevice;

for i:=180 downto 0 do

putimage(0,i,p^,normalput);

closegraph;

end.

Желтое солнце черной пустыни

program oly;

uses graph,crt;

var x,y,gd,gm:integer;

procedure r(a,b:integer);

var i:integer;

begin

for i:=1 to 30

do begin

circle(a,b,i);

delay(200);

end;

end;

begin

gd:=1;

initgraph(gd,gm,'e:\tp\bgi');

setbkcolor(0);

setcolor(3);

x:=150;y:=70;

repeat r(x,y);

x:=x+3;y:=y+3;

delay(200);

cleardevice;

until keypressed;

closegraph;

readln;

end.

В пособии использованы программы, разработанные слушателями курсов по программированию в среде Turbo Pascal 7.0 и студентами УГХТУ.

Материал собрал и подготовил преп. Бондик И.Г.

Литература:

1.А.Епанешников,В.Епанешников. Программирование в среде TURBO PASCAL 7.0.

-М:Диалог-МИФИ,1993.

2.Д.В.Офицеров,В.А.Старых.Программирование в интегрированной среде Турбо Паскаль.

-Минск,”Беларусь”,1992.

3.Н.И.Вьюкова,В.Г.Галатенко,А.Б.Ходулаев.Систематический подход к программированию.

-М:Наука,1988.

4.Г.Л.Семашко,А.И.Салтыков.Программирование на языке Паскаль.-М:Наука.1988.

5.Н.Д.Васюкова,В.В.Тюляева.Практикум по основам программирования,язык Паскаль.

-М:Высшая школа,1991.

6.Г.Джонстон.Учитесь программировать.Пер.с англ.:-М.Финансы и статистика,1989

7.Дж.Ульман.Базы данных на паскале.Пер.с.англ.:-М.Машиностроение.1990

8.В.Н.Пильщиков.Сборник упражнений по языку Паскаль.-М:Главная ред.физ-мат.лит.,1989.

9.С.А.Абрамов,Г.Г.Гнездилова,Е.Н.Капустина,М.И.Селюн.Задачи по программированию.

-М.:Наука,1988.

70

Соседние файлы в папке Учебники