ROBOBASIC講座(5/10*4の答え)
先日「FOR...NEXT」の「算術演算子」ところで書いた問いに答えておきます。
問題は、以下です。
a = 4 * 5 / 10
a = 5 / 10 * 4
ここでは算術演算子に優先順位がないということもそうなんですが、あわせて割り算の結果は切り捨てであることを気に留めておいて頂きたいと思い、作った問題です。
まず、は、まず4x5のかけ算をして、a=20/10となります。次に20÷10でa=2になります。しかし、は、まず5÷10を行います。5÷10は、0.5でなく、四捨五入して1になるわけでもなくて、切り捨てて0になります。従って、a=0*4なので、a=0が答えです。
かけ算を先にやることによって、分子が分母割より大きくなるため、正しい答えになれます。
例えば、70点満点の試験を行って100点換算する場合(つまり百分率の計算)をする場合、なんとなく、
百分率(%)=(現在の数値÷その数値の最大値)X 100
という、百分率の公式?が頭にあるので、小数点を扱えない型を利用しているにも関わらず、うっかり、このまま計算してしまいがちです。この計算では全員が0点になってしまいます。
プログラミングの場合は、いつもいつも小数点を扱える型を使っているわけではないので、式を立てる時に、その辺を注意する癖を付けておくといいですね。
| 固定リンク
「ROBOBASIC講座」カテゴリの記事
- IF文の中のIF文(2008.10.31)
- 制限の勧め(2008.10.09)
- ROBOBASIC講座(GYROSET, GYRODIR, GYROSENSE)(2008.09.21)
- ROBOBASIC講座(MOVEPOS、POS)(2008.08.21)
- ROBOBASIC講座(TIPS: FILL文)(2008.07.15)
この記事へのコメントは終了しました。
コメント