0

我在我正在查看的电子表格的一个单元格中看到了这个公式

=IF(F28<1189,2.2,IF(F28 <1568,0.000792049*F28+1.258,IF(F28<2491,0.004873 * F28-5.142,0.02269*F28^0.7329)))

我正在创建一个程序,我需要有人用英语单词翻译它,以便我知道先编码哪个,这看起来很混乱,因为如果一个人在 excel 中查看一个单元格,公式会出现在一行中,我不知道哪个会去首先..伪代码也可以提供帮助

4

3 回答 3

1

如果您根据括号缩进,它会有所帮助:

=IF(F28<1189,
    2.2,
    IF(F28 <1568,
        0.000792049*F28+1.258,
        IF(F28<2491,
            0.004873 * F28-5.142,
            0.02269*F28^0.7329
        )
    )
)

所以这意味着:

if (F28 < 1189) {
    return 2.2
} else if (F28 < 1568) {
    return 0.000792049 * F28 + 1.258
} else if (F28 < 2491) {
    return 0.004873 * F28 - 5.142
} else {
    return 0.02269 * F28 ^ 0.7329
}
于 2012-12-03T12:57:56.207 回答
1

应该被IF(a, b, c)视为take value b if a is true or take c otherwise.

所以把它翻译成通常的伪代码(不是简单的英语):

  if F28 < 1189:
    return 2.2
  if F28 < 1568:
    return 0.000792049*F28+1.258
  if F28 < 2491:
    return 0.004873 * F28-5.142
  return 0.02269*F28^0.7329

所以它是一个函数 f(x) 的定义,或者更确切地说F28是这里的变量名称,它由一些规模范围内的几个表达式组成x

于 2012-12-03T12:57:59.660 回答
1

在伪代码中,此公式说明

int val;
if(F28<1189)
    val = 2.2
else if(F28<1568)
    val = 0.000792049*F28+1.258
else if(F28<2491)
    val = 0.004873 * F28-5.142
else
    val =0.02269*F28^0.7329
于 2012-12-03T12:59:01.630 回答