На строке 9 "if x>=-7.5 and x<2 then y:=(a*sqrt(abs(x+6))); " в том месте, где выделено жирным, компилятор думает, что необходимо произвести побитовое умножение числа с плавающей точкой типа real -7.5 и целого числа x. Т.к. побитовое умножение применимо только к целым числам, компилятор пытается преобразовать -7.5 к целому числу, т.е. к integer, и у него это не получается, о чем он Вам и говорит.
Чтобы он не думал, что Вы собираетесь производить побитовое умножение (ведь Вы хотите произвести логическую операцию между результатами двух сравнений), нужно занести в скобки выражения x>=-7.5 и x<2, чтобы получилась такая строка: "if (x>=-7.5) and (x<2) then y:=(a*sqrt(abs(x+6))); "
begin
var R := Arr(4.0, 2.0, 3.0, 1.0, 5.0, 1.0, 2.0, 7.0, 6.0);
Println('Сумма элементов >5:', R.Where(p -> p > 5).Sum);
Println('Кол-во элементов <5:', R.Count(p -> p < 5));
var imax := R.IndexMax;
$'Максимальный элемент R[{imax+1}]={R[imax]}'.Println;
R.Transform(p -> p > 4 ? Sin(p - 1) : Sqr(Cos(p + 1)));
R.Println.Sorted.Println
end.