Цитата:
Сообщение от Ver4ik
16. Составить программу построения изображения n квадратов: квадраты вписаны друг в друга так, что вершины внутреннего квадрата находятся в серединах сторон внешнего
|
Поскольку Вы не сочли нужным указать, в какой из разновидностей Паскаля: Turbo-Free-Borland или ABC должна быть решена задача (а для графики это принципиальный вопрос), то право выбора я оставляю за собой и представляю решение в DOS Free Pascal:
Код:
Uses
CRT, Graph;
Const
N=10;
VAR
Xold,Yold,Xnew,Ynew:Array[1..5] of Word;
i,j:Byte;
Begin
InitGraph(...); {параметры процедуры инициализации задайте сами}
ClearDevice;
Ynew[1]:=0;
Ynew[2]:=0;
Ynew[3]:=GetMaxY;
Ynew[4]:=GetMaxY;
Ynew[5]:=0;
Xnew[1]:=(GetMaxX div 2)-(GetMaxY div 2);
Xnew[2]:=(GetMaxX div 2)+(GetMaxY div 2);
Xnew[3]:=(GetMaxX div 2)+(GetMaxY div 2);
Xnew[4]:=(GetMaxX div 2)-(GetMaxY div 2);
Xnew[5]:=(GetMaxX div 2)-(GetMaxY div 2);
For i:=1 to N do
begin
for j:=1 to 4 do
Line(Xnew[j],Ynew[j],Xnew[j+1],Ynew[j+1]);
Xold:=Xnew;
Yold:=Ynew;
for j:=1 to 4 do
begin
Xnew[j]:=(Xold[j]+Xold[j+1]) div 2;
Ynew[j]:=(Yold[j]+Yold[j+1]) div 2;
end;
Xnew[5]:=Xnew[1];
Ynew[5]:=Ynew[1];
end;
Readkey;
CloseGraph;
End.