[ [[高橋のページ:http://tortoise1.math.ryukoku.ac.jp/~takataka/index-j.html]] ]
[ [[プログラミングおよび実習II2006]] ]

*プログラミングおよび実習II 2006年10月20日 [#v5b5d76d]

#contents

//&color(#ff0000){工事中};

**ファイルの整理 [#vfe2d9fe]

これまでこの実習では,みなさんのホームディレクトリの中に prog2 というディレクトリを作ってその中に全てのソースを置くようにしてもらってますが,このままそのやり方を続けると,prog2ディレクトリがファイルだらけでわけわかめんなりそうです.今後は以下のように整理することをおすすめします.

「prog2ディレクトリの中に jabcd という名前のディレクトリを作って(例えば今日の場合 abcd = 1020 なので j1020),課題abcd関係のファイルは全てそこに置く」

ディレクトリ作成の方法を忘れた人は,9月29日の実習のページを参照してください.

**今日の課題: 分割コンパイルとmake [#we97e94e]

***課題1020-A(締切: 今日の実習終了時) [#r14ff2dc]

[[課題1006-B>プログラミングおよび実習II/20061006#t4fd0fbc]]のソース selectionsort1.c と,[[課題1013-B>プログラミングおよび実習II/20061013#t4fd0fbc]]のソース bubblesort.c をコピーして,以下のようなファイル構成にしてみましょう.

:printdata.c| 関数 PrintData() を定義する.
:ssort.c| 関数 SelectionSort() を定義する.
:bsort.c| 関数 BubbleSort() を定義する.
:sortmain.c| 関数 main() を定義する.ソートの関数は,SelectionSort() か BubbleSort() のどちらか一方を呼ぶようにして,ちょこっと書き換えることでどちらのソート関数を呼ぶか切り替えられるようにする.

sortmain.c が SelectionSort() を呼ぶ場合と BubbleSort() を呼ぶ場合のそれぞれでどのようにコンパイルすればよいのかよく考えて実際にコンパイル&動作確認してみてください.

***課題1020-B(締切: 今日の実習終了時)[#t4fd0fbc]

課題Aのソースを以下のように修正しましょう.

-関数 SelectionSort() と関数 BubbleSort() それぞれが呼び出されたときに配列の要素同士の交換が何回起こっているか数えるために,ssort.c と bsort.c それぞれの最初の行に nswap という名前のグローバル変数の宣言を追加し,nswapが交換回数を表すようにする
-関数 main() の中で,ソート後に nswap の値を表示する

***課題1020-C(締切: 来週の実習終了時) [#vc378ef2]

まずは,[[makeに関する資料>make犬への道]]を読んで,makeとMakefileのことを学びましょう(基本編までで十分鴨).
わかった気がしたら,実際に課題Bのコンパイル作業を記述したMakefileを作成しましょう.
makeを使って自動的にコンパイルされるところをみせてください.

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS