![]() |
Re: Logarithmen zu beliebiger Basis
Zitat:
1. not (x > 0) schreibt man besser als x <= 0.0! Warum zwei Operationen? Warum keine Fließkomma-Null wenn's doch eine ist? 2. Wenn base oder number <= 0.0 sind wurde eine Exception geworfen! Warum also noch mal testen, ob sie > 0.0 sind?
Delphi-Quellcode:
function lgx(base,number: double): double;
begin if base <= 0.0 then raise Exception.Create('Invalid base'); if number <= 0.0 then raise Exception.Create('Invalid number'); result:= ln(number)/ln(base); end; |
Re: Logarithmen zu beliebiger Basis
Ich mach es auch gern mal kurz und schmerzlos :angel2:
Delphi-Quellcode:
Wenn die Unit SysUtils eingebunden ist, dann wird hier eine Exception EInvalidOp "Ungültige Gleitkommaoperation." geworfen.
function LgX(base, number: Double): Double; //inline;
begin if (base <= 0.0) or (number <= 0.0) then System.Error(reInvalidOp); Result := Ln(number) / Ln(base); end; |
Re: Logarithmen zu beliebiger Basis
Hallo,
hier ist - in Anlehnung an Julius' Beitrag - noch ein Testfall:
Delphi-Quellcode:
Gruß Hawkeye
Value := lgx(1.0, 10.0);
|
Re: Logarithmen zu beliebiger Basis
Zitat:
[b]Edit:// Okay, kleine Berichtigung. Ich weiß schon was das ist, da stolpert man im Laufe der Jahre am Computer einfach mal drüber. Aber der Rest meiner Klasse hat sicherlich keine Ahnung von. (Wobei auch anzunehmen ist, dass die das auch nicht haben würden, selbst wenn wir das durchgenommen hätten... :roll: Aber das ist ein anderes Thema. ) Liebe Grüße, Valle |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:41 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz