スゴ技

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

Blog:IT・情報処理BLOG |

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

今回は平成26年度春期基本情報技術者試験午後問12の解説です。

文字列を、単語で分解し、管理テーブルに設定するプログラムです。文字列の先頭文字から順に処理しますが、文字により、処理内容が異なります。

  • .であれば、処理中である最後の単語の格納処理を行った後、終端マークを格納して終了する。
  • 空白であれば、処理中の単語の格納処理を行った後、次の文字に進む。
  • 空白以外であれば、
    • 単語の処理中(GR3が0か1)でなければ、新しい単語の開始なのでアドレスを(GR6に)退避し、種別を数字のみ(0)にする。数字以外に対処するため、続けて単語の途中の処理も行う
    • 数字以外を含む単語の処理中(GR3が1)であれば、種別が変わることはないので次の文字に進む。
    • 数字のみの単語の処理中(GR3が0)であれば、
      • 数字であれば、種別は変わらないので次の文字に進む。
      • 数字以外であれば、種別を1にする。

レジスタの変化を簡単に図示すると次のようになります。

201408251(画像をクリックで拡大)

単語の設定では、

  • 単語の処理中でなければ(GR3が-1)、設定しない。
  • 単語の処理中であれば、設定する。
    • 先頭アドレスはGR6に退避してある。
    • 単語の長さは現位置から先頭アドレスの差で求まる。
    • 単語の種別はGR3に設定してある。

設問1
空欄aは、空白文字で単語の格納処理を行った直後なので、次の文字に進みます。次の文字に進むには、ラベルLPの行に戻ります。イの「JUMP LP」が入ります。空欄bは、単語の長さの計算の部分です。GR5とGR6の差の計算なので、カのSUBL GR5,GR6が入ります。

設問2
ラベルNEXTの行は、単語の種別を1に設定したときに実行されます。これは、単語の種別が数字のみのときに、数字以外の文字である場合に発生します。単語の先頭では一旦0を設定するので、先頭文字が数字以外の時も発生します。つまり、3文字目のAのとき、7文字目のCのときにNEXTの行を実行します。5文字目のBでは、Aにより単語の種別がすでに1になっているので種別を変更しません。つまり、NEXTの行は実行しません。

201408252(画像をクリックで拡大)

2回目はCの文字のときなので、GR4には文字Cが格納されています。カが正解です。

今回はここまで。次回、設問3の解説を書きます。

2014年(平成26年度)春期の解説

Date:

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

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

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

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

Tagタグ

Teamライターチーム紹介

神戸電子オフィシャルSNS

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

ページの上へ移動