ソフトⅡコース担当 ブログのおにーさまこと高橋です。
今回は平成26年度春期基本情報技術者試験午後問13の残り、マクロ問題の解説です。
マクロGenerateListは、問題より多重度(匿名化された郵便番号、年齢、職業コードが同じ者の人数)と郵便番号、年齢、職業コードとともに表示するものです。
ワークシート:提供リスト(3)より、「匿名化顧客リスト」のH列には、各顧客が修理済みか、つまり、多重度のカウント処理が終わっているかどうかが設定されます。処理済みであれば1、未処理であれば0を設定します。マクロ実行前は未処理なので、すべて初期値は0です。マクロの最初の繰り返しが、この0に設定する処理です。
処理対象にする顧客は、ワークシート:提供リスト(4)より、I列に格納されている評価値が最小のものを対象とします。I列に格納されている8桁の数値は、最上位がH列の値なので、必ず処理済みの顧客より未処理の顧客の方が値が小さくなっています。順次処理を行う繰り返しの最初で、対象となる顧客を決めます。繰り返しの最初を見ると、空欄dで求めた値を使い、次の行で「相対(H1,minID,0) ← 1」と処理済みにしています。minIDは、対象となる顧客の位置(行)が格納されている必要があります。I列の最小値の位置、つまり、I列の最小値と一致する値のある行を求める「照合一致(最小(I2~I5001),I2~I5001,0)」が入ります。正解はウです。
多重度は、「提供リスト」のD列に格納します。マクロ中の「相対(提供リスト!A1,J,3) ← K」より、多重度はKでカウントしていることがわかります。処理対象の顧客の評価値と直前に処理した顧客の評価値が同じであれば、多重度を1増やします。この処理は、空欄fが該当します。空欄fには「K←K+1」が入ります。正解はケです。
ワークシート:提供リスト(5)より、多重度が「匿名化顧客リスト」N2に格納されている値以上の場合のみ「提供リスト」に表示します。処理対象の顧客の評価値と直前に処理した顧客の評価値が異なれば、直前の評価値のカウント処理は終了です。このとき、多重度がN2に格納されている値以上であれば表示するので次の行に進みますが、未満であれば次の行に進まず、上書きして表示しないようにします。空欄eは、以上の場合で、次の行に進む、つまり、Jの値を1増やします。「J ← J+1」は入ります。正解はオです。
今回の表計算問題は、問題文を追って考えていけば、解き易い問題ではなかったのではないかと思います。
2014年(平成26年度)春期の解説
- 平成26年度 春 基本情報技術者試験 【問13】(その2)
- 平成26年度 春 基本情報技術者試験 【問13】(その1)
- 平成26年度 春 基本情報技術者試験 【問12】(その2)
- 平成26年度 春 基本情報技術者試験 【問12】(その1)
- 平成26年度 春 基本情報技術者試験 【問6】
- 平成26年度 春 基本情報技術者試験 【問7】(その2)
- 平成26年度 春 基本情報技術者試験 【問7】(その1)
- 平成26年度 春 基本情報技術者試験 【問4】
- 平成26年度 春 基本情報技術者試験 【問5】
- 平成26年度 春 基本情報技術者試験 【問9】
- 平成26年度 春 基本情報技術者試験 【問8】(その2)
- 平成26年度 春 基本情報技術者試験 【問3】(その3)
- 平成26年度 春 基本情報技術者試験 【問8】(その1)
- 平成26年度 春 基本情報技術者試験 【問3】(その2)
- 平成26年度 春 基本情報技術者試験 【問3】(その1)
- 平成26年度 春 基本情報技術者試験 【問1】
- 平成26年度 春 基本情報技術者試験 【問2】
- Date:
- この記事を
友だちに教える - LINE
- - HatenaBookmark
- GooglePlus