問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

この設問が問うていること
プログラム(擬似言語)のループ処理と条件分岐を読み解き、指定された出力結果を得るための配列入力を選ぶ設問です。
ア{0, 0, 1, 2, 1}
選択肢アの解説: 配列から変換される文字列は「BBAAB」となるため誤りです。
イ{0, 1, 2, 1, 1}
選択肢イの解説: 配列から変換される文字列は「BABAA」となるため誤りです。
ウ{1, 0, 1, 2, 0}
選択肢ウの解説: 配列から変換される文字列は「ABABB」となるため誤りです。
エ{1, 1, 2, 1, 0}正解
選択肢エの解説: 配列の各要素(1, 1, 2, 1, 0)を条件判定することで出力「AABAB」が得られるため適切です。
総合解説
プログラムのループ処理をトレースします。配列の各要素が「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です。
AIAIにその場で質問(デモ応答)
こんな聞き方もできます(タップで質問)