Wenn Du einen Parameter innerhalb der Funktion/Prozedur/Methode veränderst, musst Du ihn mit 'var' deklarieren, also
Delphi-Quellcode:
function zaehler(var za:integer; var x,y,x2,a,b:real):integer;
begin
x2:=x*x-y*y+a;
y:=2*x*y+b;
x:=x2;
If (za<100) and (sqrt(x*x+y*y)<2)
then za:=zaehler(za+1,x,y,x2,a,b)
else za:=1;
end;