Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
56
Task/Zig-zag-matrix/Delphi/zig-zag-matrix.delphi
Normal file
56
Task/Zig-zag-matrix/Delphi/zig-zag-matrix.delphi
Normal file
|
|
@ -0,0 +1,56 @@
|
|||
type TMatrix = array of array of double;
|
||||
|
||||
|
||||
|
||||
procedure DisplayMatrix(Memo: TMemo; Mat: TMatrix);
|
||||
{Display specified matrix}
|
||||
var X,Y: integer;
|
||||
var S: string;
|
||||
begin
|
||||
S:='';
|
||||
for Y:=0 to High(Mat[0]) do
|
||||
begin
|
||||
S:=S+'[';
|
||||
for X:=0 to High(Mat) do
|
||||
S:=S+Format('%4.0f',[Mat[X,Y]]);
|
||||
S:=S+']'+#$0D#$0A;
|
||||
end;
|
||||
Memo.Lines.Add(S);
|
||||
end;
|
||||
|
||||
procedure ZigzagMatrix(Memo: TMemo);
|
||||
var Mat: TMatrix;
|
||||
var X,Y,Inx,Dir: integer;
|
||||
const Size = 10;
|
||||
|
||||
procedure Toggle(var I: integer);
|
||||
{Toggle Direction and increment I}
|
||||
begin
|
||||
Dir:=-Dir;
|
||||
Inc(I);
|
||||
end;
|
||||
|
||||
|
||||
procedure Step(var X,Y: integer);
|
||||
{Take one step "Dir" direction}
|
||||
begin
|
||||
X:=X+Dir;
|
||||
Y:=Y-Dir;
|
||||
end;
|
||||
|
||||
begin
|
||||
SetLength(Mat,Size,Size);
|
||||
Inx:=0; X:=0; Y:=0; Dir:=1;
|
||||
repeat
|
||||
begin
|
||||
Mat[X,Y]:=Inx;
|
||||
if (X+Dir)>=Size then Toggle(Y)
|
||||
else if (Y-Dir)>=Size then Toggle(X)
|
||||
else if (X+Dir)<0 then Toggle(Y)
|
||||
else if (Y-Dir)<0 then Toggle(X)
|
||||
else Step(X,Y);
|
||||
Inc(Inx);
|
||||
end
|
||||
until Inx>=Size*Size;
|
||||
DisplayMatrix(Memo,Mat);
|
||||
end;
|
||||
Loading…
Add table
Add a link
Reference in a new issue