スゴ技

平成25年度 秋 基本情報技術者試験 【問12】(その1)

Blog:IT・情報処理BLOG |

ソフトⅡコース担当 ブログのおにーさまこと高橋です。

今回は問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回目は掛ける部分がありません。つまり、「加える・掛ける」という繰り返し処理の途中で終了判定を行う、中判定の繰り返しです。
この流れを図示すると次のようになります。

201401131

掛算の部分を詳しくみます。赤の部分(12×6)で考えると次のようになります。

201401132

空欄aはオレンジ色の次の部分です。GR4が0でなければ掛算を続けるので、20行目(CONT)にジャンプします。空欄aにはイが入ります。

今回は、余り進みませんでしたがここまでにします。次回、問12の残りを解説したいと思います。

と、ここまで書いて、問9の後半が残っていることに気付いた。次回は、問9か問12の残りのいずれかということで。

2013年(平成25年度)秋期の解説

Date:

神戸電子の
IT・情報処理学科
についてもっと知りたい!

Webアプリケーション等のシステム管理、設計、開発が行える総合的なITエンジニアを育成する学科です。

学科紹介を見る (神戸電子サイト)

学科紹介イメージ
Info神戸電子からのお知らせ

Tagタグ

Teamライターチーム紹介

神戸電子オフィシャルSNS

オープンキャンパスなどの
誰でも参加OKの楽しいイベント
やブログの最新記事などお届けします!

ページの上へ移動