Delphi6 数学单元(math.pas)中的函数错误!!!

housisong 2002-08-12 06:54:22
Delphi6 数学单元(math.pas)中的函数错误!!!

(也许只是我使用的版本有问题,希望大家也看看!)

//反余切函数
ArcCot(x)=ArcTan(1/X) //Delphi6 误为 ArcCot(x)=Tan(1/X) !
//反正割函数
ArcSec(x)=ArcCos(1/X) //Delphi6 误为 ArcSec(x)=Cos(1/X) !
//反余割函数
ArcCsc(x)=ArcSin(1/X) //Delphi6 误为 ArcCsc(x)=Sin(1/X) !

//反双曲余切函数
ArcCotH(x)=ArcTanH(1/X) //Delphi6 误为 ArcCotH(x)=1/ArcCot(X) !
//反双曲正割函数
ArcSecH(x)=ArcCosH(1/X) //Delphi6 误为 ArcSecH(x)=1/ArcSec(X) !
//反双曲余割函数
ArcCscH(x)=ArcSinH(1/X) //Delphi6 误为 ArcCscH(x)=1/ArcCsc(X) !


你可以试验一下以下的代码:

var
x :extended;
begin
x:=3;
x:=csc(arccsc(x));//等等,测试其他函数时请注意值域
self.Edit1.Text:=floattostr(x);
end;

如果x不约等于3就有错
改正请看上面,然后重新编译Math.pas单元

...全文
60 17 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
housisong 2002-08-29
  • 打赏
  • 举报
回复
好像D7没有问题
erickleung 2002-08-24
  • 打赏
  • 举报
回复
我看错了, D7 是如下的:

function ArcCot(const X: Extended): Extended;
begin
if IsZero(X) then
Result := PI / 2
else
Result := ArcTan(1 / X);
end;

function ArcSec(const X: Extended): Extended;
begin
if IsZero(X) then
Result := Infinity
else
Result := ArcCos(1 / X);
end;

function ArcCsc(const X: Extended): Extended;
begin
if IsZero(X) then
Result := Infinity
else
Result := ArcSin(1 / X);
end;

function ArcCotH(const X: Extended): Extended;
begin
if SameValue(X, 1) then
Result := Infinity
else if SameValue(X, -1) then
Result := NegInfinity
else
Result := 0.5 * Ln((X + 1) / (X - 1));
end;

function ArcSecH(const X: Extended): Extended;
begin
if IsZero(X) then
Result := Infinity
else if SameValue(X, 1) then
Result := 0
else
Result := Ln((Sqrt(1 - X * X) + 1) / X);
end;

function ArcCscH(const X: Extended): Extended;
begin
Result := Ln(Sqrt(1 + (1 / (X * X)) + (1 / X)));
end;
改好了吧
erickleung 2002-08-24
  • 打赏
  • 举报
回复
D7也有相同的问题!!
wxn1983 2002-08-24
  • 打赏
  • 举报
回复
也没发现错误呀明天试试吧。
Eastunfail 2002-08-24
  • 打赏
  • 举报
回复
是的,呵呵,Borland好粗心阿
netlib 2002-08-24
  • 打赏
  • 举报
回复
我用正版D6,没有这个问题。
tigerchina 2002-08-17
  • 打赏
  • 举报
回复
我刚查过5和4的Math文件,都没有这三个函数,看来是Delphi6在Math中新提供的。而且看Math文件,发现确实是错了。
smhpnuaa 2002-08-17
  • 打赏
  • 举报
回复
向borland反映一下!
耙子 2002-08-15
  • 打赏
  • 举报
回复
我还在用delphi 5,没用6,
5上面是正常的。

我想d6不至于出现如此的大bug吧?d6也出来很久了,应该很多人用在数学上过,如果有这问题肯定早被发现了。
housisong 2002-08-15
  • 打赏
  • 举报
回复
有谁能帮忙测试一下上面提到的六个函数
ArcCot(x)=ArcTan(1/X) //Delphi6 误为 ArcCot(x)=Tan(1/X) !
//反正割函数
ArcSec(x)=ArcCos(1/X) //Delphi6 误为 ArcSec(x)=Cos(1/X) !
//反余割函数
ArcCsc(x)=ArcSin(1/X) //Delphi6 误为 ArcCsc(x)=Sin(1/X) !

//反双曲余切函数
ArcCotH(x)=ArcTanH(1/X) //Delphi6 误为 ArcCotH(x)=1/ArcCot(X) !
//反双曲正割函数
ArcSecH(x)=ArcCosH(1/X) //Delphi6 误为 ArcSecH(x)=1/ArcSec(X) !
//反双曲余割函数
ArcCscH(x)=ArcSinH(1/X) //Delphi6 误为 ArcCscH(x)=1/ArcCsc(X) !


torrentwang 2002-08-13
  • 打赏
  • 举报
回复
关注
hwkknd 2002-08-13
  • 打赏
  • 举报
回复
D6的Trunc我用过N次,没出现过这种情况……
telepan 2002-08-13
  • 打赏
  • 举报
回复
不会吧!好像忘完了,记不起具体的意思了!
至少楼上的我看不懂,好像trunc没有错呀!
qingniaor 2002-08-12
  • 打赏
  • 举报
回复
难免,delphi也是人写的!不过delphi这样会闯大祸了!trunc函数也有错误
trunc(200)=200
I=200,trunc(I)=199
erickleung 2002-08-12
  • 打赏
  • 举报
回复
不曾用过math.pas.
谢谢分享.
madyak 2002-08-12
  • 打赏
  • 举报
回复
没注意过!
zhc 2002-08-12
  • 打赏
  • 举报
回复
关注
(*****************************************************)(* *)(* Advanced Encryption Standard (AES) *)(* Interface Unit v1.0 *)(* *)(* Readme.txt 自述文档 2004.12.03 *)(* *)(*****************************************************)(* 介绍 *)AES 是一种使用安全码进行信息加密的标准。它支持 128 位、192 位和 256 位长度的密匙。加密算法的实现在 ElAES.pas 单元。本人将其加密方法封装在 AES.pas 单元,只需要调用两个标准函数就可以完成字符串的加密和解密。(* 文件列表 *)..Source AES 单元文件..Example 演示程序(* 适用平台 *)这份 Delphi 的执行基于 FIPS 草案标准,并且 AES 原作者已经通过了以下平台的测试: Delphi 4 Delphi 5 C++ Builder 5 Kylix 1本人又重新进行了补充测试,并顺利通过了以下平台: Delphi 6 Delphi 7特别说明: 在 Delphi 3 标准版进行测试时,因为缺少 Longword 数据类型和 Math.pas 文件,并且不支持 overload 指示字,所以不能正常编译。(* 演示程序 *)这个示例程序演示了如何使用 AES 模块进行字符串的加密和解密过程。(* 使用方法 *)在程序引用 AES 单元。调用 EncryptString 和 DecryptString 进行字符串的加密和解密。详细参阅 Example 文件夹的例子。 (* 许可协议 *)您可以随意拷贝、使用和发部这个程序,但是必须保证程序的完整性,包括作者信息、版权信息和说明文档。请勿修改作者和版权信息。 这个程序基于 Mozilla Public License Version 1.1 许可,如果您使用了这个程序,那么就意味着您同意了许可协议的所有内容。您可以在以下站点获取一个许可协议的副本。 http://www.mozilla.org/MPL/许可协议的发布基于 "AS IS" 基础,详细请阅读该许可协议。Alexander Ionov 是 AES 算法的最初作者,保留所有权利。(* 作者信息 *)ElAES 作者:EldoS, Alexander IonovAES Interface Unit 作者:杨泽晖 (Jorlen Young)您可以通过以下方式与我取得联系。WebSite: http://jorlen.51.net/ http://mycampus.03.com.cn/ http://mycampus.1155.net/ http://mycampus.ecoo.net/ http://mycampus.5500.org/Email: stanley_xfx@163.com

5,930

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧