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

Решения (задачи 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.
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.