Salut,
Ich finde VAR nicht unbedingt ne geschickte Variante um Ergebnisse einer Prozedur etc. zurück zu geben, da dann der vorherige Wert überschrieben wird. Will man den vorherigen Wert behalten, und mehrere Ergebnisse zurück geben, empfiehlt sich die Verwendung von OUT.
Beispiel ? - OK...
Delphi-Quellcode:
procedure CalcLinearRegression(XVals, YVals : array of double; out a,b : double);
// Calculate Linear Regression for the XVals and YVals
// ax + b = y
// a = (n*SumXY-SumX*SumY)/(n*SumXX-SumX^2)
// b = (SumY*SumXX-SumX*SumXY)/(n*SumXX-SumX^2)
var
PointNb : Integer;
Nominator : double;
SumX : Double;
SumXX : Double;
SumY : Double;
SumXY : Double;
i : integer;
begin
SumX := 0;
SumXX := 0;
SumY := 0;
SumXY := 0;
PointNb := Length(XVals);
for i := 0 to PointNb-1 do
begin
SumX := SumX+XVals[i];
SumY := SumY+YVals[i];
SumXX := SumXX+XVals[i]*XVals[i];
SumXY := SumXY+XVals[i]*YVals[i];
end;
Nominator := (PointNb*SumXX-SumX*SumX);
a := (PointNb*SumXY-SumX*SumY)/Nominator;
b := (SumY*SumXX-SumX*SumXY)/Nominator;
end;
Grüße
Wolf
http://www-users.rwth-aachen.de/wolf...tballSmile.gif
P.S.: Eigentlich wollte ich noch nen Kommentar zum Thema Besserwisser schreiben, aber der wurde mir schonmal weg zensiert...
Ein Schiff im Hafen ist sicher. Aber dafür werden Schiffe nicht gebaut. (engl. Sprichwort)