- ベストアンサー
モジュール分割とユーザ関数
- c言語初心者です。ユーザー関数を作って、n進数の四則演算プログラムをモジュール分割する方法を教えてください。
- n進数の四則演算をするためのユーザー関数を作成し、それをモジュール分割してプログラムに組み込む方法を教えてください。
- c言語の初心者です。n進数の四則演算をするプログラムをモジュール分割しようと思っています。具体的な分割方法を教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
★宿題っぽいですね。 ・とりあえず、単純に入力部、演算部、表示部の3つに分けてみる。 ・入力部とは、while 文で getchar() 関数で行っている処理です。 また、その入力部も (1)n進数の入力 (2)数値1の入力 (3)数値2の入力 (4)演算子の入力 と4つに分けます。ただし、数値1と数値2はほぼ同じ処理なので、このような処理に ユーザ関数を作成してモジュール化するのです。 ・演算部とは、switch(op) の計算部分です。 ・表示部とは、最後の1行の printf 文のことです。 ・下に大まかなユーザ関数とそのメイン関数を載せます。 サンプル: /* 関数のプロトタイプ宣言 */ int get_ntype( void ); ←n進数の入力 int get_number( void ); ←数値の入力 int get_operation( void ); ←演算子の入力 int calc_ntype( int num1, int num2, int ntype ); ←n進数の演算処理 void calc_print( int ans ); ←演算結果を表示 int main( void ) { int ntype; ←n進数を表す変数名ならば、base とか、radix の名前が良いかも。 int num1; int num2; int op; int ans; if ( (ntype = get_ntype()) < 0 ){ printf( "エラーメッセージ(1)\n" ); return( 1 ); } if ( (num1 = get_number()) < 0 ){ printf( "エラーメッセージ(2)\n" ); return( 2 ); } if ( (op = get_operation()) < 0 ){ printf( "エラーメッセージ(3)\n" ); return( 3 ); } if ( (num2 = get_number()) < 0 ){ printf( "エラーメッセージ(4)\n" ); return( 4 ); } if ( (ans = calc_ntype(num1,num2,ntype)) < 0 ){ printf( "エラーメッセージ(5)\n" ); return( 5 ); } calc_print( ans ); return( 0 ); } その他: ・メイン関数とユーザ関数のプロトタイプ宣言を紹介しました。 上記のを参考にユーザ関数の作成法を学んで下さい。 なお、すべてのユーザ関数がエラーを起こすと -1 を返すように作成して下さい。 エラーのチェックと表示は main 関数で行っています。→このように作成するとすっきり出来ます。 ・以上。参考に!