0

調べているスプレッドシートのセルの 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)))

プログラムを作成していますが、これを英単語に翻訳して、最初にコーディングする必要がある人が必要です。Excelでセルを表示すると、数式が1行に表示されるため、混乱しているように見えます。まず..疑似コードも役立ちます

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 に答える