Die explizite Darstellung habe ich gefunden: (n+n^2)/2
aber die Restzeit lässt sich trozdem nicht genau berechnen. Vielleicht kann mir da jemand weiterhelfen:
Delphi-Quellcode:
function TForm1.Restzeit (Startzeit,aktuelleZeit: TDateTime; aktuellesFeld,max: Longint): TDateTime;
var Differenz: TDateTime; //Die bis jetzt benötigte Zeit
n: integer; //alle Felder. Die var wird zwar übergeben ist aber so kürzer
f: integer; //aktuelles Feld. S.o
Ergebnis: TDateTime; //macht die Prozedur nur übersichtlicher
begin
n := max; //alle Felder;
f := aktuellesFeld;
Differenz := aktuelleZeit-Startzeit;
Ergebnis := Differenz/((f+sqr(f))/2) //Die Zeit die man für eine Schleife braucht wird berechnet
Eergebnis := Ergebnis* (((n+sqr(n))/2)-((f+sqr(f))/2))
{Die noch zu berechnenden Schleifen werden bestimmt und anschließend mit der Zeit mulipliziert}
Result := Ergebnis;
end;
Theoretisch müsste das doch so funktioneiren, oder? Praktisch tuts das aber nicht Die Zeit angaben sind absolut ungenau
Liegt das vielleicht daran, das mit TDateTime Millisekunden nicht als Kommazahl dargestellt werden können? Denn dann dürfte hier der Fehler liegen: Differenz/((f+sqr(f))/2)
Hat jemand ne Idee?
MfG
Christian