seaman0601 wrote:
你先說說為什麼是15...(恕刪)
終於有人肯問我這個問題了
很簡單,括弧的算法不是只算裡面的結果之後就可以拆開了
如果括弧前面有係數,值還要乘以係數懂吧
所以30÷1(2)
1(2)這個值會被先算,得到2
於是30÷1(2)=30÷2=15,懂吧
但是現在你的算法是把自己當成程式語言的算法(見39樓)
這就是為什麼算術式要寫成程式要特別當心的緣故
因為30÷1(2)的答案確實就是1 (硬要跟我瞎掰說是60我也沒辦法)
而程式語言的運算子優先程度如果是乘除就會視為優先權一樣大
便會由左至右依序計算,所以程式跑出來後的結果就會變成是錯誤的60
所以當30÷1(2)這個式子我們要寫成程式碼時
就必需最好寫成30÷(1(2)), 多加一層括弧才不會造成程式判斷錯誤,才不會得到錯誤的60這個答案
懂了吧!
大家不用跟我爭辨
不妨捫心自問一下
以前要是出個題目是30÷1(2)
你們是都先算30*1之後再乘以2這種算法
還是先把2乘出來,再用30除呢
而30÷2(2+3)÷5你們在未看這篇討論前
你們難道都是先30÷2這樣的計算法嗎?
別騙人了,懂吧
ChaioPi wrote:
終於有人肯問我這個問題了
很簡單,括弧的算法不是只算裡面的結果之後就可以拆開了
如果括弧前面有係數,值還要乘以係數懂吧
所以30÷1(2)
1(2)這個值會被先算,得到2
於是30÷1(2)=30÷2=15,懂吧
...(恕刪)
括號運算要乘前面係數則係數外要加括號,
中括號大括號不是設好玩的,有它的用途在.
需要先乘上係數的原因是因為係數前面是加減,而不是乘除.
如果你學過基楚的微積分,或著你學過物裡.
在一個只有乘除的運算式裡,係數是可以到處移轉(通常移到算式的最前面去)
如果係數是"/2"則移到最前面的是"1/2" , "*2"移到最前面的是"2"
而不是先算完係數再做運算.
這種在高中物理也有.
回去再看看書吧.



























































































