2011年7月14日木曜日

基本情報技術者 平成23年特別 午後 問5

--------------------------------------------------------------------------------------------------
以下の解説、解法が間違っていても責任は取れません
発見した場合はコメント欄よりご指摘下さい
--------------------------------------------------------------------------------------------------

復習時にも勘違いを起した罠
というかアルゴリズム問題は優秀な釣堀だと思う

問題文から簡単に条件をまとめる
細かいところは随時見ていくことにする
↑これは出来る奴がすること(注意)

①応募件1枚
 ・A001~A199の個数
 ・期間中

②招待券1枚
 ・期間中の購入商品の総合計が5万円以上

③あて先ファイル1件
 ・どちらかの券がある場合に1顧客に対して1件

④合計表
 ・応募件の総枚数、招待券の総枚数、あて先レコードの件数を印字

【設問1】

■[a]について
・招待券の処理を回避するかどうか
 ⇒NOで回避している⇒5万円以上でしたか?
 ⇒購入金額は一つ前の顧客処理内で金額集計処理をしている
 ⇒つまり [購入金額合計≧50000] となる

a)ウ

■[b]について
・あて先処理を回避するかどうか
 ⇒NOで回避している⇒応募件か招待券を持ってますよね?
 ★ここで勘違いを起した------------------------------------------

 あて先処理で件数が作成されると思っていたので
 ウの [A001≦作業ファイルの商品レコードの商品コード≦A199 かつ
     作業ファイルレコードの購入金額≧50000] を選んでしまった

 ----------------------------------------------------------------
 実は表1の[応募件処理]と[招待券処理]で枚数の集計は既に出来ている
 ⇒応募件、招待券は1枚以上もってますよね?
 ⇒つまり [応募件枚数>0 又は 招待券枚数>0] となる

b)カ


【設問2】

ループね、はいはいカウントアップカウントアップwww
ということで [枚数=枚数+1]だと思った。死にたい。

実際は商品毎にループ⇒対象商品?⇒YES⇒その個数を枚数に足しこむ
つまり [応募件枚数+作業ファイルレコードの購入個数] となる

↑多分w
その辺は表2のテストデータを見れば閃けたかな?

答)オ


【設問3】

一つずつ数えていくことにする

①5/10~6/20のキャンペーン
②応募券:対象商品かどうか?
③招待券:期間合計が5万円以上か?
 ★ここで勘違いを起した------------------------------------------

   001 応募件11 招待券2
   002 応募件0  招待券0
   005 応募件1  招待券1
   010 応募件0  招待券1
   081 応募件2  招待券2
   258 応募件0  招待券0
   386 応募件3  招待券0

   応募件  17件
   招待券  6件
   レコード7件

   となる・・・訳無いんだ、招待券は5万円【毎】じゃないから orz
   しかも空のレコードを消して無いし
   そもそも対象のカウントがおかしいwww
 ----------------------------------------------------------------

001 応募件8  招待券0
005 応募件1  招待券1
010 応募件0  招待券1
081 応募件2  招待券1
386 応募件3  招待券0

応募件  14件
招待券  3件
レコード5件

零みたいに検算しないと駄目だなあ
目の前の答えに脊髄反射しちゃうヒトはアルゴリズムのカモですよ

C)ウ D)ウ

0 件のコメント:

コメントを投稿