
Процедуры и функции
Имя |
Назначение |
Процедуры управления графическим режимом
|
|
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 |
Функции управления цветом и палитрой
|
|
|
Возвращает номер текущего цвета в палитре |
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-радиус |
|
Рисует дугу эллипса текущим цветом. Текущий цвет задается процедурой 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.