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
*)