Уменьшить программу - PascalABC.NET
Формулировка задачи:
Уменьшите программу пожалуйста.
Листинг программы
- Uses GraphABC;
- Procedure Gr8(X,Y,R:Integer);
- Var
- R3:Integer;
- Begin;
- R3:=R div 3;
- Line(x+R3,Y,X+2*R3,Y);
- Line(x+2*R3,Y,X+R,Y+R3);
- Line(x+r,y+r3,x+r,y+2*r3);
- Line(x+r,y+2*r3,x+2*r3,y+r);
- Line(x+2*R3,Y+R,X+R3,Y+R);
- Line(X+r3,y+r,x,y+2*r3);
- Line(x,y+2*r3,x,y+r3);
- Line(x,y+r3,x+r3,y);
- End;
- Const
- R=40;
- K=1000000000;
- D=4;
- Var
- WW,WH,X,Y,DirX,DirY,Kol:Integer;
- Begin
- CenterWindow;
- WW:=Windowwidth;
- WH:=Windowheight;
- x:=0;
- y:=0;
- Dirx:=1;
- Diry:=1;
- Kol:=0;
- SetSmoothing(false);
- Repeat
- Setpencolor(clrandom);
- Gr8(X,Y,R);
- Sleep(10);
- SetPenColor(clWhite);
- Gr8(X,Y,R);
- If x>=WW-R Then
- DirX:=-1;
- If Y>=WH-R Then
- DirY:=-1;
- If x<=0 Then
- Begin
- DirX:=1;
- Kol:=kol+1;
- End;
- If y<=0 Then
- DirY:=1;
- x:=x+dirx*d;
- y:=y+diry*d;
- Until Kol>=K;
- SetPenColor(clblue);
- Gr8(X-D,Y-D,R);
- End.
Решение задачи: «Уменьшить программу»
textual
Листинг программы
- {$reference System.Core.dll}
- uses System.Linq, GraphABC;
- const
- R = 40;
- HalfR = R div 2;
- K = 1000000000;
- D = 4;
- var
- X, Y: Integer;
- Finished := false;
- begin
- CenterWindow;
- x := HalfR; y := HalfR;
- var Dirx := 1;
- var Diry := 1;
- var Kol := 0;
- SetSmoothing(false);
- LockDrawing;
- repeat
- Window.Clear;
- Finished := Kol > K;
- Setpencolor(Finished ? clBlue : clRandom);
- DrawPolygon(Enumerable.Range(0, 8).Select((i :integer) ->
- new Point(x - D * Ord(Finished) + Round(HalfR * sin(Pi / 8 + Pi / 4 * i)),
- y - D * Ord(Finished) - Round(HalfR * cos(Pi / 8 + Pi / 4 * i)))).ToArray());
- Redraw;
- if Finished then Continue;
- if x >= Windowwidth - HalfR Then DirX := -1;
- DirY := (Y >= Windowheight - HalfR) ? -1 : (Y <= HalfR) ? 1 : DirY;
- DirX := (X >= WindowWidth - HalfR) ? -1 : (X <= HalfR) ? 1 : DirX;
- Inc(Kol, Ord(X <= HalfR));
- x := x + dirx * d;
- y := y + diry * d;
- sleep(10);
- until Finished;
- end.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д