平成31年度  春  午後  問8  設問3  回答欄f

午前試験免除制度対応!基本情報技術者試験のeラーニング【独習ゼミ】
最後のあがきさん  
(No.1)
平成31年度  春  午後  問8  設問3  回答欄f  についてご教授お願いします。
回答欄fの選択肢  イ・エ  のように配列の中にまた配列?のプログラムが実行された時どういう値が帰ってくるのでしょうか?
この問題の解答はイなのですが解説をみても理解ができず納得がいきません。
https://www.fe-siken.com/kakomon/31_haru/pm08.html
2019.10.19 14:46
えるちーさん 
(No.2)
内側の配列を先に読み取ります。
left[parent[k]]でしたら最初に考えるのはparent[k]です。これは普通の配列ですので、parentという配列のk番目の値と同じだと考えられますね。解説の図であればk=5ですのでparent[k]=6となります。
その後、全体を考えます。parent[k]=6と置き換えられますのでleft[parent[k]]とleft[6]は等しいです。従って以下のようになります。
k  :  parent[k]  :  left[parent[k]]
0  :      6      :        5
1  :      4      :        1
2  :      5      :        2
3  :      4      :        1
4  :      5      :        2
5  :      6      :        5
6  :     -1      :      エラー(配列の中身がマイナスのため)
2019.10.19 15:23
Vさん 
(No.3)
仮に  A[B[1]]←0  というような命令があり、
A[10,20,30,40]
B[ 1, 2, 3, 4]
だったとします。またここで配列の開始番号は1とします
まずB[1]の値、つまり 1 が取り出されます。
そうすると
A[1] ← 0 のようになります。
その上でこの命令が実行され、
A[0,20,30,40]
(B省略)
のようになります。

プログラムやアルゴリズムにおいて、"配列名[添字]"のようになっていた場合、
基本的には
値を設定している(配列名[添字]←値)場合はその場所に値を設定し、
値を読み出している(上記以外の場合)場合はその場所の値を読み出します。

(C言語の知識ベースなのでアルゴリズムという学問的に用語や細かい部分等間違っている可能性が、あるかもしれません、ご容赦ください)
2019.10.19 15:33
最後のあがきさん  
(No.4)
解説ありがとうございます。
分かりやすくて納得できました。
試験まであと少しですが最後まであきらめずに頑張ります!
2019.10.19 16:01

返信投稿用フォーム

スパム防止のためにスレッド作成日から30日経過したスレッドへの書込みはできません。

その他のスレッド


Pagetop