Решения (задачи 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.