2016年11月20日日曜日

[平成28年度秋] 午後 問8 解説

[問題文・解答]


平成28年度10月に実施された基本情報技術者試験の午後試験の問題・解答はIPA公式ページからダウンロード出来ます。(以下リンク)

[問題概要]


この問題は、必須問題です。
問題の題材は、数値の編集プログラムです。
数値編集プログラムの処理の流れについて問われます。専門知識は必要ありませんが、かなり複雑で難しい問題です。


[設問1]


各パターンごとにP.36のプログラムと表2を参考に逐次変換していくのが地道ですが、確実と思います。
a) fill文字は*です。1文字目(p=0,v=0)はケース8に該当するため*、2文字目(p=1,v=0)及び3文字目(p=2,v=1)はケース1に該当するため*です。4文字目(p=3,v=2)はケース8に該当するため*、5文字目(p=4,v=2)及び6文字目(p=5,v=3)、7文字目(p=6,v=4)はケース1に該当するため*、8文字目(p=7,v=5)はケース8に該当するため*となります。
以上より、aは全て*となるため「イ」が正解です。

b) fill文字は*です。1文字目(p=0,v=0)はケース8に該当するため*、2文字目(p=1,v=0)及び3文字目(p=2,v=1)、4文字目(p=3,v=2)はケース1に該当するため*、5文字目(p=4,v=3)はケース8に該当するため*、6文字目(p=5,v=3)はケース4に該当するため1、7文字目(p=6,v=4)はケース6に該当するため2、8文字目(p=7,v=5)はケース9に該当するため#となります。
以上より、bは「*****12#」となるため「ア」が正解です。

c) fill文字は*です。1文字目(p=0,v=0)はケース8に該当するため*、2文字目(p=1,v=0)及び3文字目(p=2,v=1)はケース1に該当するため*、4文字目(p=3,v=2)はケース2に該当するため、5文字目(p=4,v=3)はケース9に該当するため「.」、6文字目(p=5,v=3)はケース4に該当するため1、7文字目(p=6,v=4)はケース7に該当するため2、8文字目(p=7,v=5)はケース8に該当するため*となります。
以上より、bは「****.12*」となるため「エ」が正解です。

[答] a) イ b) ア c) エ

[設問2]


d) ケース1〜7でsignif=offであるケース1〜5の場合において、Pattern[p]にfill文字を代入するか、Value[v]の値を代入するかを場合分けするための条件式を入れればよいので、表2よりValue[v]が0であるかどうかを示す「イ」が正解となります。dの結果が正の場合はfill文字を代入する事から、「ア」は不適切です。

e) ケース1〜7でsignif=onであるケース6と7を場合分けするための条件式を入れればよいので、表2よりValue[v+1]が"+"か否かを示す「エ」が適切です。eの結果が正の場合はsignifをoffとすることから「カ」は不適切です。

[答] d) イ e) エ

[設問3]


数値の後に続く文字が"+"であるかどうかを判断しているのはケース3、5、7です。このうち、ケース3はsingifをoffに、ケース5及び7ではsignifをonに更新します。そして、この後の文字でケース8かケース9で場合分けされる時にsignifがoffならValue[v]の値をそのまま使用し、onの場合はfill文字を使用することになるため、数値が正の時つまりValue[v]が"+"の時にfill文字で置き換えるために用意されたケースはケース5と7となります。

[答] f) エ

上記の解説は問題と解答を元に自分なりの考え方を記述しており、間違っている部分もあるかと思いますので、ご了承願います。また、誤りについては正しい考え方をご指摘・ご教授頂けると助かります。

0 件のコメント:

コメントを投稿