情報工学実験2

ソフトウェア実験・手順確認 2009/11/18(水)

今週は単純な「ユークリッドの互除法」を例として用いて、次週以降に行う ソフトウェア実験の手順の確認を行う。

手順

ソフトウェア実験は以下の手順で行う。
  1. 課題を確認する
  2. 動作を書く
  3. アルゴリズムを書く
  4. 関数仕様作成
  5. PAD、変数表作成
  6. コーディング、動作確認
  7. 提出

チェックシート PDF ODT



課題を確認する

各週ごとに課題が与えられるのでその内容を確認する。 なお課題によって担当する教員が異なるので、指導方法も教員毎に異なることに注意せよ。

(例)

課題名: ユークリッドの互除法

課題: ユークリッドの互除法を用いてプログラムを作成し、以下の問いに答えよ。
  1. 2147227 と 2830757 の最大公約数を求めよ。動作時間を time で計って記入すること。 (答え 2357 )
  2. 255063903 と 361736024 の最大公約数を求めよ。動作時間を time で計って記入すること。 (答え 29 )




動作を書く

レポート用紙やチェックシート等に作成したプログラムを実行したときの動作を書く。

(例)

プログラムを実行して端末から2つの自然数を入力する。 もし入力した数が0以下の場合はメッセージを出して終了する。 そうでない場合は2つの数字の最大公約数を表示して終了する。




アルゴリズムを書く

アルゴリズムを A4 レポート紙に書く。

(例)
  1. 入力された自然数を m と n ( m > n )とする。もし n > m なら n と m を入れ替える。
  2. m が n で割り切れるなら、 n を最大公約数とする。
  3. m を n で割った余りを新しい n 、元の n を m として 2 に戻る。



関数仕様作成

関数の仕様を A4 レポート紙に表形式で書く。

注意
  1. アルゴリズム部分は main 関数と別にすること( main 関数だけのプログラムにしないこと )。
  2. main 関数では入出力、画面表示以外の複雑な処理を行わないこと。
  3. 具体的にどのように関数に機能を分割するかは各担当教員の判断になる。

(例)

関数名 戻り値の型 戻り値の意味 引数の型 引数の名前 引数の意味
main int 終了コード 無し 無し 無し
euclid int mとnの最大公約数 int m 自然数1
int n 自然数2




PAD、変数表作成

PADと変数表を A4 レポート紙に書く。

注意

PADと変数表のチェックを受けるまでコーディングをしてはいけない

(例)

ここから実際に今週の作業をしてもらう。 ユークリッドの互除法のPADと変数表を A4 のレポートに作成せよ。 ただし今回はmain関数のPADと変数表は必要ない(次回以降は担当教員の判断による)。 またプログラムはループを用いた方法でも再帰を用いた方法でもどちらでも良い。

変数表の例 ( 例なので自分の書いたPADでは異なっていても良い )
関数名 変数の型 変数の名前 用途
euclid int gcd mとnの最大公約数
int modulo mをnで割った数



コーディング、動作確認

PADと変数表を見ながら実際にコーディングする。 また、完成したプログラムを使用して与えられた課題を解決してA4レポート用紙に 解答を書く。



提出

表紙とともにレポートを提出する。提出する内容は教員によって異なるので 指示を仰ぐこと。担当教員からチェックを受けてこの課題は終了となる。