演習課題1-14

二次元配列−3x3行列の表示、行・列の入れ替え、転置行列

問題

以下の機能を選択実行するプログラムを作成する。各機能は機能番号入力で指定する。

  1. 行列(要素は整数型、3行x3列)に値を入力する
  2. 行列を表示する
  3. 利用者が入力した列番号に基づいて、行列の2つの列を入れ替える
  4. 利用者が入力した行番号に基づいて、行列の2つの行を入れ替える
  5. 転置行列を求める

演習問題の考え方

1) プログラムを1つにまとめる

2) プログラムの構造

3) 機能の一覧

アルゴリズム

定数: 配列の行数 N 3

配列の列数 M 3

定数: 機能番号「終了」 0

機能番号「値の入力」 1

機能番号「表示」 2

機能番号「列の入れ替え」 3

機能番号「行の入れ替え」 4

機能番号「転置」 5

大域変数: 配列 int matrix[N][M]

主プログラム

変数: 機能番号 int functionNumber

入替えする列番号 int column1,column2
1. 機能の一覧を表示する。
2. 機能番号を入力する。
3. 機能番号が「終了」でない限り以下の処理を繰り返す。
3-1. 「値の入力」が指定されたならば、行列に値を入力する。
3-2. 「表示」が指定されたならば、行列を表示する。
3-3. 「列の入れ替え」が指定されたならば、以下の処理を実行する。
3-3-1. 入れ替える列の番号column1, column2を入力する。
3-3-2. 配列のcolumn1列とcolumn2列を入れ替える。
3-4. 「行の入れ替え」が指定されたならば、以下の処理を実行する。
3-4-1. 入れ替える行の番号row1, row2を入力する。
3-4-2. 配列のrow1行とrow2行を入れ替える。
3-5. 「転置」が指定されたならば、行列を転置する。
3-6. 機能の一覧を表示する。
3-7. 機能番号を入力する。

行列に値を入力する

引数:なし
1. 各行row に対して以下の処理を繰り返す。
1-1. 当該行の各列column に対して以下の処理を繰り返す。
1-1-1. 行列の row行 column列の要素に値を入力する。

行列を表示する

引数:なし
1. 各行row に対して以下の処理を繰り返す。
1-1. 当該行の各列column に対して以下の処理を繰り返す。
1-1-1. 行列の row行 column列の要素の値を表示する。
1-2. 改行する。

行列の列を入替える

引数: 入れ替え対象の列番号: int column1, column2
1. 各行rowに対して以下の処理を繰り返す。
1-1. 行列の row 行 column1列目の要素とrow 行 column2 列目の要素とを入れ替える。

行列の行を入替える

引数:

入れ替え対象の行番号:

int row1, row2
1. 各列columnに対して以下の処理を繰り返す。
1-1. 行列の row1 行 column列目の要素とrow2 行 column 列目の要素とを入れ替える。

行列を転置する

引数:なし
1. 各行row に対して以下の処理を繰り返す。
1-1. 当該行の0〜row-1番目までの各列column に対して以下の処理を繰り返す。
1-1-1. 行列の row 行 column 列目の要素とcolumn 行 row 列目の要素とを入替える。

機能の一覧を表示する

引数:なし
1. 「機能番号 0 は プログラムを終了する。」と表示する。
2. 「機能番号 1 は 行列に値を入力する。」と表示する。
3. 「機能番号 2 は 行列の値を表示する。」と表示する。
4. 「機能番号 3 は 行列の指定された行を入れ替える。」と表示する。 
5. 「機能番号 4 は 行列の指定された行を入れ替える。」と表示する。
6. 「機能番号 5 は 行列を転置する。」と表示する。

プログラム

レポート

参考