ソフトⅡコース担当 ブログのおにーさまこと高橋です。
平成24年度春期基本情報技術者試験の問13の続きです。
設問2
貸出時には、貸出条件を満たす時に次の処理を行います。
- 該当図書の利用者ID(C列)に入力した利用者ID(セルD203の値)を設定します。図書IDは2行目から1,2,…と割り当てられているので、図書IDの値(セルB203の値)が1行目からの相対位置となります。従って、A1から相対的にB203行、2列の位置にD203の値を設定します。
相対(A1 , B203 , 2) ← D203 - 該当図書の利用者ID(C列)に日付(セルI1の値)を設定します。
相対(A1 , B203 , 3) ← I1 - 入力した図書ID(セルB203)、利用者ID(セルD203)を空にします。
B203 ← null
D203 ← null
これらが、マクロの条件が真の時に行われます。条件には、問題文にある3つの条件の論理積が入ります。
- 対象図書が貸出中でない
該当図書の図書ID(C列)と貸出日(D列)が空です。これらは同時に設定されるので、一方を調べるだけで済みます
相対(A1 , B203 , 2) = null - 対象利用者の残り貸出冊数が1以上である
利用者に関する情報は「利用者情報」シートにあります。利用者情報で、利用者IDは2行目から1,2,…と割り当てられているので、利用者IDの値(セルD203の値)が1行目からの相対位置となります。残り貸出冊数は、利用者情報のD列にあります。
相対(利用者情報!A1 , D203 , 3) > 0 - 対象利用者が現在借りている全ての図書が延滞状態でない
残り貸出冊数は、利用者情報のE列にあります。
相対(利用者情報!A1 , D203 , 4) ≠ ‘*’
以上より、3つの条件の論理積をとると、解答はアになります。
設問3
マクロの処理内容は、問題の(3)に書いてあります。この内容に合わせて空欄を考えます。
マクロ前半の2重ループは(3)-①の部分です。利用者IDにiを指定した時とあるので、計算式のiはセルB204です。B204≠Jの条件より、内側のループは、和を求めている上側の式に該当します。iをB204に置き換えると、空欄fは、相対(A1 , K , B204) * 相対(A1 , K , J)となります。解答はカです。
後半の2重ループは(3)-②の部分です。空欄gは、それ以外(「xki=1又は図書IDkの図書が貸出中の場合」の逆)、つまり「xki=0かつ図書IDkの図書が貸出中でない場合」が入ります。この条件は、論理積(相対(A1 , K , B204) = 0,相対(図書情報!A1 , K , 2) = null)です。解答はアです。Sijは類似度なので202行目です。従ってiを201に置き換えると、空欄hは相対(A1 , 201 , J) * 相対(A1 , K , J)となります。解答は*の左辺、右辺が逆になっていますが、キです。
2012年(平成24年度)春期の解説
- 平成24年度 春 基本情報技術者試験 【問13】(その2)
- 平成24年度 春 基本情報技術者試験 【問13】(その1)
- 平成24年度 春 基本情報技術者試験 【問2】
- 平成24年度 春 基本情報技術者試験 【問3】
- Date:
- この記事を
友だちに教える - LINE
- - HatenaBookmark
- GooglePlus