配列に入っている式から四則演算行なうプログラムをperlで書いてみました。 演算子とカッコの優先度を考慮しながら計算するために、逆ポーランド記法に直して計算するようにしています。 use strict; use warnings; { cal(qw|5 + 4 - 3|); cal(qw|5 + 4 * 3 + 12 / 6|); cal(qw|1 + ( 2 + 3 ) * 4|); cal(qw|( 1 + 4 ) * ( 3 + 7 ) / 5|); cal(qw|( ( 2 + 3 ) + 3 * 2 ) - 3 * 2|); } sub cal { my @exp = @_; my @post = convert_to_postfix(@exp); print "exp: ", join(' ',@exp),"\n"; print "postfix: ", join(' ',@p
はじめに プログラマのみなさんなら、きっと算数が苦手でしょう。というのも電卓という便利な道具があるのですから計算は全部そいつに任せてしまうため、どんどん算数ができなくなっていくに違いないからです。 それに専用の電卓がなくとも、たとえばWindowsならば、「電卓」というアプリケーションがあります。 Windowsの電卓はごく普通の電卓なのですが、電卓というのは、「+」や「÷」というボタンを押すと即座に計算してしまうため、たとえば次のような数式は 1 + 2 × 3 = 9 となります。でも小学校の算数で習ったとおり、積や商は、和や差より先に計算しなければいけません。なので本当は 1 + 2 × 3 = 7 となるはずです。実はWindowsの電卓には関数電卓モードというのがあり、このモードでは演算子の優先順位の処理はもちろん、カッコによる順序の変更も可能になっています。 というわけで苦手な
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く