Просто переделал твой алгоритм, заменив на то что нужно (a[i] на (-4+i*0.5)), остальное не знаю что там
Код:
procedure TForm1.Button4Click(Sender: TObject);
var
a:array[-4..1] of real;
b:array[1..10] of real;
begin
for i:=1 to 10 do
begin
if (-4+i*0.5)>=1 then b[i]:=sqr((-4+i*0.5)+1)+7 else b[i]:=(-4+i*0.5)-2*exp((-5)*ln((-4+i*0.5)));
StringGrid1.Cells[i,1]:=b[i];
s:=b[i]*b[i];
StringGrid1.Cells[i,2]:=y1;
f:=4-exp((-3)*ln(s));
StringGrid1.Cells[i,3]:=f;
y1:=sqr(s)+2*(-4+i*0.5)+f;
StringGrid1.Cells[i,4]:=s;
end;
end;