A型システムエンジニアの勉強メモ

情報処理試験の午前問題をネタにして、解説をじっくり書きながら勉強しています。基礎は大事。

広告

基本情報技術者試験 令和元年度 秋季 午前 問9

配列と流れ図と回転をネタにした問題。

 

--------------------------

基本情報技術者試験

令和元年度 秋期 午前 問9

 

配列 A が図 2 の状態のとき、図 1 の流れ図を実行すると、配列 B が図 3 の状態になった。図 1 の a に入れる操作はどれか。

ここで、配列 A、B の要素をそれぞれ A( i, j )、B( i, j ) とする。

 

f:id:koki2016:20210911124639p:plain

 

ア B( 7-i, 7-j ) ← A( i, j )

イ B( 7-j, i ) ← A( i, j )

ウ B( i, 7-j ) ← A( i, j )

エ B( j, 7-i ) ← A( i, j )

--------------------------

解説

 

配列 A は図 2 の通りで、A( 0, 0 ) や A (1, 2 ) とかは空白、A( 0, 1 ) や A( 1, 1 ) には値(*)が入っている状態になっている。

縦が添字 i の番号、横が添字 j の番号を表している。配列の位置を示す i や j のことを "添字(そえじ)" と呼ぶ。インデックスと呼ぶ人もいる。好みの世界。

 

これをどういったルールで B( i, j ) に入力すれば、図 3 となるような配列 B が出来上がるのか、といった問題である。

 

 

一個一個の空白や値(*)は区別できないが、配列 A と B の全体を眺めると、配列 A を時計回りに 90 度回転したら配列 B になることが分かる。

(配列で描かれている F の文字が右に倒れている。)

 

なので、F の左上部分 A( 0, 1 ) と対応しているのは B( 1, 7 ) であり、F の一番下部分 A( 7, 1 ) と対応しているのは B( 1, 0 ) ということになる。

つまり、流れ図のループの中で、以下のような代入があったことになる。

  • B( 1, 7 ) ← A( 0, 1 )
  • B( 1, 0 ) ← A( 7, 1 )

 

各選択肢をみて、上の代入と一致するものを探せばいい。

すると、選択肢エ B( j, 7-i ) ← A( i, j ) だけが一致することが分かる。

ということで、問題の正解は選択肢エである。

 

 

「回転」にパワー使ったからな。

元ネタわかってくれる同志はいるだろうか。

[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

HUNTER×HUNTER(31) (ジャンプコミックス) [ 冨樫義博 ]
価格:484円(税込、送料無料) (2021/9/11時点)

楽天で購入

 

 

前後の問題はこちら。

koki2016.hatenadiary.com