アルゴリズムから学ぶ Javaプログラミング入門

リスト 11.1 台形法による定積分
行
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
プログラムの内容
// 台形法による定積分
class Daikeihou {
public static void main(String args[]) {
// 条件の定義
double a = 2.0;
double b = 10.0;
int n = 1000;
// 変数の定義
double h;
double dXleft, dYleft, dXright, dYright;
double dDaikei;
double dSekibun;
// 初期値の設定
h = (double)(b - a)/n;
dSekibun = 0.0;
dXleft = a;
// 区間 a
// 区間 b
// 分割数 n
//
//
//
//
台形の高さ
座標値
台形の面積
定積分の結果
// キャスト
// 台形法の繰返し処理
for(int i=1; i<=n; i++) {
dYleft = dXleft*dXleft*dXleft - 7.0*dXleft + 10.0;
dXright = dXleft + h;
dYright = dXright*dXright*dXright - 7.0*dXright + 10.0;
dDaikei = (dYleft + dYright) * h / 2.0; // 面積計算
dSekibun += dDaikei;
// 面積の加算
dXleft = dXright;
}
System.out.println("定積分:" + dSekibun); // 結果の表示
}
}
1
↓
(修正後の実行画面)
図-11.4 コマンドプロンプトの実行画面
2
↓
(修正後の実行画面)
図-11.5 Eclipse の実行画面
3
103 ページ:図-15.3
開始
バブルソート
i=1 , i=i+1 , i>n-1
入替処理
j=n-1 , j=j-1 , j<i
iData(j)<iData(j-1)
NO
YES
work = iData(j)
iData(j) = iData(j-1)
iData(j-1) = work
入替処理
バブルソート
終了
図-15.3 バブルソートのフローチャート
4
リスト 17.1 コンストラクタを使ったクラス Total4
行
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
プログラムの内容
class Total4 {
// フィールド
long lTotal;
// コンストラクタ
Total4() {
lTotal = 0;
}
// メソッド getTotal
public static long getTotal(int iData[]) {
for (int i=0; i<iData.length; i++) {
lTotal += iData[i];
}
return lTotal;
}
}
リスト 17.3 コンストラクタに引数を使ったクラス Total5
行
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
プログラムの内容
class Total5 {
// フィールド
long lTotal;
// コンストラクタ
Total5(long lSet) {
lTotal = lSet;
}
// メソッド getTotal
public static long getTotal(int iData[]) {
for (int i=0; i<iData.length; i++) {
lTotal += iData[i];
}
return lTotal;
}
}
5
リスト 20.2 オーバーライドのクラス Total5
行
1
2
3
4
5
6
7
8
9
10
11
12
プログラムの内容
// バブルソート(オーバーライド)
class Tool5 extends Tool4 {
// データ表示:int 型
public void doDisp(int iData[]) {
System.out.println("[ ソートデータ ]int 型");
for(int i=0; i<iData.length; i++) {
System.out.printf(" %2d 番目:%3d\n", i+1, iData[i]);
}
}
// メソッド終端
}
// クラス終端
リスト 22.3 インターフェースを使ったクラス Square
行
1
2
3
4
5
6
7
8
9
10
11
プログラムの内容
// 四角形の面積計算
class Square implements Area {
// メソッド getArea
// 縦:dData[0]、横:dData[1]
public double getArea(double dData[]) {
double dArea = dData[0] * dData[1];
return dArea;
}
}
// クラス終端
6
リスト 24.1 テキストデータの出力クラス Tool9
行
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
プログラムの内容
// テキストデータ出力
import java.io.*;
// ファイル出力クラスのパッケージ
class Tool9 {
// フィールド
FileWriter fw;
BufferedWriter bw;
String errorMessage; // エラーメッセージ
// コンストラクタ
Tool9(String fileName) {
try {
fw = new FileWriter(fileName);
// インスタンス生成
bw = new BufferedWriter(fw);
// インスタンス生成
// エラー処理
} catch(IOException e) {
errorMessage= "ファイルを作成できません。";
}
}
// メソッド
public String writeString(int iData[]) {
String sWork;
errorMessage = null;
try {
for(int i=0; i<iData.length; i++) {
sWork = Integer.toString(iData[i]);
// テキスト変換
bw.write(sWork);
// テキストデータ出力
bw.newLine();
// 改行
}
bw.close();
// クローズ
// エラー処理
} catch(IOException e) {
errorMessage = "ファイル書き込みエラー";
}
return errorMessage;
}
}
7