基礎文法その4

配列内の特定の条件を満たす要素の合計を計算するアルゴリズムに関する知識を問う問題です。

問題文

次の記述中の〔空欄〕に入れる正しい答えを,解答群の中から選べ。ここで,配列の要素番号は1から始まる。

関数calculateSumは、整数型の配列を引数にとり、配列内の偶数の値の合計を計算して返す関数です。関数calculateSumをcalculateSum({1, 4, 3, 8, 5, 2})として呼び出したとき,戻り値は〔空欄〕となる。

〔プログラム〕
○整数型: calculateSum(整数型の配列: arr)
    整数型: sum ← 0
    for (i を 1 から arrの要素数 まで 1 ずつ増やす)
        if (arr[i] が偶数である)
            sum ← sum + arr[i]
        endif
    endfor
    return sum
選択肢答え
4
6
9
12
14
18
21
解答

選択肢答え
14
解説

この問題は、配列内の特定の条件を満たす要素の合計を計算するアルゴリズムに関する知識を問う問題です。関数内でループを使用して配列を走査し、偶数の値を条件に合致するかどうかを判断して合計を計算します。正解は「エ」となります。

では、順番にプログラムを追いかけていきます。
for文開始時点で各変数値は下記の状態になっています。

arrsumi
{1, 4, 3, 8, 5, 2}01

for文によって変数値は下記のように変化していきます。

arrsumi判定結果備考
{1, 4, 3, 8, 5, 2}011ループ目
for (i を 1 から arrの要素数 まで 1 ずつ増やす)
{1, 4, 3, 8, 5, 2}01False1ループ目
if (arr[i] が偶数である)
{1, 4, 3, 8, 5, 2}022ループ目
for (i を 1 から arrの要素数 まで 1 ずつ増やす)
{1, 4, 3, 8, 5, 2}02True2ループ目
if (arr[i] が偶数である)
{1, 4, 3, 8, 5, 2}422ループ目
sum ← sum + arr[i]
{1, 4, 3, 8, 5, 2}433ループ目
for (i を 1 から arrの要素数 まで 1 ずつ増やす)
{1, 4, 3, 8, 5, 2}43False3ループ目
if (arr[i] が偶数である)
{1, 4, 3, 8, 5, 2}444ループ目
for (i を 1 から arrの要素数 まで 1 ずつ増やす)
{1, 4, 3, 8, 5, 2}44True4ループ目
if (arr[i] が偶数である)
{1, 4, 3, 8, 5, 2}1244ループ目
sum ← sum + arr[i]
{1, 4, 3, 8, 5, 2}1255ループ目
for (i を 1 から arrの要素数 まで 1 ずつ増やす)
{1, 4, 3, 8, 5, 2}125False5ループ目
if (arr[i] が偶数である)
{1, 4, 3, 8, 5, 2}1266ループ目
for (i を 1 から arrの要素数 まで 1 ずつ増やす)
{1, 4, 3, 8, 5, 2}126True6ループ目
if (arr[i] が偶数である)
{1, 4, 3, 8, 5, 2}1466ループ目
sum ← sum + arr[i]

プログラムにreturn sumとあることから、戻り値はプログラム終了時点の変数sumの値となります。
したがって、戻り値は14ですので答えは「オ」となります。


Comments

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です