課題1-5

1.四則演算を行う電卓プログラム(40点)とその状態遷移図(40点)を作成せよ。仕様は以下の通り。
 (正の整数のみの演算。実数の演算機能は実装しなくてよい。演算の優先順位は考慮しない)

 ・数値の入力はPA0を押した回数とする。(何も押していない時は0、1回押すごとに+1)
 ・四則演算(+、-、*、/)の入力は、PA1を押した回数で選択する。(+、一回押すごとに-、*、/、+ ...の順で切り替える)
 ・=はPA2を押すことで実行。
 ・クリアはPA3。
 ・入力値、演算結果の表示はprintfで行う。表示の様式は任意。
 ・チャタリング対策を施すこと。
 ・動作を確認したい人は、このプログラムを実行する事。(表示などは、任意に設定して良い)

ex1) 3 + 4 = 7の演算は、
 PA0を3回押す ⇒ PA1を1回押す ⇒ PA0を4回押す ⇒ PA2を押す(演算結果が表示される) ⇒ 最初に戻る

ex2) 0 - 4 = -4の演算は、
 PA1を2回押す ⇒ PA0を4回押す ⇒ PA2を押す(演算結果が表示される) ⇒ 最初に戻る

※ PA3を押すと、入力したデータをクリアして、最初に戻る。

状態遷移図の記述に当たっては、始め・イベント・アクションを正確に記述する事。
記述がない、間違っている等については、減点とする。

2.更に出来る人は、連続した演算ができるようにプログラムを改造すること。(20点)

ex) 3 + 4 + 2 = 9の演算は、
 PA0を3回押す ⇒ PA1を1回押す ⇒ PA0を4回押す ⇒ PA1を押す(これまでの演算結果が表示される) ⇒ PA0を2回押す ⇒ PA2を押す(演算結果が表示される) ⇒ 最初に戻る

※提出物
 1もしくは2のソースと状態遷移図。2が出来た人は、1のソース及び状態遷移図は不要。
 どちらの課題を実施したか明記すること。
※注意 氏名・課題名を明記すること。
 

【その他の注意】
以下のようなコンパイルエラーが発生した場合は、セクションの定義を一部変更すること。

L1100 (W) Cannot find "B" specified in option "start"
L2321 (E) Section "D" overlaps section "P"

※修正した設定

これでも症状が改善しない場合は、B,Dの設定を0x00FFEA00などに変えて確かめること。

最終更新:2015年01月30日 10:11