AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Summenzeichen in Delphi?

Ein Thema von Chris1986 · begonnen am 23. Nov 2003 · letzter Beitrag vom 23. Nov 2003
Antwort Antwort
Chris1986

Registriert seit: 17. Jul 2003
Ort: Aachen
350 Beiträge
 
Delphi 7 Enterprise
 
#1

Summenzeichen in Delphi?

  Alt 23. Nov 2003, 13:52
Hi,
es gibt ja in Delphi die Unit Math. Gibts da auch sowas wie das Summenzeichen? Ich bräuchte nämlich das Ergebnis der Summe:

n-1
Σ (n-k)
k=1

Natürlich könnte ich das auch mit einer Schleife machen, aber das finde ich nicht sehr elegant. Oder weiß jemand zufällig eine explizite Darstellung für die Summe? Ich überleg schon 3Stunden, aber mir fällt absolut keine ein.

Ich brauche das ganze, weil ich die Restzeit berechnen will für etwas, das so ähnlich aussieht:

Delphi-Quellcode:
begin
  for i:= 1 to 1000 do
    for j:=i to 1000 do
      {irgendwas}
end;
Die 2te Schleife wird also immer kürzer. Und um das korrekt zu berechnen muss ich wissen, wieviel Schleifen denn noch zu berechnen sind. Und das mit einer weiteren for-Schleife zu machen ist natürlich schlecht, weil die Schleife bis zu 50000 mal durchlaufen wird.

MfG
Christian
Es gibt nur 10 Typen von Menschen auf der Welt:
Die, die Binärcode verstehen und die, die es nicht tun . . .
  Mit Zitat antworten Zitat
Chris1986

Registriert seit: 17. Jul 2003
Ort: Aachen
350 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Summenzeichen in Delphi?

  Alt 23. Nov 2003, 15:16
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
Es gibt nur 10 Typen von Menschen auf der Welt:
Die, die Binärcode verstehen und die, die es nicht tun . . .
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Summenzeichen in Delphi?

  Alt 23. Nov 2003, 15:30
wie wäre es mit einem Blick in die Hilfe?
Zitat von TDateTime:
type TDateTime = type Double; Most VCL objects represent date and time values using the TDateTime type. The integral part of a TDateTime value is the number of days that have passed since 12/30/1899. The fractional part of a TDateTime value is fraction of a 24 hour day that has elapsed.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Chris1986

Registriert seit: 17. Jul 2003
Ort: Aachen
350 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Summenzeichen in Delphi?

  Alt 23. Nov 2003, 15:34
hm. Und wie berechne ich das dann?

MfG
Christian
Es gibt nur 10 Typen von Menschen auf der Welt:
Die, die Binärcode verstehen und die, die es nicht tun . . .
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:19 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz