文件名称:attach_20120629133131

介绍说明--下载内容均来自于网络,请自行研究使用

捕获数学函数异常

假如我们要用一个数学函数,比如反正弦函数asin(x),如果变元x的值是由用户提供或某个中间结果,则在调用时必须判断其取值范围是合理,是否满|x|<=1?即



view sourceprint?

1.if(fabs(x)<=1)

2.

y=asin(x)

3.else

4.

y=…

对数函数也可作类似的处理。但是如果遇到幂函数pow(x,y)时,问题就不那么简单了。仔细分析将发现:



y

x 负小数 负整数 0 整数 小数

负小数 无意义 有意义 有意义 有意义 无意义

负整数 无意义 有意义 有意义 有意义 无意义

0 无意义 无意义 有意义 有意义 有意义

整数 有意义 有意义 有意义 有意义 有意义

小数 有意义 有意义 有意义 有意义 有意义



例如:pow(-1.2,-1.2)=-1.#IND。如果要编程处理,至少需要六个if语句。即使如此,也有麻烦:如何判断一个double型的变元的值是整数还是小数?



为了处理数学函数运算中出现的异常,VC++提供了一个函数_mather,其原型在中:



view sourceprint?

1.int _matherr( struct _exception *except ) -Capture mathematical function abnormalities
(系统自动生成,下载前可以参看下载内容)

下载文件列表





MathErrTest

...........\MathErrTest

...........\...........\copyright.bat

...........\...........\MathErrTest.cpp

...........\...........\MathErrTest.dsp

...........\...........\MathErrTest.dsw

...........\...........\MathErrTest.plg

...........\...........\StdAfx.cpp

...........\...........\StdAfx.h

相关说明

  • 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
  • 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度更多...
  • 请直接用浏览器下载本站内容,不要使用迅雷之类的下载软件,用WinRAR最新版进行解压.
  • 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
  • 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
  • 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.

相关评论

暂无评论内容.

发表评论

*主  题:
*内  容:
*验 证 码:

源码中国 www.ymcn.org