C
C
Java2 SE 5.0 API
Java2 SE 1.4 API
Java2 EE API
Struts 1.0.2
MSDN2 Library
MySQL 5.1
MySQL 4.1
HTMLリファレンス
CSSリファレンス
JavaScript
基本カラーチャート
カレンダー
 最新PG・講座情報
 最新ニュース
 電子辞書・辞典
ご意見・ご要望はこちらまで

課題

C

逆ポーランド記法による電卓


1.プログラムの仕様

 配列によるスタックを利用して逆ポーランド記法による簡単な電卓のプログラムを作成して下さい。
 プロジェクト名を dentaku とし、ソースファイル名は dentaku.c とすること。

  • 計算する数値の最大値は100個とすること。
  • 計算する数値は配列に格納し、スタックとして設定/取り出しを行う。
  • スタックの設定/取り出し部分は関数として作成すること。(push/pop)
  • 数式を入力し、リターンキー入力後に計算の答えを表示する。(繰り返し行い、Ctrl+Zで終了)
  • 数式は逆ポーランド記法で記述すること。
  • 数式の順序に従い計算を行い、計算は整数値の四則演算のみとする。( + - * / )
  • 計算の答えは実数として小数点2位まで表示すること。
  • 数値、四則演算子、空白、タブ以外の入力は「数値を入力して下さい!」を表示する。
  • 数値がスタック領域を超えた場合は「スタック・オーバフロー!」を表示する。
  • スタック領域がないのにリターンキー入力を押した場合は「スタックに値はありません!」を表示する。

2.関数の仕様

 スタックの設定/取り出し部分の関数の仕様を以下に示します。

No. 関数名 内容 引数 戻り値 エラー対処
1 push スタックの設定 設定する値 (double) なし (void) 「スタック・オーバフロー」表示
2 pop スタックの取り出し なし (void) 取り出した値 (double) 「スタックに値はありません!」表示


3.結果のサンプル

 逆ポーランド記法による入力で電卓計算を行った結果サンプルです。
 → dentaku.c (2KB)

 ここでは次のような数値でテストしています。

No. 通常の数式 逆ポーランド記法の数式 答え
1 (3+2)*(15/3) 3 2+15 3/* 25.00
2 (3*4-6)*8 3 4*6-8* 48.00
3 15-8*7/2 15 8 7* 2/- -13.00
4 1+2+3+4+5 1 2+3+4+5+ 15.00
5 10/3-5/2 10 3/5 2/- 0.83
6 -5+2 0 5-2+ -3.00
7 5+a 5 a+ 数値を入力して下さい!
8 5+3 5+3 (誤り) スタックに値はありません!
 注)これ以外は自分でテスト仕様書を作り、十分なテストして下さい。


 注)エラー時に処理を中止する場合は exit関数(stdlib.h) を使用して下さい。


 
 INDEX
  課題 C 逆ポーランド記法による電卓
1.プログラムの仕様
  2.逆ポーランド記法とスタック
  3.データの流れ
Top
Copyright© 2003-2007 FumikiChan All Rights Reserved.
http://www.fumikichan.net/