dポイントプレゼントキャンペーン実施中!

電卓の四則演算のプログラムを探しています。もし知っている方。持っている方いましたら情報提供お願いいたします。

A 回答 (6件)

GNU bc のソースコードを参考にしてみてはどうですか?



cuiの電卓プログラムです。
ただし、べき乗はこの記号”^”を使います。

(10+2)*5
もそのまま計算できます。

参考URL:http://www.vector.co.jp/soft/solaris/sources/se0 …
    • good
    • 0

> 複数計算機能



というのは複素数のことなんですかね。
だとすると、CINTがその全機能を持っています。CINTは、本来C/C++のインタプリタですが、電卓のように使うことも可能です。

累乗の計算は '**' 演算子を使います。この演算子は、標準C/C++の仕様と矛盾するので、コンパイル時に有効にするか無効にするか切替えられるようになっています。
複素数は、complexクラステンプレートを使用することになると思います。

参考URL:http://root.cern.ch/root/Cint.html
    • good
    • 0

四則演算とべき乗計算では扱いが大きく異なります。


左からと右からの違いがあるのですから。
さらに、複素数まで含めた式を扱うには
字句解析ルーチンと構文解析ルーチンが必要です。
私は、この規則をLL(1)文法で書いて
それを、コンパイラコンパイラにかけて
必要なものを作成しました。
 HPには、掲載してあるのですが、ここの規則で書けません。
上の文章の中の語句
LL(1)文法
コンパイラコンパイラ
を手がかりに検索してください。
運がよければ見つかります。
規則なので許してください。ごめんなさい。
    • good
    • 0

★アドバイス


・簡単な式文字列の計算サンプルのソースを下に紹介します。
 http://ruffnex.oc.to/kenji/src/0index.html→下の方にある『CUI電卓プログラム』項目のを。
 http://ruffnex.oc.to/kenji/src/dentaku2.c→『ダウンロード』
 ↑
 このサンプル・ソースをダウンロードします。すると
 int main( void )
 {
  printf( "%d\n", expression() );
  return 0;
 }
 という main() 関数があるが expression() 関数が標準入力から入力された数字、演算子を
 読み込んで計算する仕組みです。このサンプルソースには
 (1)Factor()…カッコ、数値を処理
 (2)MulDiv()…乗算、除算を処理
 (3)AddSub()…加算、減算を処理
 (4)expression()…式の評価
 という4つの関数があります。
 これで『複数計算機能』もサポートできますね。
・べき乗、テキスト保存、履歴ファイル保存、エラーチェックはご自分で追加して下さい。

その他:
・次のリンク先もどうぞ。
 http://kmaebashi.com/programmer/c_yota/calc.html→『その4 「電卓を作ってみよう」』
・以上。

参考URL:http://ruffnex.oc.to/kenji/src/0index.html
    • good
    • 0

内容確認してませんが、


おそらくお望みの機能は入っているかと。

参考URL:http://msdn2.microsoft.com/ja-jp/library/bcd16s4 …
    • good
    • 0

「電卓」といっても、どんなものを想定していますか?


例えば、

1. Windowsに付いているようなGUIの電卓
2. いわゆる電子卓上計算機
3. その他

1.の場合、有効制度をどの程度にするのか補足してください。四則演算とのことなので、関数電卓の機能は不要ですよね。また、GUIを使うのであれば、環境も当然補足してください。
2.の場合、ハードウェアの仕様が必要ですし、そもそもC言語が使えるのかどうか、非常に怪しいところです。
3.の場合は、具体的な内容を補足してください。

この回答への補足

計算機能が四則演算とべき乗の計算、複数計算機能も有「例 (10+2)*5=60」

計算結果を画面表示とテキスト保存できるようにする

計算結果の履暦を別のファイルに保存する

計算中0~9または+.-.*./以外が使用されたときはエラーメッセージとともに終了する

結構細かくなってしまいましたが具体的な内容は以上になります。

補足日時:2007/06/08 15:54
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!