Registriert seit: 6. Apr 2011
Ort: Berlin
3.070 Beiträge
Delphi 10.4 Sydney
|
AW: tan() von Single, Double, etc.
20. Nov 2017, 11:09
Reicht es nicht, wenn du das Tan-Ergebnis auf größer 1 und kleiner minus 1 prüfst?
Delphi-Quellcode:
program Project3;
{$APPTYPE CONSOLE}
{$R *.res}
uses
System.SysUtils, System.Math,
Types;
procedure Main;
var
I: Integer;
Degree, Rad, TanResult: Single;
LogMsg: string;
DegArray: TArray<Integer>;
begin
DegArray := [0, 45, 90, 135, 180, 225, 270, 315, 360];
for I in DegArray do
begin
Degree := I;
Rad := DegToRad(Degree);
TanResult := Tan( Rad);
if InRange(TanResult, -1.00001, 1.00001) then
begin
LogMsg := Format(' Grad: %3.d - Rad: %2.4f - Tan: %2.4f', [I, Rad, TanResult]);
end
else
LogMsg := Format(' Ungültige Eingabe für Tan(%3.d) - Rad: %2.4f - Tan: %2.4f', [I, Rad, TanResult]) ;
Writeln(LogMsg);
end;
end;
begin
try
Main;
Readln
except
on E: Exception do
Writeln(E.ClassName, ' : ', E. Message);
end;
end.
|
|
Zitat
|