Существует довольно простой и очень быстрый подход сравнения равенства для целых чисел без необходимости в дополнительном методе и подобных вещах - это Битовые операторы И, конечно, это можно поместить в метод с открытым массивом или итак.
Есть даже 2 варианта (или, может быть, больше), со вторым вы также можете заменить "или" на "+", ИЛИ (не оба, это испортит логику проверки равенства c) вас может заменить «xor» на «-» (последний случай)
НО длина результирующего условия не короче оригинала (только последний случай такой же, и все скобки / скобки важны, кроме первого xor / -) Вот код тестирования:
program Project1;{$APPTYPE CONSOLE}
uses Math; var a, b, c, d, x : Integer; s: string;
begin
Randomize;
repeat
x := Random(10) - 5;
a := x + Sign(Random() - 0.5);
b := x + Sign(Random() - 0.5);
c := x + Sign(Random() - 0.5);
d := x + Sign(Random() - 0.5);
Writeln(a, ' ', b, ' ', c, ' ', d);
Writeln((A = B) and (B = C) and (C = D));
Writeln(a or b or c or d = a and b and c and d);
Writeln(a xor b or (b xor c) or (c xor d) = 0);
Writeln(a - b or (b - c) or (c - d) = 0);
Readln(s);
until s <> '';
end.