• ベストアンサー

textfield内の数値の計算はできますか?例[(1+2)/4]

ユーザーがテキストフィールド内に入力した数値を計算できるようなプログラムを作ろうと思っています。一つ一つカッコがあるかないかと四則演算の強さを設定してプログラムを作ってみましたが計算エラーが多く困難であることが分かりました。そこで、テキストフィールド内の計算を簡単にできる方法もしくはどこかにそのようなケースで使えるプログラムを教えてください。卒業研究の締め切りが迫っていてとても困っています。ご協力よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.1

まともに見るままに初心者的に取り組むと「計算エラーが多く困難である」ことが判ります。これは有名な問題で、「逆ポーランド記法」(Reverse Polish Notation)やその他の法で処理するもので、コンパイラを作るときの主要な問題なんです。情報処理の教科書に載っています。アルゴリズムの辞典にも必ず載っています。あとスタックとキューを使います。 http://page.freett.com/cardno4/SelfStudy/1syu/IStady1Syu02_001.htmlなど多数。逆ポーランド記法でWEB照会のこと。 「卒業研究の締め切りが迫っていてとても困っています」 段階では、別の方法を探るべきではと思います。出来あがっているソフトを使えないかとか。

dandytakeshi
質問者

お礼

的確な解答ありがとうございます。imogasiさんのアドバイスに書かれていたコンパイラについて調べてみましたが、だいたいの仕組みは理解しましたが指摘されたように卒業研究として発表するにはあまりに時間がないことも分かりました。自分なりにこれからの研究の進め方をいろいろ考えてみようと思います。本当にありがとうございます。

その他の回答 (1)

  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.2

計算できない式を入力したときの処理に難がありますが、eval というメソッドを使うと とても簡単に実現できます。 <script> function calc(form) { form.result.value = eval(form.src.value) } </script> <form> <input type=text size=50 name=src> <input type=button value="calc →" onclick="calc(this.form)"> <input type=text size=10 name=result> </form> あくまで、「入力した式を簡単に計算する方法」であって、式を解釈するプログラムを作る という趣旨の研究であれば、合いませんね

関連するQ&A