平成23年秋期試験問題 午前問7

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

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

Pagetop