HOME»基本情報技術者試験掲示板»二次元配列の表記について
投稿する

二次元配列の表記について [5502]

 あかさたんさん(No.1) 
サンプル問題の問9を解いていて疑問に思ったので、教えてください。

下記の①と②は、同じ意味でしょうか。
①配列名[行の要素番号] [列の要素番号]
②配列名[行の要素番号, 列の要素番号]

よろしくお願いいたします。
2024.06.24 22:01
jjon-comさん(No.2) 
FE ゴールドマイスター
いいえ、両者は異なります。

②配列名[行の要素番号, 列の要素番号]
は、情報処理技術者試験の擬似言語における二次元配列の記法です。
この配列の途中の箇所を図で表すならこんな感じです。
+ー+ー+
|12|13| tree[6,1] と tree[6,2]
+ー+ー+
|14|0| tree[7,1] と tree[7,2]
+ー+ー+
|0|0| tree[8,1] と tree[8,2]
+ー+ー+
この二次元配列には次のような特徴があります。
・tree[7,1] や tree[7,2] は参照できるけれど、tree[7] は参照できない。
・すべての列数は同じでなければならない(この場合は2列)

それに対して、次の問題に登場する、

サンプル問題 [科目B] 問9
https://www.fe-siken.com/kakomon/sample/b9.html

①配列名[要素番号] [要素番号]
という表記は「一次元配列を指す一次元配列」を表しています。
(これを 行 や 列 と呼ぶと誤解を生みやすいように私は思います)

この配列の途中の箇所を図で表すならこんな感じです。
        +ー+  +ー+ー+
 tree[6]|P |→|12|13|
        |T |  +ー+ー+
        |R |
        +ー+  +ー+
 tree[7]|P |→|14|
        |T |  +ー+
        |R |
        +ー+
 tree[8]|N |→
        |I |
        |L |
        +ー+
この「配列を指す配列」は次のような特徴があります。
・tree[1]~tree[14] は、ポインタを格納した一次元配列としておそらく実装されている。
・tree[1]~tree[14] の各要素がそれぞれ別の一次元配列を指している。
  (だからこのサンプル問題は、要素数0の配列も含めるなら、15個の一次元配列で構成)
・(いわゆる)列数は可変。要素数2の{12,13}だったり、要素数1の{14}だったりする。
2024.06.25 23:43
jjon-comさん(No.3) 
FE ゴールドマイスター
No.2を別の表現で説明してみます。

サンプル問題 [科目B] 問9に登場するのは、次のような一次元配列の集まりです。

tree という名の一次元配列の要素は、tree[1] と tree[2] と tree[3] と…中略… tree[14]。

tree[1] という名の一次元配列の要素は、tree[1][1] と tree[1][2]。
tree[2] という名の一次元配列の要素は、tree[2][1] と tree[2][2]。
tree[3] という名の一次元配列の要素は、tree[3][1] と tree[3][2]。
…以下、略…
2024.06.25 23:58
 あかさたんさん(No.4) 
jjon-comさん

ご丁寧にありがとうございます。
tree[1][2]のような表記をこの問題で初めて目にしたのですが、この表記についての定義がどこにも見つけられず困っていましたので、大変助かりました。

サンプル問題の問9において、下記と理解しました。
tree[1][2] = {2, 3}[2] = 3

なお、調べている中でかろうじて見つけた下記ページの二次元配列の宣言セクションには、
要素の型  配列名[行数][列数]
と記載があったので、配列名[行数, 列数]と同じ意味なのかと混乱していました。
これは、擬似言語における定義ではないという理解で合っておりますか?

よろしくお願いいたします。
2024.06.26 13:09
jjon-comさん(No.5) 
FE ゴールドマイスター
> ①配列名[行の要素番号] [列の要素番号]
> これは、擬似言語における定義ではないという理解で合っておりますか?

はい,合っています。

情報処理技術者試験における擬似言語の仕様は,
IPA情報処理推進機構が公開している次の文書に載っています。

試験で使用する情報技術に関する用語・プログラム言語など(最新版はVer.5.1)
別紙2 擬似言語の記述形式(基本情報技術者試験,応用情報技術者試験用)
2024.06.26 16:10
 あかさたんさん(No.6) 
jjon-comさん

ありがとうございます、大変助かりました!
2024.06.26 23:17

返信投稿用フォーム

スパム防止のためにスレッド作成日から30日経過したスレッドへの投稿はできません。
© 2010-2024 基本情報技術者試験ドットコム All Rights Reserved.

Pagetop