Advertisement
Guest User

Untitled

a guest
Dec 11th, 2018
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 2.12 KB | None | 0 0
  1. program Project2;
  2.  
  3. {$APPTYPE CONSOLE}
  4.  
  5. {$R *.res}
  6.  
  7. uses
  8.   System.SysUtils;
  9. var
  10.    Matrix: array of array of Integer;
  11.    NewArr: array of Integer;
  12.    Order, i,j, NewArrIndex, Iteration, EndOfTheMatrix, Buf: Integer;
  13. begin
  14.    Writeln('Enter order of the matrix');
  15.    Readln(Order);
  16.    SetLength(Matrix, Order, Order);
  17.    SetLength(NewArr, Order*Order);
  18.    Iteration := Order - 1;
  19.    for i := 0 to Iteration do
  20.    begin
  21.       for j := 0 to Iteration do
  22.          Read(Matrix[i][j]);
  23.       Readln;
  24.    end;
  25.    NewArrIndex := 0;
  26.  
  27.    for i := 0 to Iteration do
  28.       for j := 0 to Iteration do
  29.       begin
  30.          NewArr[NewArrIndex] := Matrix[i][j];
  31.          Inc(NewArrIndex);
  32.       end;
  33.  
  34.    Iteration := High(NewArr) - 1;
  35.    for i := 0 to Iteration do
  36.       for j := 0 to Iteration - i do
  37.          if NewArr[j] > NewArr[j+1] then
  38.          begin
  39.             Buf := NewArr[j];
  40.             NewArr[j] := NewArr[j+1];
  41.             NewArr[j+1] := Buf;
  42.          end;
  43.  
  44.    i := 0;
  45.    j := 0;
  46.    NewArrIndex := 0;
  47.    EndOfTheMatrix := (Order * Order) - 1;
  48.    Iteration := Order - 1;
  49.  
  50.    while NewArrIndex < EndOfTheMatrix do
  51.    begin
  52.       while j < Iteration do
  53.       begin
  54.          Matrix[i][j] := NewArr[NewArrIndex];
  55.          Inc(NewArrIndex);
  56.          Inc(j);
  57.       end;
  58.  
  59.       while i < Iteration do
  60.       begin
  61.          Matrix[i][j] := NewArr[NewArrIndex];
  62.          Inc(NewArrIndex);
  63.          Inc(i);
  64.       end;
  65.  
  66.       while j > Order - Iteration - 1 do
  67.       begin
  68.          Matrix[i][j] := NewArr[NewArrIndex];
  69.          Inc(NewArrIndex);
  70.          Dec(j);
  71.       end;
  72.  
  73.       Dec(Iteration);
  74.  
  75.       while i > Order - Iteration - 1 do
  76.       begin
  77.          Matrix[i][j] := NewArr[NewArrIndex];
  78.          Inc(NewArrIndex);
  79.          Dec(i);
  80.       end;
  81.  
  82.       if NewArrIndex = EndOfTheMatrix then
  83.       begin
  84.          Matrix[i][j] := NewArr[NewArrIndex];
  85.          Inc(NewArrIndex);
  86.       end;
  87.    end;
  88.  
  89.    Iteration := Order - 1;
  90.  
  91.    for i := 0 to Iteration do
  92.    begin
  93.       for j := 0 to Iteration do
  94.          Write(Matrix[i][j], ' ');
  95.       Writeln;
  96.    end;
  97.  
  98.    Readln;
  99.    Readln;
  100.  
  101. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement