Решения (задачи 198-216)
Задача 201
{ Рисует контур пятиконечной звезды } uses Graph; el bye; var r: integer; { радиус звезды) х0,у0: integer; { координаты центра звезды } х,у: integer; a: integer; i: integer; { координаты конца луча } { угол между осью ОХ и прямой, соединяющей центр звезды и конец луча } grDriver: Integer; grMode: Integer; ErrCode: Integer; res: integer; begin grDriver: = detect; InitGraph(grDriver, grMode,'e:\tp\bgi'); ErrCode: = GraphResult; if ErrCode <> grOk then begin writeln ('Ошибка инициализации графического режима.'); goto bye; end; xO: = 100; yO: = 100; r: = 20; a: = 18; (строим от правого гор. луча } x: = xO+Round(r*cos(a*2*pi/360)); y: = yO-Round(r*sin(a*2*pi/360)); MoveTo(x,y); for i: = l to 5 do begin a: = a+36; x: = xO+Round(r/2*cos(a*2*pi/360)); y: = yO-Round(r/2*sin(a*2*pi/360)); LineTo(x,y); a: = a+36; if a > 360 then a: = 18; x: = xO+Round(r*cos(a*2*pi/360)); y: = yO-Round(r*sin(a*2*pi/360)); LineTo(x,y); end; readln; bye: end.
Задача 202
(Рисует пятиконечную звезду } uses Graph; label bye; const k=0.01745; { коэф. пересчета величины угла из градусов в радианы к=2*р/360, где р – число "ПИ" } r: integer; { радиус звезды } x0,y0: integer; (координаты центра звезды } р: array[1..10] of PointType; { координаты концов лучей и впадин звезды } a: integer; i: integer; { угол между осью ОХ и прямой, соединяющей центр звезды и конец луча или впадину } grDriver: Integer; grMode: Integer; ErrCode: Integer; res: integer; begin grDriver: = detect; InitGraph(grDriver, grMode,'e:\tp\bgi'); ErrCode: = GraphResult; if ErrCode <> grOk then begin writeln ('Ошибка инициализации графического режима.'); goto bye; end; := 100; у0: = 100; r: = 20; а: = 18; (строим от правого гор. луча } for i: = l to 10 do begin if (i mod 2) <> 0 then begin (луч } i].x: = xO+Round(r*cos(a*k)); i].y: = yO-Round(r*sin(a*k)); end else begin { впадина } p[i].x: = xO+Round(r/2*cos(a*k)); p[i].y: = yO-Round(r/2*sin(a*k)); end; a: = a+36; if a > 360 then a: = 18; end; SetFillStyle(SolidFill,Red); FillPoly(10,p); readln; bye: end.
{ Рисует российский флаг } uses Graph; var x,y: integer; { координаты левого верхнего угла флага) l,h: integer; { длина и высота флага } w: integer; { ширина полосы флага } grDriver: Integer; grMode: Integer; ErrCode: Integer; res: integer; grDriver: = detect; InitGraph(grDriver, grMode,'e:\tp\bgi'; ErrCode: = GraphResult; if ErrCode = grOk then begin x: = 100; y: = 100; l: = 50; h: = 25; w: = Round(h/3); { рисуем флаг } SetFillStyle(SolidFill,White); Bar(x,y,x+l,y+w); SetFillStyle(SolidFill,Blue); Bar(x, y+w,x+1,y+2*w); SetFillStyle(SolidFill,Red); Bar(x,y+2*w,x+l,y+3*w); OutTextXY(x,y+h+5,'Россия'); end; readln; CloseGraph; end.