・   「Java II 実習」 第5回

5:基本のアルゴリズム(2)

基本的のアルゴリズムである、合計、平均、最大値、最小値、単純なソート について学びます。
また、別のクラスのメソッドを呼び出して利用する方法についても解説します。


・ 準備:

  1. LinuxもしくはWindowdsの環境でログインしなさい。
  2. 作業のための端末エミュレータのウィンドウを開きなさい。
  3. ホームディレクトリの下の作業用のディレクトリ java2 の中に移動しなさい。
  4. 前回の基本課題が終わっていない人は、そちらから先に行ってください。 (Goukei, Heikin, Saidai, Saisho, SimpleSort が既にあること)

・ 基本課題1:「配列を返り値にするメソッド」
与えられた配列と順番を逆転した内容の配列を新しく作って返します。

  1. ソースファイル Reverse.java を作成しなさい。
  2. javac コマンドでコンパイルをしなさい。
  3. 実行し、処理の結果を確認しなさい。

・ 基本課題2:「バブルソート(交換法)のアルゴリズム」

  1. ソースファイル BubbleSort.java を作成しなさい。
  2. javac コマンドでコンパイルをしなさい。
  3. 実行し、途中経過も含めた処理の結果を確認しなさい。
  4. SimpleSortとの違いを確認しなさい。

・ 基本課題3:「ソートのプログラムの変更」

  1. ソースファイル BubbleSort.java を変更し、 途中経過は省略して結果のみ出力するようにしなさい。
  2. javac コマンドでコンパイルをしなさい。
  3. 実行結果を確認しなさい。

・ 基本課題4:「他のクラスのメソッドを呼び出して利用する」

  1. ソースファイル SeisekiShori.java を作成しなさい。
  2. javac コマンドでコンパイルをしなさい。
  3. 実行し、結果を確認しなさい。

・ 基本課題5:「成績データの生成」
Mathクラスの random()メソッドを呼び出すことで、試験の成績を擬似的に生成してみます。

  1. ソースファイル MakeData.java を作成しなさい。
  2. javac コマンドでコンパイルをしなさい。
  3. 次のようにコマンドラインの引数にデータの個数のデータを指定し、 実行してみなさい。

java  MakeData  20
java  MakeData  50
java  MakeData  100

・ 基本課題6:「生成した成績データの利用」

  1. 上記の出力結果をコピー&ペーストするなどし、 課題4のデータ部分を新たに生成したデータに置き換え、 コンパイルと実行をしてみなさい。

・ 基本課題7:「生成した成績データの利用(2)」
MakeDataの makeData()メソッドを呼び出して多数の個数のデータをソートする 実験です。

  1. 1000個のデータを並び替える実験をします。 ソースファイル SortTest.java を作成しなさい。
  2. javac コマンドでコンパイルをしなさい。
  3. 実行し、結果を確認しなさい。
  4. データの個数を10000個、100000個に増やすと、処理の時間はどうなりますか?
  5. BubbleSortの代わりにSimpleSortの sort()メソッドを呼び出すようにすると、 結果はどうなるでしょうか?

・ メールによるレポート課題: 以下の結果を tatsuo宛のメール で知らせてください。 件名(Subject)は java16

  1. 学籍番号と氏名
  2. SimpleSort と BubbleSortで得られた途中経過の出力を比較し、 どのような違いがあったか説明しなさい。 (ヒント:どちらの側から値が確定しましたか? どちらの方が早い段階でソートの処理が完了しましたか?)
  3. 課題7で、データ数が増えると処理時間はどうなりましたか?

実習の目次   今週の講義の内容