『Cプログラミング診断室』目次次(第1章 普通の初心者 まとめ)

第1章 普通の初心者

課題


途中で、関数の長さを求めるプログラムと、関数の長さのヒストグラム(度数分布)のことを述 べました。ここでそれらの仕様について書きます。ぜひ、自分で作ってみてください。

■課題1 関数長を求める

標準入力からCのソースプログラムを読み込み、標準出力に、関数の長さ(行数)と名前を1行 で出力するプログラム funclen を作ってみよう。

関数の行数は、ブロックの始まりの { から、終わりの } の間の行数とします。ブロック開始の { と、終了の } は、必ず行の先頭から始まるものとします。

この仕様にしたがって funclen が動くとすると、

      funclen < mlink3.c
と入力すると、次のように表示されます。
          248   call_melsec
           28   status_mel
           33   watch_menu
          164   input_para
           94   input_batch
           69   main

■課題2  ヒストグラムを作る

関数の数が少ないうちは、関数長を求めるプログラムだけで役立ちますが、大きなソースで、関 数がいっぱいあるとき、全体の感じをつかむにはグラフ化が必要です。

課題1で作った funclen とパイプで結び、

        funclen < mlink3.c | histogram
とすると、図1−1のヒストグラムが出力されるプログラム histogram を作ってみよう。

関数長の出力を標準入力から読み込み、グラフを作るものとします。関数名部分は無視します。 ヒストグラムの各クラスの幅はオプションにし、省略時は幅を10にします。

回答例は、巻末にあります。



Copyright1996 Hirofumi Fujiwara. No reproduction or republication without written permission
『Cプログラミング診断室』目次次(第1章 普通の初心者 まとめ)