# GÓC SÁNG TẠO > Khu vực lập trình > Pascal/Delphi/Kylix >  Sắp xếp mảng 2 chiều.

## Boom

Hãy sắp xếp mảng 2 chiều theo thứ tự sau:
Từ trái sang phải->Từ trên xuống dưới->Từ phải sang trái->Từ dưới lên trên->Từ trái sang phải............Tiếp tục cho đến hết

----------


## greenhome

> Hãy sắp xếp mảng 2 chiều theo thứ tự sau:
> Từ trái sang phải->Từ trên xuống dưới->Từ phải sang trái->Từ dưới lên trên->Từ trái sang phải............Tiếp tục cho đến hết


đây là bài sắp xếp ma trân hình xoắn ốc theo chiều kim đồng hồ.trong diễn đàn đã post bài nay lên rồi

----------


## chautuanpro91

> đây là bài sắp xếp ma trân hình xoắn ốc theo chiều kim đồng hồ.trong diễn đàn đã post bài nay lên rồi


Cho mình cái link đi[IMG]data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAA  l21bKAAAAA1BMVEXh5PJm+yKVAAAAAXRSTlMAQObYZgAAAApJR  EFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII=[/IMG]
--------------------

----------


## phamthaovnn

http://www.diendantinhoc.vn/showthread.php?t=7119&highlight=S%E1%BA%AFp+x%E1%B  A%BFp+tr%E1%BA%ADn+xo%E1%BA%AFn

=)) đụng hàng [IMG]data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAA  l21bKAAAAA1BMVEXh5PJm+yKVAAAAAXRSTlMAQObYZgAAAApJR  EFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII=[/IMG]

----------


## ithongminh

c chẳng thấy cái hình , nhưng nếu xoắn ốc thì code nà 


```
const fi='matran.inp';
      fo='matran.out';
 
var   f:text;
      n,c1,c2,h1,h2:integer;
      a:array[1..100,1..100] of integer;
 
procedure inp;
begin
      assign(f,fi);
      reset(f);
      readln(f,n);
      close(f);
end;
 
procedure sol;
var   i,j,k:integer;
begin
      c1:=1; c2:=n;
      h1:=2; h2:=n;
      k:=1;
      repeat
            for j:=c1 to c2 do
            begin
                  a[h1-1,j]:=k;
                  inc(k);
            end;
            dec(c2);
            for i:=h1 to h2 do
            begin
                  a[i,c2+1]:=k;
                  inc(k);
            end;
            dec(h2);
            for j:=c2 downto c1 do
            begin
                  a[h2+1,j]:=k;
                  inc(k);
            end;
            inc(c1);
            for i:=h2 downto h1 do
            begin
                  a[i,c1-1]:=k;
                  inc(k);
            end;
            inc(h1);
      until k>=sqr(n);
end;
 
procedure pri;
var   i,j:integer;
begin
      assign(f,fo);
      rewrite(f);
      for i:=1 to n do
      begin
            for j:=1 to n do
                  write(f,a[i,j],' ');
            writeln(f);
      end;
      close(f);
end;
 
begin
      inp; sol; pri;
end.
```

bài kia cũng thế , e type cái mảng ra cho c xem vs . Nếu bik thì c code cho

----------


## nguyenhaiduya

Bài kia là bài nào thế? Bạn ý post mỗi 1 bài xoắn ốc thôi mà. Bài này trong diễn đàn có nhiều rồi.

----------


## tonyteo

> Bài kia là bài nào thế? Bạn ý post mỗi 1 bài xoắn ốc thôi mà. Bài này trong diễn đàn có nhiều rồi.


Mình nói bài zic zac 
----------------------

----------

