基本情報技術者平成23年秋期 午前問7

問7

要素番号が0から始まる配列 TANGO がある。n個の単語が TANGO[1] から TANGO[n] に入っている。図は,n番目の単語を TANGO[1] に移動するために,TANGO[1] から TANGO[n-1] の単語を順に一つずつ後ろにずらして単語表を再構成する流れ図である。aに入れる処理として,適切なものはどれか。
07.png/image-size:347×217
  • 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/image-size:414×69
次のループ処理で単語を順に一つずつ後ろにずらすには、TANGO[4]→TANGO[5],TANGO[3]→TANGO[4] というように前の1つ前の配列要素のデータをコピーしていく処理が必要です。
07_2.png/image-size:414×116
ループ処理は、変数iが、n-1(配列要素のうち最後の1つ前) から 0(最初) まで続きます。aに入る処理をループ変数iで表すと、現在の配列要素 TANGO[i] を値を1つ後ろの配列要素 TANGO[i+1] にコピーする TANGO[i]→TANGO[i+1] が適切です。
© 2010- 基本情報技術者試験ドットコム All Rights Reserved.

Pagetop