cd c
を実行した後で( ~/c
に移動した後で )、以下の課題を
やってみよ。
平面上の点をあらわす構造体 Point を用いて、 三角形の 3 つの頂点座標をメンバーに持つ構造体 Triangle を 以下のように定義した。
struct Point { float x; float y; }; struct Triangle { struct Point a, b, c; };
この定義を用いて、構造体 Triangle 型の変数 tri を宣言し、
3 頂点が
になるように初期化するプログラムを作り、
頂点座標を次のように出力せよ。
三角形の頂点 ( 1.0, 1.0), ( 5.0, 3.0), ( 4.0, 2.0)
実際には、実数で出力すると値がもう少し長くなるが、それは気にしなくて良い。
課題 20.1 を用いて、三角形の面積を計算するプログラムを作成せよ。
但し、三角形の面積 は、
3 つの頂点の座標を
とした場合、次の式で計算される。
頂点は、課題 20.1 で初期化した値を用いよ。
また、上の式では絶対値の記号 | |
を用いているが、
面積は正になるように if 文を用いてプログラムすれば良い。
課題 20.2 を用いて、三角形の面積を計算する関数を作成せよ。但し、 関数の引数は構造体 Triangle へのポインタであるとし、関数の 返値は三角形の面積である。
struct Point { float x; float y; }; struct Triangle { struct Point a, b, c; }; /* 関数宣言をここに */ main(){ struct Triangle tri = { ... }; /* 課題 20.2 と同じ */ float s; s = menseki( &tri ); printf("面積は %f \n", s); } ... menseki(....){ /* 関数の型宣言、引数に注意せよ */ .... }
作成したプログラムをメイルで creport まで送りなさい。題は、kadai20 とする事。