Иллюстрированный самоучитель по Turbo Pascal для начинающих

Решения (задачи 198-216)

Задача 213

{ Выводит на экран паровоз } uses Graph;
grDriver: Integer; grMode: Integer; ErrCode: Integer; res: integer;
,уО: integer; { координаты базовой точки паровоза } dx,dy: integer;
{ шаг координатной сетки } tr: array[1..15] of PointType; { координаты точек контура паровоза }
begin
grDriver: = detect;
InitGraph(grDriver, grMode,'e:\tp\bgi');
ErrCode: = GraphResult;
if ErrCode = grOk then
begin
x0: = 100; y0: = 100;
dx: = 5; dy: = 5;
{ корпус }
tr[l].y: = yO+7*dy; tr[2].y: = yO+6*dy; tr[3].y: = yO+6*dy; tr[4].y: = yO+3*dy;
tr[5].y: = yO+3*dy; tr[6].y: = yO+O*dy; tr[7]".y: = y0+0*dy; fcr[8].y: = yO+3*dy;
tr[9].y: = yO+3*dy; tr[10].y: = yO+l*dy;.y: = yO+l*dy;
tr[1].x: = xO+O*dx;
tr[2].x: = xO+O*dx;
tr[3].x: = xO+l*dx;
tr[4J.x: = xO+l*dx;
tr[5].x: = xO+2*dx;
tr[6].x: = xO+2*dx;
tr[7].x: = xO+3*dx;
tr[8].x: = xO+3*dx;
tr[9].x: = xO+7*dx;
tr[10].x: = xO+7*dx;
tr[ll].x: = xO+13*dx;
tr[12].x: = xO+13*dx; tr[12].y: = yO+2*dy;
tr[13].x: = xO+12*dx; tr[13].y: = yO+2*dy;
tr[14].x: = xO+12*dx; tr[14].y: = yO+7*dy;
tr[15].x: = xO+O*dx; tr[15].y: = yO+7*dy;
DrawPoly(15,tr);
{ окно)
Rectangle(xO+8*dx,yO+2*dy,x0+10*dx,yO+4*dy),
{ колеса)
SetFillStyle(SolidFill,Red);
SetColor(Red);
PieSlice(xO+3*dx,yO+7*dy, 0.360,l*dx);
PieSlice(xO+6*dx, yO+7*dy,0.360,l*dx);
PieSlice(xO+9*dx,yO+7*dy,0.360,l*dx);
{ окантовка колес }
SetColor(White);
Circle(xO+3*dx,yO+7*dy,l*dx), Circle(xO+6*dx,yO+7*dy,l*dx), Circle(xO+9*dx,yO+7*dy,l*dx),
readln; end;
CloseGraph;
end.

Задача 215

{ Координатные оси и оцифрованная сетка } program grid; uses Graph;
var
xO,yO:integer; { координаты начала координатных осей }
dx,dy:integer; { шаг координатной сетки (в пикселах))
h,w:integer; { высота и ширина области вывода координатной
сетки > х,у:integer;
lx,ly:real; (метки (оцифровка) линий сетки по X Y }
dlx, dly:real; { шаг меток (оцифровки) линий сетки по X и Y }
st:string; { изображение метки линии сетки }
grDriver: Integer; grMode: Integer; ErrCode: Integer;
begin
grDriver: = VGA;
grMode: = VGAHi;
InitGraph(grDriver, grMode,'e:\tp\bgi');
ErrCode: = GraphResult;
if ErrCode <> grOk then HALT(1);x0: = 50; yO: = 45O;
(оси начинаются в точке (40.450) } dx: = 40;
dy: = 40; (шаг координатной сетки 40 пикселей }
dlx: = 0.5; { шаг меток оси X, метками будут: = l;
шаг меток оси Y, метками будут: 1, 2, и т.д. }
h: =300;
w: =400;
lx: = 0;
iy: = 0;
{ начало координат помечается метками 0)Line(x0,y0,x0,y0-h);
{ ось X } Line(x0,y0,x0+w,y0); { ось Y }
{ засечки, сетка и оцифровка по оси X }
х: = х0;
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.