Die Unit math bringt den ** – Operator mit, der die Potenz einer Zahl berechnen kann.
program QTest;
uses
Math;
var
X: Int64;
begin
X := 3 ** 2;
WriteLn(X);
end.Wie zu erwarten erhalten wir die Ausgabe
9Es gibt jedoch noch eine zweite Möglichkeit das Quadrat einer Zahl zu ermitteln, die Funktion Sqr.
program QTest2;
var
X: Int64;
begin
X := Sqr(3);
WriteLn(X);
end.Auch hier kommt wie erwartet 9 als Ausgabe zurück.
Beide Varianten unterscheiden sich (neben dem leicht anderen Syntax) in einem wichtigen Punkt: der Geschwindigkeit. Ein Testprogramm welches jede Variante 100 Millionen mal durchführt, zeigt den Unterschied auf.
Für die Variante Sqr wurden 148 ms benötigt, der ** – Operator ließ den Benutzer hingegen 3994 ms warten.
Wer also eine große Anzahl an Berechnungen dieser Art durchführen muss, sollte sich für Sqr entscheiden.
