プログラムの算術式は手計算と同じように計算の優先順位が適用される
ここでは電卓とプログラムで演算順序の違いを確認してみましょう。
実験式「3 + 4 × 5 - 6 ÷ 7 = ?」
;3 + 4 × 5 - 6 ÷ 7 //電卓で左の式を入力したとき
;= 7 × 5 - 6 ÷ 7 //一番左の3 + 4の計算結果を求めて
;= 35 - 6 ÷ 7 //続いて一番左の7 × 5の計算結果を求めて
;= 29 ÷ 7 //最後に35 - 6の計算結果を求めて
;= 4.142857142857143 //29 ÷ 7の計算結果(終了)
ddim kotae //実数型変数kotaeを宣言する
kotae = 3.0 //kotaeに3を代入する・・・3.000000
kotae += 4.0 //kotaeに4を足す・・・7.000000
kotae *= 5.0 //kotaeに5を掛ける・・・35.000000
kotae -= 6.0 //kotaeから6を引く・・・29.000000
kotae /= 7.0 //kotaeを7で割る・・・4.142857
mes kotae //kotaeを表示する・・・4.142857
ddim kotae //実数型変数kotaeを宣言する
kotae = 3.0 + 4.0 * 5.0 - 6.0 / 7.0 //実験式を一気に書いたとき
mes kotae //・・・22.142857
ddim kotae //実数型変数kotaeを宣言する
kotae = 3.0 + 4.0 * 5.0 - 6.0 / 7.0 //実験式
;= 3.0 + (4.0 * 5.0) - (6.0 / 7.0) //乗算と除算を優先計算
;3.0 + 20.0 - 0.857143 //加算と減算を計算
mes kotae //・・・22.142857
電卓が計算した答えは「4.142857...」になりました。
HSPが計算した答えは「22.142857」になりました。
この違いは、複数の算術演算子がある演算式の場合、
「()(カッコ)」⇒乗算・除算・剰余算⇒加算・減算をの順に計算します。
一般の電卓で計算するように左から順番に演算するごとに答えを出して、
その答えを元に次の演算を行いません。
実験式を電卓と同じ要領で左から順番に1つずつ演算する場合
優先して計算したい部分の両端に「()(カッコ)」を付けます。
実験式「3 + 4 × 5 - 6 ÷ 7 = ?」⇒「(((3 + 4) × 5) - 6) ÷ 7 = ?」
ddim kotae //実数型変数kotaeを宣言する
kotae = (((3.0 + 4.0) * 5.0) - 6.0) / 7.0 //実験式を()を付けて書いたとき
mes kotae //・・・4.142857
ddim kotae //実数型変数kotaeを宣言する
kotae = (((3.0 + 4.0) * 5.0) - 6.0) / 7.0 //実験式
;kotae = ((7.0 * 5.0) - 6.0) / 7.0 //()の計算を優先
;kotae = (35.0 - 6.0) / 7.0 //()の計算を優先
;kotae = 29.0 / 7.0 //・・・4.142857
mes kotae //・・・4.142857
Copyright © 2002-2025 team.Dakuji All Rights Reserved.