program SparseArrayCheck;
{$mode delphi}{$H+}
{
Determines whether an array is sparse.
Sparse means: more zero elements than non‑zero elements.
}
function IsSparse(const Arr: array of Integer): Boolean;
var
ZeroCount: Integer;
Value: Integer;
begin
ZeroCount := 0;
{ Count zero elements using a clean for‑in loop }
for Value in Arr do
if Value = 0 then
Inc(ZeroCount);
{ Compare zero vs non‑zero directly }
Result := ZeroCount > (Length(Arr) - ZeroCount);
end;
var
Data: array[0..8] of Integer = (0, 4, 0, 1, 0, 0, 0, 3, 0);
begin
if IsSparse(Data) then
WriteLn('Sparse array')
else
WriteLn('Not a sparse array');
end.
{
run:
Sparse array
}