発展課題 (r3:スプレッドシート)

注意点

このページは復習 (r3)の発展課題を掲載しています。発展課題については「復習回の課題について」をよく読んでから取り掛かってください。

作業について

今回の課題は以下のパッケージに作成してください。

パッケージの名前
j1.review03

作成するクラスの名前は問題ごとに指示があります。下記を参照してください

課題の提出方法については下記を参照してください。

また、別のコンピューター上に移動する際には、下記を参考にプログラムを持ち帰ってください。

新しい内容

今回はスプレッドシートに関する新しい内容はありません。

問題

AかBのどちらかを選択してください。

A. お小遣い帳

作成するクラスの名前
AccountS1

1か月分の収入や支出の明細を記録できる帳簿プログラムを作成してください。

たとえば次のような機能を持ちます。

  • 先月からの繰越金の管理
  • 収入の日付と明細を管理
  • 支出の日付と明細を管理
  • それぞれの項目の残高を表示

B. 仮想機械+

作成するクラスの名前
VirtualMachineS1

第10回の課題を参考に、さらにいくつかの命令を追加した仮想機械のプログラムを作成してください。

第10回の課題では、どうしても次の2つを実現するのが大変です。

  • メソッドの起動
  • 配列の操作

そこで、今回は次のような命令を追加して、上記の命令を仮想機械で取り扱えるようにしてください。

  • メソッド起動のように別の命令のかたまりにジャンプして、あとで起動元に返ってこられる命令
    • 現在の次の行をメモリー上に記憶したあと、指定の行にジャンプする
    • メモリー上の値を行番号として、そこにジャンプする
  • メモリー上のインデックスを、別のメモリー上の値を使って指定する
    • メモリー上の値を別のメモリーのインデックスとして、そこから値を読み出す
    • メモリー上の値を別のメモリーのインデックスとして、そこに値を書き込む

後半は少し難しいかもしれません。Javaの配列では次のようなイメージです。

memory[memory[a]] = memory[b];
memory[a] = memory[memory[b]];

この課題は、コンピューターアーキテクチャーやコンパイラーなどに詳しい先生と相談するといいと思います。