Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Frage zu Delphi Funktion


Benny1521994 - Mi 17.11.10 18:39
Titel: Frage zu Delphi Funktion
Moin Leute :)
Hab gegooglet, nix brauchbares gefunden;)
Also, der Benutzer gibt 2 Zahlen vor
Sagen wir jetzt mal 10 und 15
Das Programm soll dann alle Zahlen dazwischen quadrieren und anschliessend addieren
Jedoch nicht bis 15, sondern bis 14, also eins unter dem Wert ( das krieg ich aber alleine hin :D )
Also, wie mache ich es, dass der alle Zahlen dazwischen quadriert und daraus die Summe bildet?

lg :)


Georg08 - Mi 17.11.10 18:43

müsste das nicht irgendwie so aussehen?:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
uses
  [...], Math;

[...]

function NameDeinerFunktion(zahl1, zahl2: Integer);
  var
    i: Integer;
begin
  result := 0;
  for i := zahl1+1 to zahl2-1 do
    result := sqr(i)+result;  // wenn du Math nicht einbinden möchtest geht es bei Quadrat ja noch recht leicht:
    //result := i*i+result
end;


Kann sein dass fehler drin sind, ist nicht getestet


Jakob_Ullmann - Mi 17.11.10 20:13

Lässt sich aber effizienter rechnen:


Quelltext
1:
2:
(LaTeX)
\sum_{i = 1}^n i^2 = \frac{n (n + 1) (2 n + 1)}{6}


Wenn dir Performance wichtig ist und deine Werte größer werden.

(zwei Links: http://de.wikipedia.org/wiki/Faulhabersche_Formel, http://de.wikipedia.org/wiki/Formelsammlung_Algebra#Potenzsummen)


jaenicke - Mi 17.11.10 20:19

user profile iconJakob_Ullmann hat folgendes geschrieben Zum zitierten Posting springen:
Wenn dir Performance wichtig ist und deine Werte größer werden.
Das ist bei einer (fast kompletten) zum C&P angebotenen (vermutlich) Hausaufgabe bestimmt der Fall. :mrgreen:


Benny1521994 - Mi 17.11.10 22:03

Es Handelt sich um KEINE Hausaufgabe ! ;)
Freiwillige Basis, keine Sorge :)

Bin gerade nicht am "Delphi PC" und kann es nicht ausprobieren, werde das aber gleich nachholen
Eins von beiden wird schon funktionieren, also schonmal ein Großes Danke :)
In Excel hab ich es hingekriegt, doch das in Delphi war dann doch zu hoch für mich

Schönen Abend noch :)