平成24年春期 午後問題5 についての質問。

午前試験免除制度対応!基本情報技術者試験のeラーニング【独習ゼミ】
舞城さん  
(No.1)
平成24年春期 午後問題5  設問3のC,Dの問いについての2つ質問があります。

■質問1
ここでは表のデータのソート処理の順番を訊かれています。答えはそれぞれ(C,D)=(エ,イ)です。

ソートの優先順位は設問前にある文章や設問2の答え(エ)からも分かる通り、
1.受験者数の降順への整列(エ)
2.学校コードの昇順への整列(イ)
の順です。

とすると、ソートの順番は先に学校コード、それ以降に受験者数の順にすべきだろうと考えました。
答えでは先に受験者数でソートして、その後に学校コードでソートをしているのですが、それだと学校コードの最も若い番号が表の最上位に来てしまいませんか?
受験者数の順位が同数の学校の中でのみ学校コードでソートするという処理であれば理解できるのですが、ソート処理の順をどう解釈すればいいかわかりませんでした。
なぜそうなっているのか教えていただけないでしょうか?

■質問2
もう一つも設問3に関する質問です。
処理1~4は、解答のある処理2,4から推測するに、

処理1:学校ごとの人数の集計
処理2:受験者数の降順への整列
処理3:順位付け
処理4:学校コードへの昇順への整列

となるのだろうと推測しす。
上記で質問させていただいたソート処理の順番を飲み込んだとしても、処理3の順位付けが処理4の学校コードのソートより前に持ってくる理由がわかりません。
処理3と4の順番が逆であっても、題意を満たすシステムになるのではないかと私には思えてなりません。
順位付けが先に処理されなければいけない理由はなにかあるのでしょうか?



本WEBサイトには午後の問題が乗っておらず、IPAのPDFを見て問題を解いています。
2013.10.14 23:02
ぬまさん 
(No.2)
この投稿は削除されました。(2013.10.15 10:50)
2013.10.15 10:50
ぬまさん 
(No.3)
■質問1について

ソートの優先順位というのは
たとえば(a,b)をaの降順、bの昇順にソートするとして

(1,2), (2,4), (3,5), (1,1), (2,3), (3,6)
↓aの降順にソート
(3,5), (3,6),   (2,4), (2,3),   (1,2), (1,1)
↓bの昇順にソート
(3,5), (3,6), (2,3), (2,4), (1,1), (1,2)
となります。
最初にソートしたaの順番は固定で、bのソートを行なう。
aのソートでa=3のかたまり、a=2のかたまり、a=1のかたまりになったと考えれば。
bのソートで
(1,1), (1,2), (2,3), (2,4), (3,5), (3,6)とはなりませんよね?

なので最初にソートしたものが優先度が1番高く処理されるので
「学校コードの最も若い番号が表の最上位に来てしまう」
ことにはなりません。
aを学校コードと考えればわかると思います。

問題の図2でいうと
今年度受験者数でソートし、
80人だった学校2校を学校コード順にソート
60人だった学校2校を学校コード順にソート
となります。


■質問2について
結果として、エラーがなければ、おそらく題意を満たすシステムにはなると思います。

しかし、問題文を読むと
「入出力のレコード様式への前年度順位の追加に対する変更を加えた」
とあるので、基本的な処理順序は変わっていないものと考えます。

そして図4の処理順序は集計、整列、順位付けを行なうので
処理1~3は集計、整列、順位付け
処理4はその後のファイル1との突合せをすることから
学校コードの整列処理が必要だと考え、ソートする。

なので解答の順序になるのだと思います。
2013.10.15 10:51
舞城さん  
(No.4)
ぬまさん、解説していただきありがとうございます。

■質問1
ソートの順序と優先に関しては、先にソートの結果が優先されることなのですね。
ソートの仕様について理解できていなかったのですが、説明していただいて納得できました。

■質問2
確かに、設問1,2があって設問3があること、「入出力のレコード様式への前年度順位の追加に対する変更を加えた」こととを合わせて考えると、これまでの処理順序を継承するのはもっともだと思います。
納得はできるのですが、類似した問題が出題された時に題意を汲み取るのは難しい気がしました。


お忙しい中、時間を割いて解説していただき本当にありがとうございました。
試験まで残り僅かですが、たくさん過去問を解いて合格してきます。
ありがとうございました。
2013.10.15 14:24

返信投稿用フォーム

スパム防止のためにスレッド作成日から30日経過したスレッドへの投稿はできません。

その他のスレッド


Pagetop