Advertisement
Guest User

Untitled

a guest
Dec 11th, 2018
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 2.64 KB | None | 0 0
  1. program Project2;
  2.  
  3. {$APPTYPE CONSOLE}
  4.  
  5. uses
  6.   SysUtils;
  7.  
  8. const
  9.    n = 6;
  10.  
  11. type
  12.    TArrSort = array [1..(n * n)] of Integer;
  13.  
  14. function SortArr(MyArr: TArrSort): TArrSort;
  15. var
  16.    i, beg, en: Word;
  17.    Temp: Integer;
  18. begin
  19.    beg := 1;
  20.    en := Length(MyArr);
  21.    while beg < en do
  22.    begin
  23.       for i := beg + 1 to en do
  24.          if MyArr[i-1] > MyArr[i] then
  25.          begin
  26.             Temp := MyArr[i];
  27.             MyArr[i] := MyArr[i-1];
  28.             MyArr[i-1] := Temp;
  29.          end;
  30.       dec(en);
  31.       for i := en - 1 downto beg do
  32.          if MyArr[i + 1] < MyArr[i] then
  33.          begin
  34.             Temp := MyArr[i];
  35.             MyArr[i] := MyArr[i+1];
  36.             MyArr[i+1] := Temp;
  37.          end;
  38.       inc(beg);
  39.    end;
  40.    SortArr := MyArr;
  41. end;
  42.  
  43. var
  44.    i, j, x, y, til: Word;
  45.    arr: array [1..n,1..n] of Integer;
  46.    sort: TArrSort;
  47.  
  48. begin
  49.    for i := 1 to n do
  50.       for j := 1 to n do
  51.          arr[i,j] := 10 * i + j;
  52.    for j := 1 to n do
  53.    begin
  54.       for i := 1 to n do
  55.          Write(arr[i][j],'   ');
  56.       WriteLn;
  57.    end;
  58.    WriteLn;
  59.    y := 1;
  60.    x := 1;
  61.    til := n;
  62.    i := 1;
  63.    sort[i] := arr[x,y];
  64.    inc(i);
  65.    repeat
  66.       repeat
  67.          inc(x);
  68.          sort[i] := arr[x,y];
  69.          inc(i);
  70.       until(x = til) or (i > n * n);
  71.       repeat
  72.          inc(y);
  73.          sort[i] := arr[x,y];
  74.          inc(i);
  75.       until(y = til) or (i > n * n);
  76.       repeat
  77.          dec(x);
  78.          sort[i] := arr[x,y];
  79.          inc(i);
  80.       until(x = (n - til + 1)) or (i > n * n);
  81.       repeat
  82.          dec(y);
  83.          sort[i] := arr[x,y];
  84.          inc(i);
  85.       until(y = (n - til + 2)) or (i > n * n);
  86.       dec(til);
  87.    until(i > n * n);
  88.    for j := 1 to Length(sort) do
  89.       Write(sort[j],' ');
  90.    WriteLn(#13#10);
  91.    Sort := SortArr(Sort);
  92.    for j := 1 to Length(sort) do
  93.       Write(sort[j],' ');
  94.    WriteLn(#13#10);
  95.    y := 1;
  96.    x := 1;
  97.    til := n;
  98.    i := 1;
  99.    arr[x,y] := sort[i];
  100.    inc(i);
  101.    repeat
  102.       repeat
  103.          inc(x);
  104.          arr[x,y] := sort[i];
  105.          inc(i);
  106.       until(x = til) or (i > n * n);
  107.       repeat
  108.          inc(y);
  109.          arr[x,y] := sort[i];
  110.          inc(i);
  111.       until(y = til) or (i > n * n);
  112.       repeat
  113.          dec(x);
  114.          arr[x,y] := sort[i];
  115.          inc(i);
  116.       until(x = (n - til + 1)) or (i > n * n);
  117.       repeat
  118.          dec(y);
  119.          arr[x,y] := sort[i];
  120.          inc(i);
  121.       until(y = (n - til + 2)) or (i > n * n);
  122.       dec(til);
  123.    until(i > n * n);
  124.    for j := 1 to n do
  125.    begin
  126.       for i := 1 to n do
  127.          Write(arr[i][j],'   ');
  128.       WriteLn;
  129.    end;
  130.    ReadLn;
  131. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement