アルゴリズム(全79問中37問目)

午前試験免除制度対応!基本情報技術者試験のeラーニング【独習ゼミ】
要素番号が0から始まる配列 TANGO がある。n個の単語が TANGO[1] から TANGO[n] に入っている。図は,n番目の単語を TANGO[1] に移動するために,TANGO[1] から TANGO[n-1] の単語を順に一つずつ後ろにずらして単語表を再構成する流れ図である。aに入れる処理として,適切なものはどれか。
07.gif

出典:平成23年秋期 問 7

  • TANGO[i]→TANGO[i+1]
  • TANGO[i]→TANGO[n-i]
  • TANGO[i+1]→TANGO[n-i]
  • TANGO[n-i]→TANGO[i]
正解 問題へ
分野:テクノロジ系
中分類:アルゴリズムとプログラミング
小分類:アルゴリズム
解説
最後の要素である TANGO[n] を TANGO[1] に移動する場合を考えてみます。

まず、ループ処理の前に TANGO[n] のデータを TANGO[0] にコピーします。
07_1.gif
次のループ処理で単語を順に一つずつ後ろにずらすには、TANGO[4]→TANGO[5],TANGO[3]→TANGO[4] というように前の1つ前の配列要素のデータをコピーしていく処理が必要です。
07_2.gif
ループ処理は、変数iが、n-1(配列要素のうち最後の1つ前) から 0(最初) まで続きます。aに入る処理をループ変数iで表すと、現在の配列要素 TANGO[i] を値を1つ後ろの配列要素 TANGO[i+1] にコピーする TANGO[i]→TANGO[i+1] が適切です。

Pagetop