サンプル問題 [科目B]問14について

午前試験免除制度対応!基本情報技術者試験のeラーニング【独習ゼミ】
ライムミントさん  
(No.1)
解説では、「sortedDataの要素数 は10なので」とありますが、これはどこからの情報なのでしょうか?   問題文には、「summarize({0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1})」とはありますが、「sortedDataの要素数」については触れられていないように見えます。どなたかこの問題文の読み方を教えていただけないでしょうか?
2024.07.31 11:54
電タックさん 
FE ブロンズマイスター
(No.2)
関数summarizeを、summarize({0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1})と呼び出した時の事を問われています。

これは
○関数1
実数型配列:inputData ← {0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1}
summarize(inputData)

と変数を定義して呼び出したものと

○関数2
summarize({0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1})

と変数を定義せず直接呼び出したもので
上記2つは同じものとなり、設問では後者の関数2のパターンとなっています。

そして呼び出された
関数summarizeは、引数をsortedDataという変数名で扱い処理を実行します。
今回の場合は設問にある{0.1,・・・,1}の要素10個を配列として受けとっています。

注意点として引数で受けとったものは通常は"変数"の扱いとなります。
変数という事は読み込むだけでなく書き換え(変更)が可能です。

通常引数を変更していくのは良くない作法なので、おそらく擬似言語では問われないと思いますが変数の意味として覚えておいても損は無いと思います。
2024.07.31 12:56
ライムミントさん  
(No.3)
ご回答いただきありがとうございました。

関数summarizeは、その関数の中に({0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1})というデータを保持しているため、配列sortedDataはそれらのデータを順番に並べていっている、という理解で大丈夫ですよね。
問題を多く解き、出題の仕方や考え方に慣れていくしかないですね。
2024.07.31 14:50
jjon-comさん 
FE ゴールドマイスター
(No.4)
〇実数型の配列: summarize( 実数型の配列: sortedData )
というプログラムコードは,関数summarizeを実行するためには引数として何らかの実数型の配列値を受け取る必要がある,かつ,その変数名がsortedDataになることを表しており,

summarize( {0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1} ) として呼び出すと,
という問題文は,関数summarizeを実行するために要素数=10の配列値を渡すことを表しています。

以上より,この問題文の状況では,
実数型の配列sortedDataの中身が {0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1} である,
つまり「sortedDataの要素数は10なので」となります。

--------
> 配列sortedDataはそれらのデータを順番に並べていっている、という理解で大丈夫ですよね。

sort data(データを整列する)ではなく,sorted data(整列されたデータ)ですから,
プログラム実行中に「データを並べていっている」のではなく,
「あらかじめ順番に並んだ状態,整列済の状態」の配列データを渡すという意味になります。
2024.07.31 16:44
ライムミントさん  
(No.5)
ご回答いただきありがとうございます!
ようやくわかったような気がします。
ご丁寧な回答をありがとうございました。
2024.08.01 17:03

返信投稿用フォーム

※CBT試験では出題内容の公開が禁止されているため、直接的・間接的を問わず、出題内容や難易度を尋ねる質問は厳禁です。
※宣伝や迷惑行為を防止するため当サイトとIPAサイト以外のURLを含む記事の投稿は禁止されています。

投稿記事削除用フォーム

投稿番号:
パスワード:

その他のスレッド


Pagetop