【基本情報】コード掲載!科目B問3「配列を処理するプログラム」について解説します

20231104_q5 資格試験

基本情報の午後試験はプログラム問題です.

科目B問題を解けるようになるにはプログラムを元に自分でコードを書いてみるのが1番良いでしょう.

今回は科目B問3「配列を処理するプログラム」の解説とそのコードを紹介します.
プログラムを元にPythonで書き直しました.

Pythonで書いてみたので是非手元で実行してみてください

サンプル問題 科目B 問3「配列を処理するプログラム」

問題文は以下のとおりです.
配列の問題ですね.

問3 問題文と回答選択肢|クリックして拡大できます
サンプル問題[科目B]問3 配列を処理するプログラム

プログラムをPythonで書き直す

問3に掲載されているプログラムを元にPythonで書き直しました.

def makeNewArray(array_in: list[int]):
    # 空の配列を用意する
    array_out = []
    # 配列の1つ目の値をarray_outに追加する
    array_out.append(array_in[0])
    
    # iを1~5までループする
    for i in range(1, len(array_in)):
        # 配列(array_out)の最後の値を取得する
        tail = array_out[len(array_out) - 1]
        # 配列(array_out)の最後の値とarray_in[i]の値を足して,配列(array_out)に追加する
        array_out.append(tail + array_in[i])
    
    return array_out

print(makeNewArray([3, 2, 1, 6, 5, 4]))
プログラムの実行結果|クリックして拡大できます

戻り値の配列は[3, 5, 6, 12, 17, 21]でした.

プログラムの場合インデックスは1から始まるので5番目は17です.

よって答えは「カ」の17になります.

ポイント 配列のインデックスの初期値を確認する

プログラムの配列はインデックスの始まりが1でした.

しかしPythonなどプログラミング言語はインデックスが0から始まります.

小さな違いですが,結果に影響するので初めにインデックスの初期値は確認しておきましょう!

まとめ

今回は科目B問3「配列を処理するプログラム」について紹介しました.

細かい処理内容はコメントで補足しました.

配列とループは実務でもよく使われます.
処理理解に困ったときはiに具体的な数字を入れてトレースすると良いでしょう.

プログラムの配列はインデックスが1から始まりましたが,プログラミング言語は0から始まります.

そのためPythonコードと問題文ではところどころ違いましたね.
インデックスの初期値を間違えると求まる結果が変わるため初めに確認することをおすすめします.