
出典:公益社団法人 日本技術士会「技術士第一次試験 過去問題」
自然数Nを2で割った商と余りを繰り返して2進数表示に変換するアルゴリズムの流れ図で、空欄(ア)(イ)(ウ)に入る条件式と更新式を選ぶ問題。
Nを2で割った商にNを更新する操作をNが0になるまで繰り返し、各余りを逆順に並べて2進数表示にする流れ図の空欄を補充する問題。
① 10進数→2進数: 2で割った余りを並べ、Nを2で割った商に置き換えるのを、Nが0になるまでくり返す
② 続ける条件(ア)=N>0、終わる条件(イ)=N=0、Nの更新(ウ)=Nを2で割った商
③ ①
流れ図では、「Nと0を比較」する判定の後、(ア)の分岐で繰り返しの処理(余りをA[I]に格納しNを更新)へ進み、(イ)の分岐で結果の表示に進む。Nが0より大きい間は変換を続けるので、(ア)はN>0、Nが0になれば終了して表示するので、(イ)はN=0。処理の中で、A[I]にNを2で割った余りを格納した後、Nを更新する(ウ)は、Nを2で割った商である。したがってア=N>0、イ=N=0、ウ=Nを2で割った商の①が正しい。
10進数の2進数変換は、「2で割った余りを記録し、商で更新する」ことを商が0になるまで繰り返し、得られた余りを逆順に並べる。流れ図では、繰り返しの継続条件(N>0)と終了条件(N=0)を取り違えないこと。
キーワード: 2進数変換、アルゴリズム、流れ図、商と余り、情報・論理