演習課題B:計算機序論2(2010年度)

計算機序論2, 2010/11/01a

注意

必修課題は必ず提出して下さい。
発展課題は提出できなくても構いません(必修だけで演習100点になるように配点します)。

B1.(必修):CG物体ファイル内の要素数の数え上げ

ベースとなるプログラム(readtest-object-skeleton-inputted.c)に対して、 デフォルトないしコマンドライン引数でCG物体ファイル(*-object.txt)を与えたとき、

の両方を表示する改造を、print_all_ic2OBJECT()関数内でしなさい。

提出物


B2.(必修):大域変数の外部宣言化

ベースとなるプログラム(readtest-object-skeleton-inputted.c)に対して、 この先、main()関数以外の全ての関数を別ファイルにして分割コンパイルすることを考えたとき、 現在の大域変数を外部宣言する場合にはどのように書けばよいか。 現在の大域変数1つごとに外部宣言による表現を1行ずつ書きなさい。

提出物


B3.(必修):書式に従わないファイルフォーマットに対する振る舞い

ベースとなるプログラム(readtest-object-skeleton-inputted.c) について、 CG物体のファイルフォーマット(ic2-format-2010.txt) に従わない行があった場合、このプログラムはどのような振る舞いを示すか。

a-dのそれぞれについて、その動作を決定していると思われるソースコードの一部を抜き出して、 そのソースコード部分にコメントを加えるようにして、プログラムがどう動作するかを述べること。

提出物


B10.(発展):CG物体の外接矩形

プログラムに渡されたCG物体全体の外接矩形を求めて表示するic2_boundingbox()関数を用意し、もとのプログラムに加えること。

main()の最後にその関数を呼び出して、外接矩形情報を表示すること。
1つのファイルに複数のオブジェクトが含まれている場合、それら全てを含む外接矩形を求めること。
なお、サイズは最大値から最小値を引いたものである。

// 学籍番号 20091234567890
// 氏名     筑波 寝太郎
// 課題名   A1-1
#include <stdio.h>
‥‥

void ic2_boundingbox(void){
  ‥ここを書く‥
  printf("最小値(%g, %g, %g), 最大値(%g, %g, %g), サイズ(%g, %g, %g)\n", ‥‥);
  return;
}

int main(‥‥) {
  
  ic2_boundingbox();
  return 0;
}

提出物


kameda[at]iit.tsukuba.ac.jp