How to get array subset in Pascal

1 Answer

0 votes
program ArraySubsetProgram;

type
  TIntArray = array of Integer;

function GetSubset(arr: TIntArray; startIndex, length: Integer): TIntArray;
var
  i: Integer;
begin
  // Check if the requested subset is within the bounds of the original array
  if (startIndex < 0) or (length < 0) then 
  begin
    // Return an empty array or handle the error appropriately
    SetLength(GetSubset, 0);
    Exit; // Exit the function to prevent further errors
  end;

  // Set the length of the result array
  SetLength(GetSubset, length);

  // Copy elements to the subset
  for i := 0 to length - 1 do
    GetSubset[i] := arr[startIndex + i];

  GetSubset := GetSubset; // Return the result
end;

var
  arr, subset: TIntArray;
  startIndex, length, i: Integer;
begin
  // Initialize the array
  SetLength(arr, 8);
  arr[0] := 3;
  arr[1] := 7;
  arr[2] := 9;
  arr[3] := 0;
  arr[4] := 4;
  arr[5] := 2;
  arr[6] := 1;
  arr[7] := 8;

  startIndex := 2; // Start index for the subset
  length := 4;      // Number of elements in the subset

  subset := GetSubset(arr, startIndex, length);

  Write('Subset: ');
  for i := 0 to High(subset) do
    Write(subset[i], ' ');
  WriteLn;
end.



(*
run:

Subset: 9 0 4 2 

*)

 



answered Mar 24, 2025 by avibootz
...