学籍番号 | 氏名 |
(3 × 2)
(1) | (A), (D) | (2) | (B), (E) |
(3 × 4)
(1) | p1.intersects(p2.getBounds2D()) |
(2) | (int)(Math.random() * (width - xMax)) |
(4) | shape.translate(x, y); |
(5) | p.contains(0.5 * width, 0.5 * height) |
(1, 1, 1, 1, 2, 3, 3)
(1) | extends JPanel implements ActionListener | ||
(2) | extends JPanel | ||
(3) | new NumHandler(0) | ||
(4) | new NumHandler(1) | ||
(5) | new OpHandler() | ||
(6) | new OpHandler() { |
||
@Override | |||
public int calculate(int x, int y) { | |||
return x - y; | |||
} | |||
} | |||
(9) | ev -> { |
||
current = 0; append = true; auto_e = false; | |||
updateDisplay(); | |||
} | |||
(4 × 2)
(1) | [(1, 0), (1, 1), (0, 1), (-1, 1), (-1, 0)] |
(2) | [(3, 1), (5, 3), (7, 3), (5, 1), (7, 5), (13, 5), (11, 3), (11, 7), (17, 7), (13, 3)] |
(4 × 2)
(1) | (C) | (2) | (B), (E) |
(3, 9)
(1) | 2 行目の public を private に変える | ||
(2) | 緋鯉 ツバス オボコ | ||
緋鯉 ハマチ オボコ | |||
緋鯉 ハマチ オボコ | |||
緋龍 ブリ ボラ | |||
(4 × 3)
(1) | extends JPanel implements Runnable, KeyListener |
(2) | thread == thisThread |
(3) | thread = null; |
全体的に、昨年度よりも難化しているが、 S, A, B, C, X の分布を見る限り、本年度のほうが望ましい難易度だった。
(1) はほとんどの人ができていたが、(2) は D を選んでしまう人が多かった。
もし null
へのアクセスをコンパイル時に検出できれば、どれほど多くの人が助かることか…
中間テストのときにも同じようなコメントをしたが、ここを間違えるようでは、Java を勉強する甲斐がない。
(1), (2) はほとんどの人ができていたが、(3) 〜 (5) を間違える人が意外に多い。new
をつけ忘れるという間違いも多かった。(6) は正解率が低かった。(9) は最後の updateDisplay();
が抜けている解答が多かった。
(2) の途中から計算をミスっている人はときどきいるが、正答率は高かった。
(1) は、正答率はまあまあだったが、C 言語を関数型言語と思っている人が意外に多い。 C 言語は代表的な命令型言語である。 (2) の正答率が特に低かった。年代を覚える必要はないが、 Fortran は最古のプログラミング言語であること、 C# が Java のp対抗として登場したこと、 Java は C の文法を参考にして、C++ の複雑さのアンチテーゼとして登場したこと、 Kotlin は、よりよい Java を目指していること、など言語間の関係を知っていれば答えられるはずである。 Python は、Java より前からあることは、最終週の授業で触れた。
(1) はほとんどの人ができていたが、(2) は色々な間違いがあった。 “サカナ” という出力が含まれると思っている人の多さには驚きである。 何か、大きな勘違いをしている。 また、解答が 4 行にならなかった人は、 (C 言語と共通の)制御構造を復習する必要がある。
(1) は Runnable
と KeyListener
のどちらかしか書いていない人が多かった。
(2) は thread = thisThread
という 1 年生みたいな間違いがときどきあった。