Einzelnen Beitrag anzeigen

Blechwolf

Registriert seit: 9. Sep 2003
Ort: Aachen
126 Beiträge
 
Delphi 7 Professional
 
#11

Re: Variable über funktionsnamen zurückgeben

  Alt 10. Dez 2003, 17:08
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)
  Mit Zitat antworten Zitat