平成15年 秋期 基本情報技術者 午後 問12
問12 Java次の Java プログラムの説明及びプログラムを読んで,設問に答えよ。 〔プログラムの説明〕 クラス Matrix は,要素の値が実数である行列を表すクラスであり, 主な行列演算のためのメソッドを定義する。 クラス MatrixTest は,クラス Matrix のオブジェクトをテストするメソッド main を 定義するクラスである。 クラス Matrix の仕様は,次のとおりである。 (1) クラス Matrix のコンストラクタは,行列の要素の値を 含む double[][] 型の引数をもつ。 行及び列は null ではなく,各行の要素の個数は同一であるとする。 空行列は考えない。 (2) メソッド toString によって返される行列オブジェクトの文字列表現は, 次のとおりである。 [[1 行 1 列 1 行 2 列 … 1 行 N 列] … [M 行 1 列 M 行 2 列 … M 行 N 列]] MatrixTest 例 1
行列 (3) メソッド add に,行列オブジェクトの引数を渡すと, オブジェクト this と引数のオブジェクトとの和の行列を返す。 行列の和は,二つの行列の行数と列数がそれぞれ等しい場合にだけ定義される。 MatrixTest 例 2
行列 (4) メソッド multiply に,実数の引数を渡すと,オブジェクト this の 要素ごとにその引数を乗算した結果の行列を返す。 MatrixTest 例 3
行列 (5) メソッド multiply に,行列オブジェクトの引数を渡すと, オブジェクト this と引数のオブジェクトとの積の行列を返す。 k 行 l 列の行列 A と, m 行 n 列の行列 B との積 A B は,行列 A の列数と 行列 B の行数が等しい,すなわち l = m で あるときにだけ定義される。 A B = C とするとき, 積の行列 C は k 行 n 列になる。 このとき,行列 C の第 i 行第 j 列の要素の値は, 行列 A の i 行 x 列 (ここで, x = 1,…, l ) の値と行列 B の x 行 j 列の値とを掛けて得られる l 個の実数の和である。 MatrixTest 例4
行列
〔プログラム〕
class MatrixArithmeticException extends Exception { }
public class Matrix {
private double[][] values;
public Matrix(double[][] initVal) {
values = new double[initVal.length][initVal[0].length];
// 配列 initVal の内容を配列 values にコピーする
for (int i = 0; i < initVal.length; i++) {
System.arraycopy(initVal[i], 0, values[i], 0,
initVal[i].length);
}
}
public Matrix add(Matrix m) throws MatrixArithmeticException {
if (設問 プログラム中の
a,c に関する解答群 ア values.length == m.values[0].length イ values.length != m.values[0].length ウ values[0].length == m.values.length エ values[0].length != m.values.length
オ values.length == m.values.length &&
カ values.length != m.values.length ||
キ values[0].length == m.values.length &&
ク values[0].length != m.values.length ||
b,d に関する解答群 ア return (Matrix)null イ return new Matrix() ウ return new Matrix(result) エ return new String(rep) オ return rep カ return rep.getBytes() キ return result ク System.out.println(rep)
[←前の問題] [次の問題→] [問題一覧表] [分野別] [基本情報技術者試験TOP ]
©2004-2025 情報処理試験.jp
|
プライバシーポリシー・著作権・リンク
|
お問合わせ
|
