如何解释帕斯卡方程?

问题描述 投票:0回答:2

如何用 Pascal 写出以下方程?

enter image description here

等于

pow(x, 2) / (pow(pow(16 - x*x, 1/2)), 3)
吗?

pascal
2个回答
5
投票

你没有提到方言,所以我假设一些仍在活跃使用的东西,比如 Lazarus/FPC/Delphi

Squared 有一个单独的函数 sqr(),平方根 sqrt() 也是如此。对于其他值,使用 math.power (将数学添加到您的使用子句中)。

因此 sqr(x)/power(sqrt(16-sqr(x)),3);

根据经验,最简单的表达式给出最好的精度。


0
投票

[...]以下方程[...]

这不是等式。 方程有一个等号,因此得名方程

[…]是否等于[…]

这取决于x的域。 显然,对于 x=+4 和 x=−4,表达式未定义。

ISO 标准 10206“扩展 Pascal”定义了运算符

**
pow
。 它们的区别在于接受的操作数的数据类型和返回值的数据类型。

  • 如果您只对 x∊ (−4, +4) 感兴趣,i。 e.你取非负值的平方根,那么Marco的表达式就足够了。 在扩展帕斯卡中你可以这样写:
    sqr(x) ∕ (sqrt(16 − sqr(x)) pow 3)
    
  • 考虑潜伏者的建议
    pow
    不接受非-
    integer
    指数。
    sqr(x) ∕ ((16 − sqr(x)) ** 1.5)
    
  • 但是,如果基数为负,则幂的结果不一定是
    real
    。 由于
    **
    的结果数据类型取决于基本操作数的数据类型,因此您需要将其提升为 ℂ。
    sqr(x) ∕ (cmplx(16 − sqr(x), 0.0) ** 1.5)
    
© www.soinside.com 2019 - 2024. All rights reserved.