Advertisement
dartwlad

Untitled

Nov 2nd, 2016
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 1.41 KB | None | 0 0
  1. program Project1;
  2.  
  3. type
  4.   TIntegerArray = array of integer;
  5.  
  6. function getRandomNumber(a, b: integer): integer;
  7. var
  8.   rand: integer;
  9. begin
  10.   rand := Random(b - a + 1) + a;
  11.   while rand mod 2 <> 0 do
  12.   begin
  13.     rand := Random(b - a + 1) + a;
  14.   end;
  15.   Result := rand;
  16. end;
  17.  
  18. function getRandomArray(n: integer): TIntegerArray;
  19. var
  20.   i: integer;
  21. begin
  22.   for i := 0 to n - 1 do
  23.   begin
  24.     SetLength(Result, length(Result) + 1);
  25.     Result[i] := getRandomNumber(1, 50);
  26.   end;
  27. end;
  28.  
  29. procedure displayArray(arr: array of integer);
  30. var
  31.   i: integer;
  32. begin
  33.   Write('Array: ');
  34.   for i := 0 to length(arr) - 1 do
  35.   begin
  36.     Write(arr[i]:4);
  37.   end;
  38.   WriteLn;
  39. end;
  40.  
  41. function sortArray(arr: TIntegerArray): TIntegerArray;
  42. var
  43.   half: integer;
  44. var
  45.   i: integer;
  46. begin
  47.   half := Round(length(arr) / 2);
  48.  
  49.   for i := 0 to half - 1 do
  50.   begin
  51.     if i = 0 then
  52.     begin
  53.       arr[half + 1] := arr[half + 1] + Round(arr[half] / 2);
  54.       arr[half - 1] := arr[half - 1] + Round(arr[half] / 2);
  55.     end
  56.     else
  57.     begin
  58.       arr[half + (i + 1)] := arr[half + (i + 1)] + Round(arr[half + i] / 2);
  59.       arr[half - (i + 1)] := arr[half + (i + 1)] + Round(arr[half - i] / 2);
  60.     end;
  61.   end;
  62.   Result := arr;
  63. end;
  64.  
  65. var
  66.   arr: TIntegerArray;
  67.   newArr: TIntegerArray;
  68.  
  69. begin
  70.   arr := getRandomArray(13);
  71.   displayArray(arr);
  72.   newArr := sortArray(arr);
  73.   displayArray(newArr);
  74.  
  75. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement