Часть I. Основы алгоритмизации и процедурное программирование
Program ex; Uses Crt,Graph;
Const r:real=100; {размер половины стороны квадрата}
Var
X, у, dx, dy, dxl, dyJ, xn, yn, xc, yc, xnl, ynl.real; gd,gmJJ: integer;
tyk:real; {угол поворота и масштаб}
{изображение квадрата}
Procedure Squarel(x,ydx,dy:integer); Begin
Line(x+dx,y-^dy,X'dy,y+dx);
Line(X'dy,y+dx,X'dx,y'dyJ;
Line(x-dx,y'dy,x+dy,y'dx);
Line(x+dyy-dx,x+dx,y+dyJ; End;
{основная программа}
Begin gd:=detect;
InitGraph(gd,gm, *d:\bp\bgi');
{устанавливаем начальную и конечную точки}
хп: =GetMaxX div 4; yn:--GetMaxYdiv3*2; xc: ^'GetMaxX-xn; yc:=GetMaxY'yn;
{определяем начальные значения}
dy:=0; к: =0,95; t:=0;
{покадровый вывод на экран}
while (t<100) and not KeyPressed do begin
SetColor(2); {выводим кадр}
Squarel(round(xn)у round(yn), round(dx), round(dy));
{масштабирование} xnl: = xn *k+(]'k) *xc; yn1: =yn *k+ (J-k) *>'c; r:= k'^r;
{поворот}
t:=t+l; {увеличиваем угол поворота} dxl:=r'^cos(t);
dyl:= r*sin(t);
forj:=J to 5000 do Delay(lOOO); {приостановка}