ITパスポート 令和6年度 問62 の解説テクノロジ系/アルゴリズムとプログラミング
関数 convert は、整数型の配列を一定のルールで文字列に変換するプログラムである。関数 convert を convert (arrayInput) として呼び出したときの戻り値が“AABAB” になる引数 arrayInput の値はどれか。ここで、arrayInput の要素数は1以上とし、配列の要素番号は1から始まる。 [プログラム] ○文字列型:convert(整数型の配列: arrayInput) 文字列型:stringOutput ← "" // 空文字列を格納 整数型:i for (iを1から arrayInput の要素数まで1ずつ増やす) if (arrayInput [i] が1と等しい) stringOutput の末尾に "A" を追加する else stringOutput の末尾に "B" を追加する endif endfor return stringOutput

この設問が問うていること
プログラム(擬似言語)のループ処理と条件分岐を読み解き、指定された出力結果を得るための配列入力を選ぶ設問です。
総合解説
プログラムのループ処理をトレースします。配列の各要素が「1と等しい」場合は「A」を、それ以外の場合は「B」を末尾に追加します。戻り値が「AABAB」となるためには、配列の要素が順に「1, 1, 1以外, 1, 1以外」である必要があります。選択肢dの `{1, 1, 2, 1, 0}` では、1番目=1→A、2番目=1→A、3番目=2→B、4番目=1→A、5番目=0→B と処理が進み、文字列が「AABAB」になります。したがって、正解はdです。
アルゴリズムとプログラミングをまとめて学ぶ
アルゴリズムとプログラミング 重点教科書 →
データ構造・擬似言語・探索と整列アルゴリズム・プログラム言語・HTML/XML/JSONまで、ITパスポートのアルゴリズム分野を体系的に解説します。