program SignCheck;
{$APPTYPE CONSOLE}
var
n: Integer;
index: Integer;
resultLabels: array[0..2] of PChar;
begin
n := 89;
// create text labels for each possible case
resultLabels[0] := 'negative'; // index 0
resultLabels[1] := 'zero'; // index 1
resultLabels[2] := 'positive'; // index 2
// compute an index without using any conditional statements
// (n > 0) becomes 1 if true, 0 if false
// (n < 0) becomes 1 if true, 0 if false
// index = 1 + (n > 0) - (n < 0)
index := 1 + Ord(n > 0) - Ord(n < 0);
// print the classification
Writeln(resultLabels[index]);
(*
Checks:
n = -3
(n > 0) = 0
(n < 0) = 1
index = 1 + 0 - 1 = 0
result = negative
n = 0
(n > 0) = 0
(n < 0) = 0
index = 1 + 0 - 0 = 1
result = zero
n = 89
(n > 0) = 1
(n < 0) = 0
index = 1 + 1 - 0 = 2
result = positive
*)
end.
(*
run:
positive
*)