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

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

Задача 198

{ Рисует кораблик с использованием метода базовой точки }
uses Graph;
const
{ шаг сетки }
dx=5; { по X}
dy=5; (по Y}
grDriver:integer; { драйвер }
grMode:integer; { графический режим }
grPath:string; { место расположения драйвера }
ErrCode:integer; { результат инициализации граф. режима }
х,у:integer; (координаты базовой точки кораблика
begin
grDriver: = VGA; grMode: = VGAHi; grPath: = 'e:\tp\bgi'
режим VGA}
разрешение 640x480}
драйвер, файл EGAVGA.BGI, находится в каталоге d:\tp\bgi }
InitGraph(grDriver, grMode,grPath);
ErrCode: = GraphResult;
if ErrCode <> grOk then HALT(l);
x: = 10;
y: = 200;
{ корпус }
MoveTo(x,y);
LineTo(x,y-2*dy);
LineTo(x+10*dx,y-2*dy);
LineTo(x+ll*dx,y-3*dy);
LineTo(x+17*dx,y-3*dy);
LineTo(x+14*dx,y);
LineTo(x,y);
{ надстройка }
MoveTo(x+3*dx,y-2*dy);
LineTo(x+4*dx,y-3*dy);
LineTo(x+4*dx,y-4*dy);
LineTo(x+13*dx,y-4*dy);
LineTo(x+13*dx,y-3*dy);
Line(x+5*dx,y-3*dy,x+9*dx,y-3*dy);
{ капитанский мостик }
Rectangle(x+8*dx,y-4*dy,x+ll*dx,y-5*dy);
{ труба }
Rectangle(x+7*dx,y-4*dy,x+8*dx,y-7*dy);
{ иллюминаторы }
Circle(x+12*dx,y-2*dy,Trunc(dx/2));
Circle(x+14*dx,y-2*dy,Trunc(dx/2));
(мачта }
Line(x+10*dx,y-5*dy,x+10*dx,y-10*dy);
{ оснастка }
MoveTo(x+17*dx,y-3*dy);
LineTo(x+10*dx,y-10*dy);
LineTo(x,y-2*dy);
154
dln; CloseGraph;
end.

Задача 199

{ Выводит узор из 100 произвольно размещенных окружностей произвольного радиуса и цвета }
Uses Graph; var
grDriver:integer; grMode:integer; grPath:string; ErrCode:integer;
x,y,r: integer; { координаты центра и радиус окружности } i: integer; begin
grDriver: = VGA; grMode: = VGAHi; grPath: = 'e:\tp\bgi';
InitGraph (grDriver,grMode,grPath); ErrCode: = GraphResult; if ErrCode <> grOK then begin
writeln ('Ошибка инициализации графического режима.1);
writeln ('Для завершения работы нажмите Enter'); readln;
HALT (1); end;
Randomize; for i: = l to 100 do begin
x: = Random(64 0); y: = Random(480); r: = Random(240);
Setcolor(Random(16)); Circle(x,y,r); end;
readln; end.

Задача 200

{ Выводит узор из 200 случайно размещенных линий разного цвета }
Uses Graph; var
grDriver:integer; grMode:integer; grPath:string; ErrCode:integer;
x,y: integer; { координаты конца линии } i: integer; begin
grDriver: = VGA; grMode: = VGAHi; grPath: = 'e:\tp\bgi';
InitGraph (grDriver,grMode,grPath); ErrCode: = GraphResult; if ErrCode <> grOK then begin
writeln ('Ошибка инициализации графического режима.');
writeln ('Для завершения работы нажмите Enter');
readln;
HALT (1); end;Randomize; for i: = l to 200 do begin
x: = Random(640); y: = Random(480); Setcolor(Random(16));
LineTo(x,y); end;
readln; end.
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.