・   「Java II 実習」 第6回

6:基本のアルゴリズム(3)

別のクラスのメソッドを呼び出して利用する方法について練習します。 実行時のコマンドライン引数の意味と利用方法についても解説します。


・ 準備:

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

・ 基本課題1:「コマンドライン引数の利用(1)」

  1. ソースファイル ArgsTest1.java を作成しなさい。
  2. javac コマンドでコンパイルをしなさい。
  3. コマンドライン引数として適当に文字列を渡して実行し結果を確認しなさい。
  4. コマンドライン引数を渡さないとエラーになることも確認しなさい。

java  ArgsTest1  abcdefg
java  ArgsTest1  1234567
java  ArgsTest1  "abc  def  ghi"
java  ArgsTest1  abc  def  ghi
java  ArgsTest1

・ 基本課題2:「コマンドライン引数の利用(2)」

  1. ソースファイル ArgsTest2.java を作成しなさい。
  2. javac コマンドでコンパイルをしなさい。
  3. コマンドライン引数として適当な個数の文字列を渡し、 それらが1行ずつに表示されることを確認しなさい。

java  ArgsTest2  abc
java  ArgsTest2  abc  def
java  ArgsTest2  abc  def  ghi

・ 基本課題3:「コマンドライン引数の利用(3)」

  1. ソースファイル ArgsTest3.java を作成しなさい。
  2. javac コマンドでコンパイルをしなさい。
  3. コマンドライン引数に数字を与え、 指定された回数だけ行が表示されることを確認しなさい。

java  ArgsTest3  10
java  ArgsTest3  20

・ 基本課題4:「コマンドライン引数の利用(4)」

  1. ソースファイル ArgsTest4.java を以下の条件を満たすように作成しなさい。
  2. コマンドライン引数の第1引数を繰り返しの回数、 第2引数を繰り返すメッセージと解釈し、 指定された回数だけ与えられたメッセージを繰り返して表示させなさい。

java  ArgsTest4  5  Hello

[0]:Hello
[1]:Hello
[2]:Hello
[3]:Hello
[4]:Hello

・ 基本課題5:「コマンドライン引数の利用(5)」

  1. ソースファイル ArgsTest5.java を以下の条件を満たすように作成しなさい。
  2. コマンドラインに与えられた引数(すべて数字とする)を整数値に変換し、 それらの値をすべて合計した結果を表示する。

java  ArgsTest5  100  40  30

Sum=170

・ 基本課題6:「ソートのアルゴリズム(3)」
クィックソートと呼ばれる効率の良いアルゴリズムです。

  1. ソースファイル QuickSort.java を作成しなさい。
  2. javac コマンドでコンパイルをしなさい。
  3. 実行して確認用のデータがソートされることを確認しなさい。

・ 基本課題7:「ソートのアルゴリズム(4)」
マージソートと呼ばれる効率の良いアルゴリズムです。

  1. ソースファイル MergeSort.java を作成しなさい。
  2. javac コマンドでコンパイルをしなさい。
  3. 実行して確認用のデータがソートされることを確認しなさい。

・ 基本課題8:「ソートの速度の比較(2)」
実験です。

  1. 100000個のデータを並び替える実験をします。 ソースファイル SortTest2.java を作成しなさい。
  2. javac コマンドでコンパイルをしなさい。
  3. コマンドラインからどのソートを呼び出すのかオプションの形式で指定をし、 実行しを繰り返して結果を確認しなさい。

java  SortTest2  -s
java  SortTest2  -b
java  SortTest2  -q
java  SortTest2  -m
java  SortTest2  -j


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

  1. 学籍番号と氏名
  2. 課題1でコマンドライン引数を与えないで実行すると、 どんなエラーメッセージが表示されましたか?
  3. 課題5のソースファイルを添付しなさい。
  4. 課題8でデータの個数が100000個の時、 それぞれのソートのアルゴリズムは処理にどの程度の時間がかかりましたか?

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