How to iterate an array from the middle outward (stepping left and right alternately) in Pascal

1 Answer

0 votes
program MiddleOutIteration;

{$mode objfpc}

var
  arr: array[0..7] of Integer = (0,1,2,3,4,5,6,7);
  n, mid: Integer;
  left, right: Integer;

begin
  n := Length(arr);
  mid := n div 2;      // middle index for even-sized array

  left := mid - 1;     // start expanding left
  right := mid;        // start expanding right

  // Iterate outward from the middle
  while (left >= 0) or (right < n) do
  begin
    if right < n then
    begin
      Write(arr[right], ' ');
      Inc(right);
    end;

    if left >= 0 then
    begin
      Write(arr[left], ' ');
      Dec(left);
    end;
  end;

end.



{
run:

4 3 5 2 6 1 7 0

}


 



answered 6 days ago by avibootz

Related questions

...