Final2018comment
From Prog0
Contents |
問題1講評
(2)
- (c) s>=0 を数学的な表現で ≧ と記入していたものは×にしました
- (d) 解答例以外の回答でも !(i==1 && j==1) と記入していたものは○です。
(3)
- (a) %lf と %lf の間にバックスラッシュを入れてある回答がありましたが、×にしました。
- (b) scanf を forループで回して配列 n に値を格納している人がいましたが、ループカウンタの変数宣言をしてあるものは○、していないものは×としました
問題2講評
全体を通して、数学記号 ≧ 等を使っているものは減点しました。
- (1) マクロ N を参照すべきところで参照していないものは不正解としました。
- (2) 整数型の表示になっていないものは間違いです。
- (3) 要素を書くだけなので、正解率が高くなりました。
- (4) ほとんどの人があっていました。
問題3講評
(1)
- 片方の配列しか宣言していない学生がいた(-2)
- マクロを使用していない学生が比較的多かった(-2)
- セミコロン ; が無い物については、-1点しました
(2)
- scanf の & を忘れている物は-2点にしました
- col, row を逆に入力してプログラムが正しく動作しない書き方になってしまった人がいました(-4)
- リダイレクトを理解できてない可能性のある学生が何人か見受けられた(-1)。(不必要な printf があるなど)
(3)
- ループの中が間違っているものは-3点しました
(4)
- matrix と t_matrix の代入が逆になっている学生が数人いた
- 転置のループで i, j と col, row が対応していない学生がいた(-4)
演習でやった問題だったので、大半の学生はよくできていました。
問題4講評
採点について:
軽微なミスは-1、中程度のミスは1行-2点など。
- (1) この関数は vecmag関数の中でも呼ばれているので、引数の順番が違うのは不可です。
- (2) こちらは解答例と異なる順番でも、(6)と対応が取れている場合は正答としました。
- (3) sp=0 としたものは代入になってしまうので不正解です。
- (5) プロトタイプ宣言と対応しないものは-2点、仮引数の型忘れも-2など。
- (6) 2で割る時に整数型同士の割り算にしてしまうと、小数点以下が切り捨てられて正しい答えが出ません。double型にキャスト(あるいは代入)してから2で割るか、整数でない2.0で割る、0.5倍にするなどが正しいやり方です。できていないものは-1点しました。
- (6) また、面積は正の値なので絶対値をとる処理が必要です。if文で正負場合分けのほか、fabs関数を使った答案も正答としました。数学の絶対値記号をそのまま入れるのは不可。
講評:
- (1)(2) 関数の呼び出しなのに、プロトタイプ宣言のように書いている例が目立った。
- (6) 関数を取り違えていたり、与えられた式と異なる計算をしている例が目立った。また整数型を2で割ってしまう例が多々見られた。