HOME»基本情報技術者試験掲示板»これ問題おかしくないですか?
投稿する

これ問題おかしくないですか? [5884]

 にんじんさん(No.1) 
基本情報技術者試験のB科目について質問なのですが、この問題のプログラムにあるtail←out[outの要素数]は何故かtailに入る数字が3なんです。意味が分かりません。
[outの要素数]なら配列のデータが1つしか入ってないのだから1のはずなのに何故か、そのデータの"中"の数値をtailに出力しているので納得出来ません。

それなら要素数と書くのではなく、要素番号1や添字などの表記が正しいのかと思います。この問題は、要素数と表記しているのは正しいんですか?要素数という言葉の意味が分からなくなってしまっています。

私は配列のデータの個数という意味で要素数という単語を認識しています。
https://www.fe-siken.com/s/kakomon/sample/b3.html
2025.04.28 16:49
nasvjadさん(No.2) 
例えばout[i]であれば配列outのi 番目の「数値」のことを示しますよね。
つまりout[outの要素数]は配列outのoutの要素数 番目の「数値」のことを示します。
2025.04.28 17:12
jjon-comさん(No.3) 
FE プラチナマイスター
基本情報 サンプル問題 問3
https://www.fe-siken.com/kakomon/sample/b3.html

> 私は配列のデータの個数という意味で要素数という単語を認識しています。

はい、その理解で正しいです。

forループのたびに配列outの末尾に値を追加するので、配列outのデータ個数が増えているのです。

以下はこのサイトに載っている解説文と同じ説明なのですが、配列outをイラストで表してみました。

整数型の配列:out ←{}

| この時点で配列outのデータ個数は0


outの末尾に in[1]の値【3】を追加する
+―+
|3| この時点で配列outのデータ個数は1になる
+―+

tail←out[outの要素数]【tail←out[1]】
outの末尾に(tail+in[2])の結果【3+2】を追加する
+―+―+
|3|5| この時点で配列outのデータ個数は2になる
+―+―+

tail←out[outの要素数]【tail←out[2]】
outの末尾に(tail+in[3])の結果【5+1】を追加する
+―+―+―+
|3|5|6| この時点で配列outのデータ個数は3になる
+―+―+―+

tail←out[outの要素数]【tail←out[3]】
outの末尾に(tail+in[4])の結果【6+6】を追加する
+―+―+―+―+
|3|5|6|12| この時点で配列outのデータ個数は4になる
+―+―+―+―+

tail←out[outの要素数]【tail←out[4]】
outの末尾に(tail+in[5])の結果【12+5】を追加する
+―+―+―+―+―+
|3|5|6|12|17| この時点で配列outのデータ個数は5になる
+―+―+―+―+―+

tail←out[outの要素数]【tail←out[5]】
outの末尾に(tail+in[6])の結果【17+4】を追加する
+―+―+―+―+―+―+
|3|5|6|12|17|21| この時点で配列outのデータ個数は6になる
+―+―+―+―+―+―+
2025.04.28 17:26
jjon-comさん(No.4) 
FE プラチナマイスター
ごめんなさい、No.3 は読み捨ててください。
質問者の疑問点を正しく捉えているのは No.2 です。

> この問題は、要素数と表記しているのは正しいんですか?

はい、正しいです。

> 要素数と書くのではなく、要素番号1や添字などの表記が正しいのかと思います。

いいえ、配列名[●] の ●の箇所に 数値(正の整数)が登場するのであれば、
その ● は 配列の要素番号、配列の添字 を表すというのは表記上の規則です。
これをあえて、要素番号とか添字などと言い直す必要はありません。

tail ← out[都道府県の数]
と書いてあるなら、
tail ← out[47]    #配列outの47番目の要素の中身
という意味でしょう。
上記に登場する「都道府県の数」は47という数値でしょうから。
これをあえて、要素番号とか添字などと言い直す必要はありません。

tail ← out[富士山の高さ]
と書いてあるなら、
tail ← out[3776]  #配列outの3776番目の要素の中身
という意味でしょう。
上記に登場する「富士山の高さ」は3776という数値でしょうから。
これをあえて、要素番号とか添字などと言い直す必要はありません。

同様に。

tail ← out[outの要素数]
と書いてあり、
> 配列のデータが1つしか入ってないのだから1のはずなのに
という状況であるなら、
tail ← out[1]     #配列outの1番目の要素の中身
という意味です。
上記に登場する「outの要素数」は1という数値ですから。
これをあえて、要素番号とか添字などと言い直す必要はありません。
2025.04.28 22:41
 にんじんさん(No.5) 
ようやく皆さんのおかげで納得出来ました。
情報処理検定では要素番号や添字と表記された上でプログラム読解をしてきていたので慣れていなかったようです。

教えて下さりありがとうございます(((o(*゚▽゚*)o)))
2025.04.29 07:27
返信投稿用フォームスパム防止のためにスレッド作成日から40日経過したスレッドへの投稿はできません。
© 2010- 基本情報技術者試験ドットコム All Rights Reserved.

Pagetop