表は、配列を用いた連結セルによるリストの内部表現であり、リスト[東京、品川、名古屋、新大阪]を表している。
このリストを[東京、新横浜、名古屋、新大阪]に変化させる操作はどれか。
ここで、A(i , j )は表の第i 行第j 列の要素を表す。
例えば、A(3, 1)=“名古屋” であり、A(3, 2)=4である。
また、→は代入を表す。
A |
列 |
1 |
2 |
行 |
1 |
“東京” |
2 |
2 |
“品川” |
3 |
3 |
“名古屋” |
4 |
4 |
“新大阪” |
0 |
5 |
“新横浜” |
|
|
第1の操作 |
第2の操作 |
ア |
5→A(1, 2) |
A(A(1, 2), 2)→A(5, 2) |
イ |
5→A(1, 2) |
A(A(2, 2), 2)→A(5, 2) |
ウ |
A(A(1, 2), 2)→A(5, 2) |
5→A(1, 2) |
エ |
A(A(2, 2), 2)→A(5, 2) |
5→A(1, 2) |
答え ウ
【解説】
[東京、品川、名古屋、新大阪]を表している連結セルを[東京、新横浜、名古屋、新大阪]に変えると、
A |
列 |
1 |
2 |
行 |
1 |
“東京” |
2 → 5 |
2 |
“品川” |
3 |
3 |
“名古屋” |
4 |
4 |
“新大阪” |
0 |
5 |
“新横浜” |
3 |
になる。
すなわち、“東京”の次のデータを指す2列目の値を“新横浜”を示す“5”にする『 5→A(1, 2)』と、“新横浜”の次のデータを示す2列目の値を“名古屋”を示す“3”にする『 3→A(5, 2)』を行う。
まず、1行目の“東京”の次の“品川”の次のデータを指す2列目の値を、5行目の“新横浜”の次のデータを指す2列目にコピーする。
A(A(1, 2), 2)→A(5, 2)
つぎに、1行目の“東京”の次のデータを指す2列目の値を“新横浜”を示す“5”にする。
5→A(1, 2)
先に“東京”の次のデータを指す2列目の値を“品川”を示す“5”にしたくなりますが、そうすると“東京”から“品川”への経路が切れてしまい、“品川”の次のデータを示す2列目の値を“新横浜”の2列目にコピーする操作ができなくなってしまいます。
【キーワード】
・連結セル
【キーワードの解説】
- 連結セル
一連のデータの表現方法。
問題の表では、1列目Aがデータの項番を示し、2列目1がデータの値を、3列目の2が次のデータの項番を示している。
もっと、「セル」について調べてみよう。
戻る
一覧へ
次へ
|