途中で、関数の長さを求めるプログラムと、関数の長さのヒストグラム(度数分布)のことを述 べました。ここでそれらの仕様について書きます。ぜひ、自分で作ってみてください。
■課題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にします。 回答例は、巻末にあります。
|