~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TNO2 CASLII試験対策
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
著作権は、小野智章(小野情報設計)が保有します。
お客様ご本人の利用のため以外の複写・複製や
第三者への公開、配布、譲渡は禁止します。
小野智章(小野情報設計)
試験情報 http://ww3.tiki.ne.jp/~tno2/shikaku.htm
登録解除 http://ww3.tiki.ne.jp/~tno2/mag/mag.htm
連絡先 http://ww3.tiki.ne.jp/~tno2/profile/mail.htm
マイページ(解除、メール・アドレスの変更等)
https://mypage.mag2.com/Welcome.do
-----------------------------
テーマ記号;A1
テーマ;変換;10進数→2進数,16進数→2進数
テーマ分類;変換-1
テーマ発行番号;1
発行;2005年3月
メール番号;1-1
-----------------------------
[テーマ]
今月のテーマは、
「10進数から2進数への変換と、16進数から2進数への変換」
です。
来月のテーマは、
「パリティ」
です。
-----------------------------
[学習内容]
月毎に、1つのテーマについて、概ね、次の様な事項を学習します。
第1回;本メール
注意事項等
プログラムの仕様の提示
第2回
普通の言葉による処理の表現
フローチャートへの書換え
プログラムへの書換え
第3回
テスト用ドライバ
擬似言語での記述
空欄埋め問題の出題
第4回
穴埋め問題の解法・解答
別の空欄埋め問題の出題
(「プログラムの機能の変更」を含むことがあります。)
第5回
穴埋め問題の解法・解答
プログラムの機能の変更
(内容が多い場合は、
「プログラムの機能の変更」は、省略することがあります。
又、第4回に掲載の場合もあります。)
[関連ページ]
月毎のテーマの予定とバックナンバーは、
次のページで確認して下さい。
テーマ一覧 http://ww3.tiki.ne.jp/~tno2/mag/casl_list.htm
配信月に出来なかった訂正や追加情報も掲載します。
購読後も、適宜参照して下さい。
過去のバックナンバーが購読可能です。
購読ページ http://www.mag2.com/m/P0002695.html
(以前は過去2年分のみ購読可能でしたが、
2009年7月のシステム変更で、それ以前のものも購読可能になった様です。)
CASLとフローチャートの基本は、学習済みであることを前提としています。
Webページとして公開している「CASL入門」と「フローチャート入門」で、
これらを予め学習しておくことをお薦めします。
CASL入門 http://ww3.tiki.ne.jp/~tno2/shikaku/casl_content.htm
フローチャート入門 http://ww3.tiki.ne.jp/~tno2/shikaku/flow.htm
「フローチャート入門」には、
試験で出題される擬似言語についても掲載しています。
[プログラム実行環境]
作成するプログラムは、
Web上で公開しているCASLアセンブラ&エミュレータ「Rook」で、
動作確認出来ます。
Rook http://ww3.tiki.ne.jp/~tno2/tools/rook.htm
Rookの利用を希望する場合は、予め、
あなたのブラウザ環境でのRookの動作を確認しておくことをお薦めします。
尚、作成するプログラム中で使用する機能
(副プログラム、サブルーチンや命令)の内、
各テーマの学習の主要素でないものは、
学習の簡便のため、Rook独自の機能拡張によって実現しています。
このため、
Rook以外のCASLシミュレータで動作確認する場合は、
該当する機能のプログラムを自作しなければならない場合があります。
[表記]
説明文やCASLの命令が混在する箇所では、次の様な書き分けをしています。
行の先頭に「!!」のある行は、説明です。
行の先頭に「!」が1つだけある行は、「CASLの命令」です。
[プログラム作成手順]
紹介している作成手順やアルゴリズム、プログラムは、
色々な方法の内の一例です。
作成手順は、分かり易く、段階的に進めるのに良い方法を示しています。
概ね、次の様な手順によります。
0.「プログラムの説明」を良く読む。
1.エラー処理は、別処理とする。
(処理中にエラーか判定し、エラーの場合には、エラー処理へ行く。)
2.例外処理も、基本的には同様。
3.汎用レジスタの保存と復旧は、主要処理の前と後に置く。
汎用レジスタの復旧の後、プログラムの呼出し元へ戻る。
(エラー処理や例外処理からの合流に注意)
4.「プログラムの説明」に書いてある必要な機能を、
処理として、大まかな記述から詳細な記述へと、段階的に詳細化して行く。
(それぞれがCASLの命令になるまで。)
記述は、次の様に行って行く。
4-1.処理を言葉で表現。
4-2.フローチャートで表現し直す。
4-3.出来る範囲で、CASLの命令で表現し直す。
4-4.CASLの命令に成らなかった部分を、4-1以下の作業を行って、詳細化。
途中、ラベルやレジスタは、適宜、分かり易い名称等で代用しても良い。
5.全体を1つに纏め、代用した名称等も正しい表現に直す。
定数データや作業領域等を追加し、ラベル等を適切に設定すれば良い。
尚、各詳細化やプログラム化は、一例であって、
別法や工夫の余地等があります。
特に、使用する汎用レジスタの選択は、自由度が高いです。
作成の各段階では、直ぐに作成結果を見ないで、
自ら考えてみることで理解が進みます。
あなたの考えと異なる方法で作成されているかもしれませんが、
あなたの考えが間違っているとは限らないです。
出来れば、自分で考えた方法でもプログラムを完成させ、
正しく動作するか確かめてみましょう。
-----------------------------
[プログラムの仕様の提示]
次の「プログラムの説明」で示されるプログラムを作成します。
実際の作成過程は次回から始めますが、
自分でもある程度は考えておいて下さい。
-----------------------------
[プログラムの説明]
入力装置から10進数を入力し、
それを2進数データに変換する副プログラムDEC2BINである。
1.入力装置から1〜4桁の10進数を入力し、
それを2進数データに変換した結果をGR0に格納する。
2.次の様な入力はエラーとし、エラー・メッセージを出力して、
再入力を要求する。
4桁を越える入力
10進数以外の文字の入力
3.入力が空、またはEOFの場合、GR0に−1を格納する。
4.結果以外のレジスタは、内容を保存する。
|