情報科学概論
2001.5.15の復習課題に関するヒントおよびコメント
【2001.5.30更新】




課題

半径5cmの円がある。任意の中心角(0°から360°まで)をコマンドライン引数もしくはテキストファイルで与えたときに円弧および弦の長さを表示するスクリプトを作成せよ。ここで円周率πは3.14159とし、結果は有効数字4桁で表示すること。

注意1
三角関数などの数学関数を扱うためにはスクリプトの冒頭に

include Math

というおまじないを入れておく。(教科書p.84参照)

注意2
ARGVなどで読み込んだ引数を数値として計算に使用するためには別途数値化が必要である。to_fメソッドを利用して文字列から数値に変更すること。(教科書p81参照)

注意3
答を4桁で出力するためには教科書p.91から説明が始まるprintfメソッドを使用する必要がある。方法は、

printf("円弧の長さは %1.3e, 弦の長さは %1.3e である。\n", arc, chord)

のように使用する。

作成したスクリプトは添付ファイルとして電子メールに添えて提出せよ。添付ファイルの名称は「学生番号.rb」とすること。(たとえば、s014083.rbなど。)また、ファイル名に全角文字を使用しないこと。


現状でわかっている問題点

  1. 提出方法を守らない

    上記の提出方法を守っていない場合には採点できないので気を付けること。

  2. printfの注意を守らない

    有効数字を指定しているので上記の注意3を守ること。ここで、%1.3e%1.3fが違うものであることに注意。eは指数表示を使用し、fは通常の浮動小数である。fの場合の1.3の意味は整数部分は「最低1桁」で、小数部分を3桁とる、である。今問題なのはその「最低1桁」の部分であり、10以上の数になると、自動的に整数部分を2桁取ることになるので、有効数字4桁の条件を満足しない。(10.000は5桁である)

    そういうことがあるので、注意3において、%1.3e と書いているのに守られないのが実に不思議である!?1.3e とは整数部1桁、小数部3桁で指数表示を利用して数値を表現する。すなわち 10.00 1.000×10 (表示は 1.000e+01 となり、関数電卓などと同じように10の1乗をかける記号が e+01 である。)という書き方になる。これならば有効数字が何桁かが明確に分かる。とりあえず、有効数字とは何かよく勉強しておくこと。

  3. 弧度法に対する理解

    ラジアンを勉強すること。角度をラジアンで表すと円弧の長さは半径をr中心角をθとしてrθである。よって、円周について考えると角度が2πであるから2πrとなってよく知っている公式に一致する。

  4. 計算間違い

    ぱっと見てわかるような角度(180°とか360°など)を入れてちゃんと合っているか確認すること。


目次ページに戻る