ソフトⅡコース担当 ブログのおにーさまこと高橋です。
今回は問12、CASLです。問題は、IPAのサイトをご覧ください。
プログラム1の空欄は、2進数の掛算に関する部分です。2進数の掛算問題を解いたことのある人は、簡単に埋まったのではないでしょうか。
例えば、12分34秒を秒数に変換するには、1分は60秒なので、
12×60+34
を計算します。この計算式を変形すると、
(1×10+2)×6+3)×10+4
となります。受け取る値は文字列’1234’なので、更に文字を使った式に変形すると
((‘1’-’0’)×10+(‘2’-’0’))×6+(‘3’-’0’))×10+(‘4’-’0’)
となります。ここで、数文字を数値に変換する部分、例えば(‘1’-’0’)は、=#000Fとの論理積で求まります。プログラム1では、7行目に該当します。また、3個の掛ける数は24行目の3定数が該当します。更に、最初0に加えるようにすると
((0+(‘1’-’0’))×10+(‘2’-’0’))×6+(‘3’-’0’))×10+(‘4’-’0’)
と変形できます。
これで、今までの値に文字を数値に変換した値を加え、掛けるという処理を4回繰り返すことがわかります。ただし、4回目は掛ける部分がありません。つまり、「加える・掛ける」という繰り返し処理の途中で終了判定を行う、中判定の繰り返しです。
この流れを図示すると次のようになります。
掛算の部分を詳しくみます。赤の部分(12×6)で考えると次のようになります。
空欄aはオレンジ色の次の部分です。GR4が0でなければ掛算を続けるので、20行目(CONT)にジャンプします。空欄aにはイが入ります。
今回は、余り進みませんでしたがここまでにします。次回、問12の残りを解説したいと思います。
と、ここまで書いて、問9の後半が残っていることに気付いた。次回は、問9か問12の残りのいずれかということで。
2013年(平成25年度)秋期の解説
- 平成25年度 秋 基本情報技術者試験 【問13】
- 平成25年度 秋 基本情報技術者試験 【問11】
- 平成25年度 秋 基本情報技術者試験 【問12】(その2)
- 平成25年度 秋 基本情報技術者試験 【問9】(その2)
- 平成25年度 秋 基本情報技術者試験 【問12】(その1)
- 平成25年度 秋 基本情報技術者試験 【問9】(その1)
- 平成25年度 秋 基本情報技術者試験 【問8】(その2)
- 平成25年度 秋 基本情報技術者試験 【問8】(その1)
- 平成25年度 秋 基本情報技術者試験 【問7】
- 平成25年度 秋 基本情報技術者試験 【問6】
- 平成25年度 秋 基本情報技術者試験 【問5】
- 平成25年度 秋 基本情報技術者試験 【問4】
- 平成25年度 秋 基本情報技術者試験 【問3】(その2)
- 平成25年度 秋 基本情報技術者試験 【問2】
- 平成25年度 秋 基本情報技術者試験 【問3】(その1)
- 平成25年度 秋 基本情報技術者試験 【問1】
- Date:
- この記事を
友だちに教える - LINE
- - HatenaBookmark
- GooglePlus