SlideShare ist ein Scribd-Unternehmen logo
1 von 50
データ解析の基礎
       Java文法,変数と型




2008年8月,データ解析の基礎,加藤,瀬々,金子.   1
目標

• Java文法の基本,変数を理解する
  – 変数とは何か?
     • 変数とは変数を入れる箱
  – 変数には型がある,i.e. いろんなタイプの箱がある
     • 整数には int 型,実数には double 型
  – 型は相互に変換できる
     • キャストを使う




 2008年8月,データ解析の基礎,加藤,瀬々,金子.       2
目標

• Java文法の基本,変数を理解する
  – 変数とは何か?
     • 変数とは変数を入れる箱
  – 変数には型がある,i.e. いろんなタイプの箱がある
     • 整数には int 型,実数には double 型
  – 型は相互に変換できる
     • キャストを使う




 2008年8月,データ解析の基礎,加藤,瀬々,金子.       3
変数とは値を入れる箱
  Test01a.java
public class Test01a {
  public static void main( String[] args ){
     int a, b, c;         「変数 a, b, c を使う」と宣言
     a = 5;
     b = 3;
     c = a + b;
     System.out.println(“c=“+c);
  }
}

   スタック              計算機の中のメモリの一部

       a             b              c

 正確には,最初,値0が入っているが,値を設定せずに値を読み出すとコンパイルエラーとなるので,初期値は気にする必要はない.


  2008年8月,データ解析の基礎,加藤,瀬々,金子.                                    4
変数とは値を入れる箱
   Test01a.java
public class Test01a {
  public static void main( String[] args ){
     int a, b, c;
     a = 5;
     b = 3;
     c = a + b;
     System.out.println(“c=“+c);
  }
}

    スタック               計算機の中のメモリの一部

      a=5              b              c


  2008年8月,データ解析の基礎,加藤,瀬々,金子.                  5
変数とは値を入れる箱
   Test01a.java
public class Test01a {
  public static void main( String[] args ){
     int a, b, c;
     a = 5;
     b = 3;
     c = a + b;
     System.out.println(“c=“+c);
  }
}

    スタック               計算機の中のメモリの一部

      a=5             b=3             c


  2008年8月,データ解析の基礎,加藤,瀬々,金子.                  6
変数とは値を入れる箱
   Test01a.java
public class Test01a {
  public static void main( String[] args ){
     int a, b, c;
     a = 5;
     b = 3;
     c = a + b;
     System.out.println(“c=“+c);
  }
}

    スタック               計算機の中のメモリの一部

      a=5             b=3           c=8


  2008年8月,データ解析の基礎,加藤,瀬々,金子.                  7
変数とは値を入れる箱
   Test01c.java

public class Test01c {
  public static void main( String[] args ){
     int a, b, c, d, e, f, sum;  変数 a, b, c, d, e, f, sum を使うと宣言
     a = 3; b = 1; c = 5; d = 4; e = 7; f = 6;
     sum = a + b + c + d + e + f;
     System.out.println(“sum=“+sum);
  }
}

    スタック


   a         b    c       d      e       f      sum


  2008年8月,データ解析の基礎,加藤,瀬々,金子.                                       8
変数とは値を入れる箱
   Test01c.java

public class Test01c {
  public static void main( String[] args ){
     int a, b, c, d, e, f, sum;
     a = 3; b = 1; c = 5; d = 4; e = 7; f = 6;
     sum = a + b + c + d + e + f;
     System.out.println(“sum=“+sum);
  }
}

    スタック


  a=3        b        c        d        e        f   sum


   2008年8月,データ解析の基礎,加藤,瀬々,金子.                              9
変数とは値を入れる箱
   Test01c.java

public class Test01c {
  public static void main( String[] args ){
     int a, b, c, d, e, f, sum;
     a = 3; b = 1; c = 5; d = 4; e = 7; f = 6;
     sum = a + b + c + d + e + f;
     System.out.println(“sum=“+sum);
  }
}

    スタック


  a=3      b=1        c        d        e        f   sum


   2008年8月,データ解析の基礎,加藤,瀬々,金子.                              10
変数とは値を入れる箱
   Test01c.java

public class Test01c {
  public static void main( String[] args ){
     int a, b, c, d, e, f, sum;
     a = 3; b = 1; c = 5; d = 4; e = 7; f = 6;
     sum = a + b + c + d + e + f;
     System.out.println(“sum=“+sum);
  }
}

    スタック


  a=3      b=1      c=5        d        e        f   sum


   2008年8月,データ解析の基礎,加藤,瀬々,金子.                              11
変数とは値を入れる箱
   Test01c.java

public class Test01c {
  public static void main( String[] args ){
     int a, b, c, d, e, f, sum;
     a = 3; b = 1; c = 5; d = 4; e = 7; f = 6;
     sum = a + b + c + d + e + f;
     System.out.println(“sum=“+sum);
  }
}

    スタック


  a=3      b=1      c=5      d=4        e        f   sum


   2008年8月,データ解析の基礎,加藤,瀬々,金子.                              12
変数とは値を入れる箱
   Test01c.java

public class Test01c {
  public static void main( String[] args ){
     int a, b, c, d, e, f, sum;
     a = 3; b = 1; c = 5; d = 4; e = 7; f = 6;
     sum = a + b + c + d + e + f;
     System.out.println(“sum=“+sum);
  }
}

    スタック


  a=3      b=1      c=5      d=4       e=7       f   sum


   2008年8月,データ解析の基礎,加藤,瀬々,金子.                              13
変数とは値を入れる箱
   Test01c.java

public class Test01c {
  public static void main( String[] args ){
     int a, b, c, d, e, f, sum;
     a = 3; b = 1; c = 5; d = 4; e = 7; f = 6;
     sum = a + b + c + d + e + f;
     System.out.println(“sum=“+sum);
  }
}

    スタック


  a=3      b=1      c=5      d=4       e=7       f=6   sum


   2008年8月,データ解析の基礎,加藤,瀬々,金子.                                14
変数とは値を入れる箱
   Test01c.java

public class Test01c {
  public static void main( String[] args ){
     int a, b, c, d, e, f, sum;
     a = 3; b = 1; c = 5; d = 4; e = 7; f = 6;
     sum = a + b + c + d + e + f;
     System.out.println(“sum=“+sum);
  }
}

    スタック


  a=3      b=1      c=5      d=4       e=7       f=6   sum=26



   2008年8月,データ解析の基礎,加藤,瀬々,金子.                                   15
デバッガを使って
     計算機の内部の様子を確認してみましょう




2008年8月,データ解析の基礎,加藤,瀬々,金子.   16
デバッグ

Eclipseを起動する


プロジェクトを新規作成する


(1) ソースプログラムを書く


                            デバッグ,つまりプログラムの誤りを
(2,3) コンパイル&実行              修正する




   2008年8月,データ解析の基礎,加藤,瀬々,金子.               17
デバッガの使い方,まずトグルポイントをつける



             ダブルクリック




2008年8月,データ解析の基礎,加藤,瀬々,金子.   18
デバッガの使い方,デバッガを起動




2008年8月,データ解析の基礎,加藤,瀬々,金子.   19
デバッガの使い方

「Debug perspective という画面を開いてもよいか?」と聞かれている




                                Yesをクリック

 2008年8月,データ解析の基礎,加藤,瀬々,金子.                 20
デバッガの使い方,1ステップずつ進める




2008年8月,データ解析の基礎,加藤,瀬々,金子.   21
デバッガの使い方,1ステップずつ進める




2008年8月,データ解析の基礎,加藤,瀬々,金子.   22
デバッガの使い方,1ステップずつ進める




2008年8月,データ解析の基礎,加藤,瀬々,金子.   23
デバッガの使い方




2008年8月,データ解析の基礎,加藤,瀬々,金子.   24
デバッガの使い方,1ステップずつ進める




2008年8月,データ解析の基礎,加藤,瀬々,金子.   25
デバッガの使い方,1ステップずつ進める




2008年8月,データ解析の基礎,加藤,瀬々,金子.   26
デバッガの使い方,1ステップずつ進める




2008年8月,データ解析の基礎,加藤,瀬々,金子.   27
デバッガの使い方,デバッガを停止させる




2008年8月,データ解析の基礎,加藤,瀬々,金子.   28
デバッガの使い方,もとの画面に戻る




2008年8月,データ解析の基礎,加藤,瀬々,金子.   29
デバッガの使い方




2008年8月,データ解析の基礎,加藤,瀬々,金子.   30
練習.




        実際にデバッガを動かしてみよう




2008年8月,データ解析の基礎,加藤,瀬々,金子.   31
練習.実際にデバッガを動かしてみよう
プロジェクト名: test01      今回は,まず,すでに作成済みのファイルを開くだけ


 Test01e.java   6! を計算する      デバッガを実際に動かしてみよう
public class Test01e {
  public static void main( String[] args ){
     int a;
     a = 6;      変数 a に値 6 を代入されているか確認せよ
     a = a*5; 式 a*5 の値を計算して変数 a に代入されているか確認せよ
     a = a*4; 式 a*4 の値を計算して変数 a に代入されているか確認せよ
     a = a*3; 式 a*3 の値を計算して変数 a に代入されているか確認せよ
     a = a*2; 式 a*2 の値を計算して変数 a に代入されているか確認せよ
     a = a*1; 式 a*1 の値を計算して変数 a に代入されているか確認せよ
     System.out.println(“a=“+a);
  }
}

 2008年8月,データ解析の基礎,加藤,瀬々,金子.                32
目標

• Java文法の基本,変数を理解する
  – 変数とは何か?
     • 変数とは値を入れる箱
  – 変数には型がある,i.e. いろんなタイプの箱がある
     • 整数には int 型,実数には double 型
  – 型は相互に変換できる
     • キャストを使う




 2008年8月,データ解析の基礎,加藤,瀬々,金子.       33
目標

• Java文法の基本,変数を理解する
  – 変数とは何か?
     • 変数とは値を入れる箱
  – 変数には型がある,i.e. いろんなタイプの箱がある
     • 整数には int 型,実数には double 型
  – 型は相互に変換できる
     • キャストを使う




 2008年8月,データ解析の基礎,加藤,瀬々,金子.       34
平均を計算してみよう
   Test01c.java

public class Test01c {
  public static void main( String[] args ){
     int a, b, c, d, e, f, sum;
     a = 3; b = 1; c = 5; d = 4; e = 7; f = 6;
     sum = a + b + c + d + e + f;
     System.out.println(“sum=“+sum);
  }
}


合計を6で割れば平均だから..




   2008年8月,データ解析の基礎,加藤,瀬々,金子.                    35
平均を計算してみよう,失敗例

public class Test01c {
  public static void main( String[] args ){
     int a, b, c, d, e, f, sum, ave;
     a = 3; b = 1; c = 5; d = 4; e = 7; f = 6;
     sum = a + b + c + d + e + f;
     ave = sum/6;
     System.out.println(“ave=“+ave);
  }
}
合計を6で割れば平均だから..↑赤字のように変更してみた
         画面
  ave=4
あれ!?平均は 4.33333…. のはずのに.
   2008年8月,データ解析の基礎,加藤,瀬々,金子.                    36
int とは整数型
       「変数 a, b, c, d, e, f, sum, ave は int 型の箱」と宣言
public class Test01c {                           int 型とは整数型
  public static void main( String[] args ){
                                                 を意味する
     int a, b, c, d, e, f, sum, ave;
     a = 3; b = 1; c = 5; d = 4; e = 7; f = 6;
     sum = a + b + c + d + e + f;
     ave = sum/6;                                int   型   +   int   型   =   int   型
     System.out.println(“ave=“+ave);             int   型   -   int   型   =   int   型
                                                 int   型   *   int   型   =   int   型
  }                                              int   型   /   int   型   =   int   型
}




   2008年8月,データ解析の基礎,加藤,瀬々,金子.                                                 37
int とは整数型
       「変数 a, b, c, d, e, f, sum, ave は int 型の箱」と宣言
public class Test01c {                             int 型とは整数型
  public static void main( String[] args ){
                                                   を意味する
     int a, b, c, d, e, f, sum, ave;
     a = 3; b = 1; c = 5; d = 4; e = 7; f = 6;
     sum = a + b + c + d + e + f;
     ave = sum/6;                                  int   型   +    int   型   =   int   型
     System.out.println(“ave=“+ave);               int   型   -    int   型   =   int   型
                                                   int   型   *    int   型   =   int   型
  }                                                int   型   /    int   型   =   int   型
}

       スタック


    a=3      b=1       c=5      d=4      e=7     f=6     sum=26     ave=4


   2008年8月,データ解析の基礎,加藤,瀬々,金子.                                                    38
int とは整数型
       「変数 a, b, c, d, e, f, sum, ave は int 型の箱」と宣言
public class Test01c {                             int 型とは整数型
  public static void main( String[] args ){
                                                   を意味する
     int a, b, c, d, e, f, sum, ave;
     a = 3; b = 1; c = 5; d = 4; e = 7; f = 6;
     sum = a + b + c + d + e + f;
     ave = sum/6;                                  int   型   +    int   型   =   int   型
     System.out.println(“ave=“+ave);               int   型   -    int   型   =   int   型
                                                   int   型   *    int   型   =   int   型
  }                                                int   型   /    int   型   =   int   型
}
                        整数型なので 26 / 6 = 4
       スタック


    a=3      b=1       c=5      d=4      e=7     f=6     sum=26     ave=4


   2008年8月,データ解析の基礎,加藤,瀬々,金子.                                                    39
実数を使うなら double
      「変数 a, b, c, d, e, f, sum, ave は double 型の箱」と宣言
public class Test02a {                            double 型とは実数型
  public static void main( String[] args ){
                                                  を意味する
     double a, b, c, d, e, f, sum, ave;
     a = 3; b = 1; c = 5; d = 4; e = 7; f = 6;
     sum = a + b + c + d + e + f;        「6」ではなく「6.0」と書くと
     ave = sum/6.0;                      実数型の定数を意味する
     System.out.println(“ave=“+ave);            double 型 + double 型 = double    型
  }                                             double 型 - double 型 = double    型
                                                double 型 * double 型 = double    型
}                                               double 型 / double 型 = double    型


                       実数型なので 26.0 / 6.0 = 4.3333..
      スタック


    a=3     b=1      c=5      d=4     e=7      f=6    sum=26    ave=4.3333..


  2008年8月,データ解析の基礎,加藤,瀬々,金子.                                               40
練習2-a. 平均のプログラム
  Test02a.java      プロジェクト名: test02
public class Test02a {
  public static void main( String[] args ){
     double a, b, c, d, e, f, sum, ave;
     a = 3; b = 1; c = 5; d = 4; e = 7; f = 6;
     sum = a + b + c + d + e + f;
     ave = sum/6.0;
     System.out.println(“ave=“+ave);
  }
}

  実際に,この部分を書き換えて int 型と double 型を試してみて
  違いを確かめよう


   2008年8月,データ解析の基礎,加藤,瀬々,金子.                    41
目標

• Java文法の基本,変数を理解する
  – 変数とは何か?
     • 変数とは変数を入れる箱
  – 変数には型がある,i.e. いろんなタイプの箱がある
     • 整数には int 型,実数には double 型
  – 型は相互に変換できる
     • キャストを使う




 2008年8月,データ解析の基礎,加藤,瀬々,金子.       42
目標

• Java文法の基本,変数を理解する
  – 変数とは何か?
     • 変数とは変数を入れる箱
  – 変数には型がある,i.e. いろんなタイプの箱がある
     • 整数には int 型,実数には double 型
  – 型は相互に変換できる
     • キャストを使う




 2008年8月,データ解析の基礎,加藤,瀬々,金子.       43
もう一つの方法

     型変換




2008年8月,データ解析の基礎,加藤,瀬々,金子.   44
全部 double にする以外の方法は?
  Test02a.java      プロジェクト名: test02
public class Test02a {
  public static void main( String[] args ){
     double a, b, c, d, e, f, sum, ave;
     a = 3; b = 1; c = 5; d = 4; e = 7; f = 6;
     sum = a + b + c + d + e + f;
     ave = sum/6.0;
     System.out.println(“ave=“+ave);
  }
}

  後から,double にしてしまうと,これまでうっかり int 型を想定して
  作っていた部分がある場合,バグの原因になる.



   2008年8月,データ解析の基礎,加藤,瀬々,金子.                    45
もう一つの方法,型変換
  Test02b.java
public class Test02b {                           型を変換する方法を学ぼう
  public static void main( String[] args ){
     int a, b, c, d, e, f, sum;                    (double)式
     double ave;                                   式を double 型にする
     a = 3; b = 1; c = 5; d = 4; e = 7; f = 6;     (int)式
     sum = a + b + c + d + e + f;                  式を int 型にする
     ave = ((double)sum)/6.0;
     System.out.println(“ave=“+ave);             sum               int 型
  }                   「6」ではなく「6.0」と書くと           (double)sum       double 型
}                     実数型の定数を意味する                ((double)sum)/6.0 double 型

       スタック

    a=3      b=1       c=5      d=4      e=7     f=6   sum=26   ave=4.3333..


   2008年8月,データ解析の基礎,加藤,瀬々,金子.                                              46
練習2-b,型変換
  Test02b.java      プロジェクト名: test02              次のように書き換えたとき
public class Test02b {                           どうなるか試してみよ
  public static void main( String[] args ){
     int a, b, c, d, e, f, sum;                  (1)(ア)を int ave; に戻す
     double ave; ...(ア)                             (イ)は ave=sum/6; に戻す
     a = 3; b = 1; c = 5; d = 4; e = 7; f = 6;
     sum = a + b + c + d + e + f;                (2)(ア)を int ave; に戻す
     ave = (int)(((double)sum)/6.0);
                                  ...(イ)            (イ)はそのまま
     System.out.println(“ave=“+ave);
  }                                              (3) (ア)はそのまま
}                                                    (イ)を
                                                      ave=(double)(sum/6);

                                                 また,なぜそうなるか
                                                 考えてみよう

   2008年8月,データ解析の基礎,加藤,瀬々,金子.                                            47
まとめ

• Java文法の基本,変数を理解する
  – 変数とは何か?
     • 変数とは数値を入れる箱
  – 変数には型がある,i.e. いろんなタイプの箱がある
     • 整数には int 型,実数には double 型
  – 型は相互に変換できる
     • キャストを使う
     • (double)式 : 式を double 型に変換
     • (int)式    : 式を int 型に変換




 2008年8月,データ解析の基礎,加藤,瀬々,金子.         48
補足:演算の優先順位




2008年8月,データ解析の基礎,加藤,瀬々,金子.   49
補足:暗黙のキャスト

•   double 型から int 型への暗黙のキャストは許されてい
    ない
     – コンパイルエラーとして検出される
•   int 型から double 型への暗黙のキャストは許されてい
    る

    double x;        double x;     double x;
    int i;           int i;        int i;
    x = 2.0;         x = 2.0;      i = 2;
    i = x;           i = (int)x;   x = i;


    コンパイルエラー        OK             OK


    2008年8月,データ解析の基礎,加藤,瀬々,金子.                 50

Weitere ähnliche Inhalte

Was ist angesagt?

Esg Ds500 Mixed Workload Results
Esg Ds500 Mixed Workload ResultsEsg Ds500 Mixed Workload Results
Esg Ds500 Mixed Workload Resultschowhf
 
三角ポリゴンの描き方 - How to draw a triangular polygon
三角ポリゴンの描き方 - How to draw a triangular polygon三角ポリゴンの描き方 - How to draw a triangular polygon
三角ポリゴンの描き方 - How to draw a triangular polygonsoranoana dev
 
พื้นฐานภาษา Java
พื้นฐานภาษา Javaพื้นฐานภาษา Java
พื้นฐานภาษา JavaPete Panupong
 
sigfpai2009_okanohara
sigfpai2009_okanoharasigfpai2009_okanohara
sigfpai2009_okanoharaHiroshi Ono
 
Probabilidade de ruína com fluxo de caixa e investimento governados por proce...
Probabilidade de ruína com fluxo de caixa e investimento governados por proce...Probabilidade de ruína com fluxo de caixa e investimento governados por proce...
Probabilidade de ruína com fluxo de caixa e investimento governados por proce...Universidade Federal Fluminense
 
211 Ch
211 Ch211 Ch
211 Chanjaan
 
A5 brochure ibs_arabic
A5 brochure ibs_arabicA5 brochure ibs_arabic
A5 brochure ibs_arabichaithamo
 

Was ist angesagt? (11)

Esg Ds500 Mixed Workload Results
Esg Ds500 Mixed Workload ResultsEsg Ds500 Mixed Workload Results
Esg Ds500 Mixed Workload Results
 
三角ポリゴンの描き方 - How to draw a triangular polygon
三角ポリゴンの描き方 - How to draw a triangular polygon三角ポリゴンの描き方 - How to draw a triangular polygon
三角ポリゴンの描き方 - How to draw a triangular polygon
 
804 חורף 2011
804 חורף 2011804 חורף 2011
804 חורף 2011
 
พื้นฐานภาษา Java
พื้นฐานภาษา Javaพื้นฐานภาษา Java
พื้นฐานภาษา Java
 
sigfpai2009_okanohara
sigfpai2009_okanoharasigfpai2009_okanohara
sigfpai2009_okanohara
 
Probabilidade de ruína com fluxo de caixa e investimento governados por proce...
Probabilidade de ruína com fluxo de caixa e investimento governados por proce...Probabilidade de ruína com fluxo de caixa e investimento governados por proce...
Probabilidade de ruína com fluxo de caixa e investimento governados por proce...
 
806 קיץ 2010
806 קיץ 2010806 קיץ 2010
806 קיץ 2010
 
211 Ch
211 Ch211 Ch
211 Ch
 
A5 brochure ibs_arabic
A5 brochure ibs_arabicA5 brochure ibs_arabic
A5 brochure ibs_arabic
 
Janata ka aai
Janata ka aaiJanata ka aai
Janata ka aai
 
14th issue
14th issue14th issue
14th issue
 

Andere mochten auch

Datamining 2nd decisiontree
Datamining 2nd decisiontreeDatamining 2nd decisiontree
Datamining 2nd decisiontreesesejun
 
Datamining 3rd Naivebayes
Datamining 3rd NaivebayesDatamining 3rd Naivebayes
Datamining 3rd Naivebayessesejun
 
Datamining 9th Association Rule
Datamining 9th Association RuleDatamining 9th Association Rule
Datamining 9th Association Rulesesejun
 
bioinfolec_20070706 4th
bioinfolec_20070706 4thbioinfolec_20070706 4th
bioinfolec_20070706 4thsesejun
 
Datamining 5th Knn
Datamining 5th KnnDatamining 5th Knn
Datamining 5th Knnsesejun
 
Datamining r 2nd
Datamining r 2ndDatamining r 2nd
Datamining r 2ndsesejun
 
Datamining 5th knn
Datamining 5th knnDatamining 5th knn
Datamining 5th knnsesejun
 

Andere mochten auch (9)

Datamining 2nd decisiontree
Datamining 2nd decisiontreeDatamining 2nd decisiontree
Datamining 2nd decisiontree
 
Datamining 3rd Naivebayes
Datamining 3rd NaivebayesDatamining 3rd Naivebayes
Datamining 3rd Naivebayes
 
Datamining 9th Association Rule
Datamining 9th Association RuleDatamining 9th Association Rule
Datamining 9th Association Rule
 
bioinfolec_20070706 4th
bioinfolec_20070706 4thbioinfolec_20070706 4th
bioinfolec_20070706 4th
 
080806
080806080806
080806
 
Datamining 5th Knn
Datamining 5th KnnDatamining 5th Knn
Datamining 5th Knn
 
Datamining r 2nd
Datamining r 2ndDatamining r 2nd
Datamining r 2nd
 
Datamining 5th knn
Datamining 5th knnDatamining 5th knn
Datamining 5th knn
 
080806
080806080806
080806
 

Mehr von sesejun

RNAseqによる変動遺伝子抽出の統計: A Review
RNAseqによる変動遺伝子抽出の統計: A ReviewRNAseqによる変動遺伝子抽出の統計: A Review
RNAseqによる変動遺伝子抽出の統計: A Reviewsesejun
 
バイオインフォマティクスによる遺伝子発現解析
バイオインフォマティクスによる遺伝子発現解析バイオインフォマティクスによる遺伝子発現解析
バイオインフォマティクスによる遺伝子発現解析sesejun
 
次世代シーケンサが求める機械学習
次世代シーケンサが求める機械学習次世代シーケンサが求める機械学習
次世代シーケンサが求める機械学習sesejun
 
20110602labseminar pub
20110602labseminar pub20110602labseminar pub
20110602labseminar pubsesejun
 
20110524zurichngs 2nd pub
20110524zurichngs 2nd pub20110524zurichngs 2nd pub
20110524zurichngs 2nd pubsesejun
 
20110524zurichngs 1st pub
20110524zurichngs 1st pub20110524zurichngs 1st pub
20110524zurichngs 1st pubsesejun
 
20110214nips2010 read
20110214nips2010 read20110214nips2010 read
20110214nips2010 readsesejun
 
Datamining 9th association_rule.key
Datamining 9th association_rule.keyDatamining 9th association_rule.key
Datamining 9th association_rule.keysesejun
 
Datamining 8th hclustering
Datamining 8th hclusteringDatamining 8th hclustering
Datamining 8th hclusteringsesejun
 
Datamining r 4th
Datamining r 4thDatamining r 4th
Datamining r 4thsesejun
 
Datamining r 3rd
Datamining r 3rdDatamining r 3rd
Datamining r 3rdsesejun
 
Datamining r 1st
Datamining r 1stDatamining r 1st
Datamining r 1stsesejun
 
Datamining 6th svm
Datamining 6th svmDatamining 6th svm
Datamining 6th svmsesejun
 
Datamining 4th adaboost
Datamining 4th adaboostDatamining 4th adaboost
Datamining 4th adaboostsesejun
 
Datamining 3rd naivebayes
Datamining 3rd naivebayesDatamining 3rd naivebayes
Datamining 3rd naivebayessesejun
 
Datamining 7th kmeans
Datamining 7th kmeansDatamining 7th kmeans
Datamining 7th kmeanssesejun
 
100401 Bioinfoinfra
100401 Bioinfoinfra100401 Bioinfoinfra
100401 Bioinfoinfrasesejun
 
Datamining 8th Hclustering
Datamining 8th HclusteringDatamining 8th Hclustering
Datamining 8th Hclusteringsesejun
 
Datamining 9th Association Rule
Datamining 9th Association RuleDatamining 9th Association Rule
Datamining 9th Association Rulesesejun
 
Datamining 8th Hclustering
Datamining 8th HclusteringDatamining 8th Hclustering
Datamining 8th Hclusteringsesejun
 

Mehr von sesejun (20)

RNAseqによる変動遺伝子抽出の統計: A Review
RNAseqによる変動遺伝子抽出の統計: A ReviewRNAseqによる変動遺伝子抽出の統計: A Review
RNAseqによる変動遺伝子抽出の統計: A Review
 
バイオインフォマティクスによる遺伝子発現解析
バイオインフォマティクスによる遺伝子発現解析バイオインフォマティクスによる遺伝子発現解析
バイオインフォマティクスによる遺伝子発現解析
 
次世代シーケンサが求める機械学習
次世代シーケンサが求める機械学習次世代シーケンサが求める機械学習
次世代シーケンサが求める機械学習
 
20110602labseminar pub
20110602labseminar pub20110602labseminar pub
20110602labseminar pub
 
20110524zurichngs 2nd pub
20110524zurichngs 2nd pub20110524zurichngs 2nd pub
20110524zurichngs 2nd pub
 
20110524zurichngs 1st pub
20110524zurichngs 1st pub20110524zurichngs 1st pub
20110524zurichngs 1st pub
 
20110214nips2010 read
20110214nips2010 read20110214nips2010 read
20110214nips2010 read
 
Datamining 9th association_rule.key
Datamining 9th association_rule.keyDatamining 9th association_rule.key
Datamining 9th association_rule.key
 
Datamining 8th hclustering
Datamining 8th hclusteringDatamining 8th hclustering
Datamining 8th hclustering
 
Datamining r 4th
Datamining r 4thDatamining r 4th
Datamining r 4th
 
Datamining r 3rd
Datamining r 3rdDatamining r 3rd
Datamining r 3rd
 
Datamining r 1st
Datamining r 1stDatamining r 1st
Datamining r 1st
 
Datamining 6th svm
Datamining 6th svmDatamining 6th svm
Datamining 6th svm
 
Datamining 4th adaboost
Datamining 4th adaboostDatamining 4th adaboost
Datamining 4th adaboost
 
Datamining 3rd naivebayes
Datamining 3rd naivebayesDatamining 3rd naivebayes
Datamining 3rd naivebayes
 
Datamining 7th kmeans
Datamining 7th kmeansDatamining 7th kmeans
Datamining 7th kmeans
 
100401 Bioinfoinfra
100401 Bioinfoinfra100401 Bioinfoinfra
100401 Bioinfoinfra
 
Datamining 8th Hclustering
Datamining 8th HclusteringDatamining 8th Hclustering
Datamining 8th Hclustering
 
Datamining 9th Association Rule
Datamining 9th Association RuleDatamining 9th Association Rule
Datamining 9th Association Rule
 
Datamining 8th Hclustering
Datamining 8th HclusteringDatamining 8th Hclustering
Datamining 8th Hclustering
 

Kürzlich hochgeladen

أَسَانِيدُ كُتُبِ وَأُصُولِ النَّشْرِ لِابْنِ الْجَزَرِيِّ وَالْوَصْلُ بِهَا....
أَسَانِيدُ كُتُبِ وَأُصُولِ النَّشْرِ لِابْنِ الْجَزَرِيِّ وَالْوَصْلُ بِهَا....أَسَانِيدُ كُتُبِ وَأُصُولِ النَّشْرِ لِابْنِ الْجَزَرِيِّ وَالْوَصْلُ بِهَا....
أَسَانِيدُ كُتُبِ وَأُصُولِ النَّشْرِ لِابْنِ الْجَزَرِيِّ وَالْوَصْلُ بِهَا....سمير بسيوني
 
TUYỂN TẬP 20 ĐỀ THI KHẢO SÁT HỌC SINH GIỎI MÔN TIẾNG ANH LỚP 6 NĂM 2020 (CÓ Đ...
TUYỂN TẬP 20 ĐỀ THI KHẢO SÁT HỌC SINH GIỎI MÔN TIẾNG ANH LỚP 6 NĂM 2020 (CÓ Đ...TUYỂN TẬP 20 ĐỀ THI KHẢO SÁT HỌC SINH GIỎI MÔN TIẾNG ANH LỚP 6 NĂM 2020 (CÓ Đ...
TUYỂN TẬP 20 ĐỀ THI KHẢO SÁT HỌC SINH GIỎI MÔN TIẾNG ANH LỚP 6 NĂM 2020 (CÓ Đ...Nguyen Thanh Tu Collection
 
TUYỂN TẬP 25 ĐỀ THI HỌC SINH GIỎI MÔN TIẾNG ANH LỚP 6 NĂM 2023 CÓ ĐÁP ÁN (SƯU...
TUYỂN TẬP 25 ĐỀ THI HỌC SINH GIỎI MÔN TIẾNG ANH LỚP 6 NĂM 2023 CÓ ĐÁP ÁN (SƯU...TUYỂN TẬP 25 ĐỀ THI HỌC SINH GIỎI MÔN TIẾNG ANH LỚP 6 NĂM 2023 CÓ ĐÁP ÁN (SƯU...
TUYỂN TẬP 25 ĐỀ THI HỌC SINH GIỎI MÔN TIẾNG ANH LỚP 6 NĂM 2023 CÓ ĐÁP ÁN (SƯU...Nguyen Thanh Tu Collection
 
French Revolution (फ्रेंच राज्यक्रांती)
French Revolution  (फ्रेंच राज्यक्रांती)French Revolution  (फ्रेंच राज्यक्रांती)
French Revolution (फ्रेंच राज्यक्रांती)Shankar Aware
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
، ژیانا ئینگلیزا ب کوردی ، ئینگلیزەکان ، راپورتی کوردی ، راپورتا مێژوی ، ژ...
، ژیانا ئینگلیزا ب کوردی ، ئینگلیزەکان ، راپورتی کوردی ،    راپورتا مێژوی ، ژ...، ژیانا ئینگلیزا ب کوردی ، ئینگلیزەکان ، راپورتی کوردی ،    راپورتا مێژوی ، ژ...
، ژیانا ئینگلیزا ب کوردی ، ئینگلیزەکان ، راپورتی کوردی ، راپورتا مێژوی ، ژ...Idrees.Hishyar
 

Kürzlich hochgeladen (6)

أَسَانِيدُ كُتُبِ وَأُصُولِ النَّشْرِ لِابْنِ الْجَزَرِيِّ وَالْوَصْلُ بِهَا....
أَسَانِيدُ كُتُبِ وَأُصُولِ النَّشْرِ لِابْنِ الْجَزَرِيِّ وَالْوَصْلُ بِهَا....أَسَانِيدُ كُتُبِ وَأُصُولِ النَّشْرِ لِابْنِ الْجَزَرِيِّ وَالْوَصْلُ بِهَا....
أَسَانِيدُ كُتُبِ وَأُصُولِ النَّشْرِ لِابْنِ الْجَزَرِيِّ وَالْوَصْلُ بِهَا....
 
TUYỂN TẬP 20 ĐỀ THI KHẢO SÁT HỌC SINH GIỎI MÔN TIẾNG ANH LỚP 6 NĂM 2020 (CÓ Đ...
TUYỂN TẬP 20 ĐỀ THI KHẢO SÁT HỌC SINH GIỎI MÔN TIẾNG ANH LỚP 6 NĂM 2020 (CÓ Đ...TUYỂN TẬP 20 ĐỀ THI KHẢO SÁT HỌC SINH GIỎI MÔN TIẾNG ANH LỚP 6 NĂM 2020 (CÓ Đ...
TUYỂN TẬP 20 ĐỀ THI KHẢO SÁT HỌC SINH GIỎI MÔN TIẾNG ANH LỚP 6 NĂM 2020 (CÓ Đ...
 
TUYỂN TẬP 25 ĐỀ THI HỌC SINH GIỎI MÔN TIẾNG ANH LỚP 6 NĂM 2023 CÓ ĐÁP ÁN (SƯU...
TUYỂN TẬP 25 ĐỀ THI HỌC SINH GIỎI MÔN TIẾNG ANH LỚP 6 NĂM 2023 CÓ ĐÁP ÁN (SƯU...TUYỂN TẬP 25 ĐỀ THI HỌC SINH GIỎI MÔN TIẾNG ANH LỚP 6 NĂM 2023 CÓ ĐÁP ÁN (SƯU...
TUYỂN TẬP 25 ĐỀ THI HỌC SINH GIỎI MÔN TIẾNG ANH LỚP 6 NĂM 2023 CÓ ĐÁP ÁN (SƯU...
 
French Revolution (फ्रेंच राज्यक्रांती)
French Revolution  (फ्रेंच राज्यक्रांती)French Revolution  (फ्रेंच राज्यक्रांती)
French Revolution (फ्रेंच राज्यक्रांती)
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
، ژیانا ئینگلیزا ب کوردی ، ئینگلیزەکان ، راپورتی کوردی ، راپورتا مێژوی ، ژ...
، ژیانا ئینگلیزا ب کوردی ، ئینگلیزەکان ، راپورتی کوردی ،    راپورتا مێژوی ، ژ...، ژیانا ئینگلیزا ب کوردی ، ئینگلیزەکان ، راپورتی کوردی ،    راپورتا مێژوی ، ژ...
، ژیانا ئینگلیزا ب کوردی ، ئینگلیزەکان ، راپورتی کوردی ، راپورتا مێژوی ، ژ...
 

Ohp Seijoen H20 02 Hensu To Kata

  • 1. データ解析の基礎 Java文法,変数と型 2008年8月,データ解析の基礎,加藤,瀬々,金子. 1
  • 2. 目標 • Java文法の基本,変数を理解する – 変数とは何か? • 変数とは変数を入れる箱 – 変数には型がある,i.e. いろんなタイプの箱がある • 整数には int 型,実数には double 型 – 型は相互に変換できる • キャストを使う 2008年8月,データ解析の基礎,加藤,瀬々,金子. 2
  • 3. 目標 • Java文法の基本,変数を理解する – 変数とは何か? • 変数とは変数を入れる箱 – 変数には型がある,i.e. いろんなタイプの箱がある • 整数には int 型,実数には double 型 – 型は相互に変換できる • キャストを使う 2008年8月,データ解析の基礎,加藤,瀬々,金子. 3
  • 4. 変数とは値を入れる箱 Test01a.java public class Test01a { public static void main( String[] args ){ int a, b, c; 「変数 a, b, c を使う」と宣言 a = 5; b = 3; c = a + b; System.out.println(“c=“+c); } } スタック 計算機の中のメモリの一部 a b c 正確には,最初,値0が入っているが,値を設定せずに値を読み出すとコンパイルエラーとなるので,初期値は気にする必要はない. 2008年8月,データ解析の基礎,加藤,瀬々,金子. 4
  • 5. 変数とは値を入れる箱 Test01a.java public class Test01a { public static void main( String[] args ){ int a, b, c; a = 5; b = 3; c = a + b; System.out.println(“c=“+c); } } スタック 計算機の中のメモリの一部 a=5 b c 2008年8月,データ解析の基礎,加藤,瀬々,金子. 5
  • 6. 変数とは値を入れる箱 Test01a.java public class Test01a { public static void main( String[] args ){ int a, b, c; a = 5; b = 3; c = a + b; System.out.println(“c=“+c); } } スタック 計算機の中のメモリの一部 a=5 b=3 c 2008年8月,データ解析の基礎,加藤,瀬々,金子. 6
  • 7. 変数とは値を入れる箱 Test01a.java public class Test01a { public static void main( String[] args ){ int a, b, c; a = 5; b = 3; c = a + b; System.out.println(“c=“+c); } } スタック 計算機の中のメモリの一部 a=5 b=3 c=8 2008年8月,データ解析の基礎,加藤,瀬々,金子. 7
  • 8. 変数とは値を入れる箱 Test01c.java public class Test01c { public static void main( String[] args ){ int a, b, c, d, e, f, sum; 変数 a, b, c, d, e, f, sum を使うと宣言 a = 3; b = 1; c = 5; d = 4; e = 7; f = 6; sum = a + b + c + d + e + f; System.out.println(“sum=“+sum); } } スタック a b c d e f sum 2008年8月,データ解析の基礎,加藤,瀬々,金子. 8
  • 9. 変数とは値を入れる箱 Test01c.java public class Test01c { public static void main( String[] args ){ int a, b, c, d, e, f, sum; a = 3; b = 1; c = 5; d = 4; e = 7; f = 6; sum = a + b + c + d + e + f; System.out.println(“sum=“+sum); } } スタック a=3 b c d e f sum 2008年8月,データ解析の基礎,加藤,瀬々,金子. 9
  • 10. 変数とは値を入れる箱 Test01c.java public class Test01c { public static void main( String[] args ){ int a, b, c, d, e, f, sum; a = 3; b = 1; c = 5; d = 4; e = 7; f = 6; sum = a + b + c + d + e + f; System.out.println(“sum=“+sum); } } スタック a=3 b=1 c d e f sum 2008年8月,データ解析の基礎,加藤,瀬々,金子. 10
  • 11. 変数とは値を入れる箱 Test01c.java public class Test01c { public static void main( String[] args ){ int a, b, c, d, e, f, sum; a = 3; b = 1; c = 5; d = 4; e = 7; f = 6; sum = a + b + c + d + e + f; System.out.println(“sum=“+sum); } } スタック a=3 b=1 c=5 d e f sum 2008年8月,データ解析の基礎,加藤,瀬々,金子. 11
  • 12. 変数とは値を入れる箱 Test01c.java public class Test01c { public static void main( String[] args ){ int a, b, c, d, e, f, sum; a = 3; b = 1; c = 5; d = 4; e = 7; f = 6; sum = a + b + c + d + e + f; System.out.println(“sum=“+sum); } } スタック a=3 b=1 c=5 d=4 e f sum 2008年8月,データ解析の基礎,加藤,瀬々,金子. 12
  • 13. 変数とは値を入れる箱 Test01c.java public class Test01c { public static void main( String[] args ){ int a, b, c, d, e, f, sum; a = 3; b = 1; c = 5; d = 4; e = 7; f = 6; sum = a + b + c + d + e + f; System.out.println(“sum=“+sum); } } スタック a=3 b=1 c=5 d=4 e=7 f sum 2008年8月,データ解析の基礎,加藤,瀬々,金子. 13
  • 14. 変数とは値を入れる箱 Test01c.java public class Test01c { public static void main( String[] args ){ int a, b, c, d, e, f, sum; a = 3; b = 1; c = 5; d = 4; e = 7; f = 6; sum = a + b + c + d + e + f; System.out.println(“sum=“+sum); } } スタック a=3 b=1 c=5 d=4 e=7 f=6 sum 2008年8月,データ解析の基礎,加藤,瀬々,金子. 14
  • 15. 変数とは値を入れる箱 Test01c.java public class Test01c { public static void main( String[] args ){ int a, b, c, d, e, f, sum; a = 3; b = 1; c = 5; d = 4; e = 7; f = 6; sum = a + b + c + d + e + f; System.out.println(“sum=“+sum); } } スタック a=3 b=1 c=5 d=4 e=7 f=6 sum=26 2008年8月,データ解析の基礎,加藤,瀬々,金子. 15
  • 16. デバッガを使って 計算機の内部の様子を確認してみましょう 2008年8月,データ解析の基礎,加藤,瀬々,金子. 16
  • 17. デバッグ Eclipseを起動する プロジェクトを新規作成する (1) ソースプログラムを書く デバッグ,つまりプログラムの誤りを (2,3) コンパイル&実行 修正する 2008年8月,データ解析の基礎,加藤,瀬々,金子. 17
  • 18. デバッガの使い方,まずトグルポイントをつける ダブルクリック 2008年8月,データ解析の基礎,加藤,瀬々,金子. 18
  • 20. デバッガの使い方 「Debug perspective という画面を開いてもよいか?」と聞かれている Yesをクリック 2008年8月,データ解析の基礎,加藤,瀬々,金子. 20
  • 31. 練習. 実際にデバッガを動かしてみよう 2008年8月,データ解析の基礎,加藤,瀬々,金子. 31
  • 32. 練習.実際にデバッガを動かしてみよう プロジェクト名: test01 今回は,まず,すでに作成済みのファイルを開くだけ Test01e.java 6! を計算する デバッガを実際に動かしてみよう public class Test01e { public static void main( String[] args ){ int a; a = 6; 変数 a に値 6 を代入されているか確認せよ a = a*5; 式 a*5 の値を計算して変数 a に代入されているか確認せよ a = a*4; 式 a*4 の値を計算して変数 a に代入されているか確認せよ a = a*3; 式 a*3 の値を計算して変数 a に代入されているか確認せよ a = a*2; 式 a*2 の値を計算して変数 a に代入されているか確認せよ a = a*1; 式 a*1 の値を計算して変数 a に代入されているか確認せよ System.out.println(“a=“+a); } } 2008年8月,データ解析の基礎,加藤,瀬々,金子. 32
  • 33. 目標 • Java文法の基本,変数を理解する – 変数とは何か? • 変数とは値を入れる箱 – 変数には型がある,i.e. いろんなタイプの箱がある • 整数には int 型,実数には double 型 – 型は相互に変換できる • キャストを使う 2008年8月,データ解析の基礎,加藤,瀬々,金子. 33
  • 34. 目標 • Java文法の基本,変数を理解する – 変数とは何か? • 変数とは値を入れる箱 – 変数には型がある,i.e. いろんなタイプの箱がある • 整数には int 型,実数には double 型 – 型は相互に変換できる • キャストを使う 2008年8月,データ解析の基礎,加藤,瀬々,金子. 34
  • 35. 平均を計算してみよう Test01c.java public class Test01c { public static void main( String[] args ){ int a, b, c, d, e, f, sum; a = 3; b = 1; c = 5; d = 4; e = 7; f = 6; sum = a + b + c + d + e + f; System.out.println(“sum=“+sum); } } 合計を6で割れば平均だから.. 2008年8月,データ解析の基礎,加藤,瀬々,金子. 35
  • 36. 平均を計算してみよう,失敗例 public class Test01c { public static void main( String[] args ){ int a, b, c, d, e, f, sum, ave; a = 3; b = 1; c = 5; d = 4; e = 7; f = 6; sum = a + b + c + d + e + f; ave = sum/6; System.out.println(“ave=“+ave); } } 合計を6で割れば平均だから..↑赤字のように変更してみた 画面 ave=4 あれ!?平均は 4.33333…. のはずのに. 2008年8月,データ解析の基礎,加藤,瀬々,金子. 36
  • 37. int とは整数型 「変数 a, b, c, d, e, f, sum, ave は int 型の箱」と宣言 public class Test01c { int 型とは整数型 public static void main( String[] args ){ を意味する int a, b, c, d, e, f, sum, ave; a = 3; b = 1; c = 5; d = 4; e = 7; f = 6; sum = a + b + c + d + e + f; ave = sum/6; int 型 + int 型 = int 型 System.out.println(“ave=“+ave); int 型 - int 型 = int 型 int 型 * int 型 = int 型 } int 型 / int 型 = int 型 } 2008年8月,データ解析の基礎,加藤,瀬々,金子. 37
  • 38. int とは整数型 「変数 a, b, c, d, e, f, sum, ave は int 型の箱」と宣言 public class Test01c { int 型とは整数型 public static void main( String[] args ){ を意味する int a, b, c, d, e, f, sum, ave; a = 3; b = 1; c = 5; d = 4; e = 7; f = 6; sum = a + b + c + d + e + f; ave = sum/6; int 型 + int 型 = int 型 System.out.println(“ave=“+ave); int 型 - int 型 = int 型 int 型 * int 型 = int 型 } int 型 / int 型 = int 型 } スタック a=3 b=1 c=5 d=4 e=7 f=6 sum=26 ave=4 2008年8月,データ解析の基礎,加藤,瀬々,金子. 38
  • 39. int とは整数型 「変数 a, b, c, d, e, f, sum, ave は int 型の箱」と宣言 public class Test01c { int 型とは整数型 public static void main( String[] args ){ を意味する int a, b, c, d, e, f, sum, ave; a = 3; b = 1; c = 5; d = 4; e = 7; f = 6; sum = a + b + c + d + e + f; ave = sum/6; int 型 + int 型 = int 型 System.out.println(“ave=“+ave); int 型 - int 型 = int 型 int 型 * int 型 = int 型 } int 型 / int 型 = int 型 } 整数型なので 26 / 6 = 4 スタック a=3 b=1 c=5 d=4 e=7 f=6 sum=26 ave=4 2008年8月,データ解析の基礎,加藤,瀬々,金子. 39
  • 40. 実数を使うなら double 「変数 a, b, c, d, e, f, sum, ave は double 型の箱」と宣言 public class Test02a { double 型とは実数型 public static void main( String[] args ){ を意味する double a, b, c, d, e, f, sum, ave; a = 3; b = 1; c = 5; d = 4; e = 7; f = 6; sum = a + b + c + d + e + f; 「6」ではなく「6.0」と書くと ave = sum/6.0; 実数型の定数を意味する System.out.println(“ave=“+ave); double 型 + double 型 = double 型 } double 型 - double 型 = double 型 double 型 * double 型 = double 型 } double 型 / double 型 = double 型 実数型なので 26.0 / 6.0 = 4.3333.. スタック a=3 b=1 c=5 d=4 e=7 f=6 sum=26 ave=4.3333.. 2008年8月,データ解析の基礎,加藤,瀬々,金子. 40
  • 41. 練習2-a. 平均のプログラム Test02a.java プロジェクト名: test02 public class Test02a { public static void main( String[] args ){ double a, b, c, d, e, f, sum, ave; a = 3; b = 1; c = 5; d = 4; e = 7; f = 6; sum = a + b + c + d + e + f; ave = sum/6.0; System.out.println(“ave=“+ave); } } 実際に,この部分を書き換えて int 型と double 型を試してみて 違いを確かめよう 2008年8月,データ解析の基礎,加藤,瀬々,金子. 41
  • 42. 目標 • Java文法の基本,変数を理解する – 変数とは何か? • 変数とは変数を入れる箱 – 変数には型がある,i.e. いろんなタイプの箱がある • 整数には int 型,実数には double 型 – 型は相互に変換できる • キャストを使う 2008年8月,データ解析の基礎,加藤,瀬々,金子. 42
  • 43. 目標 • Java文法の基本,変数を理解する – 変数とは何か? • 変数とは変数を入れる箱 – 変数には型がある,i.e. いろんなタイプの箱がある • 整数には int 型,実数には double 型 – 型は相互に変換できる • キャストを使う 2008年8月,データ解析の基礎,加藤,瀬々,金子. 43
  • 44. もう一つの方法 型変換 2008年8月,データ解析の基礎,加藤,瀬々,金子. 44
  • 45. 全部 double にする以外の方法は? Test02a.java プロジェクト名: test02 public class Test02a { public static void main( String[] args ){ double a, b, c, d, e, f, sum, ave; a = 3; b = 1; c = 5; d = 4; e = 7; f = 6; sum = a + b + c + d + e + f; ave = sum/6.0; System.out.println(“ave=“+ave); } } 後から,double にしてしまうと,これまでうっかり int 型を想定して 作っていた部分がある場合,バグの原因になる. 2008年8月,データ解析の基礎,加藤,瀬々,金子. 45
  • 46. もう一つの方法,型変換 Test02b.java public class Test02b { 型を変換する方法を学ぼう public static void main( String[] args ){ int a, b, c, d, e, f, sum; (double)式 double ave; 式を double 型にする a = 3; b = 1; c = 5; d = 4; e = 7; f = 6; (int)式 sum = a + b + c + d + e + f; 式を int 型にする ave = ((double)sum)/6.0; System.out.println(“ave=“+ave); sum int 型 } 「6」ではなく「6.0」と書くと (double)sum double 型 } 実数型の定数を意味する ((double)sum)/6.0 double 型 スタック a=3 b=1 c=5 d=4 e=7 f=6 sum=26 ave=4.3333.. 2008年8月,データ解析の基礎,加藤,瀬々,金子. 46
  • 47. 練習2-b,型変換 Test02b.java プロジェクト名: test02 次のように書き換えたとき public class Test02b { どうなるか試してみよ public static void main( String[] args ){ int a, b, c, d, e, f, sum; (1)(ア)を int ave; に戻す double ave; ...(ア) (イ)は ave=sum/6; に戻す a = 3; b = 1; c = 5; d = 4; e = 7; f = 6; sum = a + b + c + d + e + f; (2)(ア)を int ave; に戻す ave = (int)(((double)sum)/6.0); ...(イ) (イ)はそのまま System.out.println(“ave=“+ave); } (3) (ア)はそのまま } (イ)を ave=(double)(sum/6); また,なぜそうなるか 考えてみよう 2008年8月,データ解析の基礎,加藤,瀬々,金子. 47
  • 48. まとめ • Java文法の基本,変数を理解する – 変数とは何か? • 変数とは数値を入れる箱 – 変数には型がある,i.e. いろんなタイプの箱がある • 整数には int 型,実数には double 型 – 型は相互に変換できる • キャストを使う • (double)式 : 式を double 型に変換 • (int)式 : 式を int 型に変換 2008年8月,データ解析の基礎,加藤,瀬々,金子. 48
  • 50. 補足:暗黙のキャスト • double 型から int 型への暗黙のキャストは許されてい ない – コンパイルエラーとして検出される • int 型から double 型への暗黙のキャストは許されてい る double x; double x; double x; int i; int i; int i; x = 2.0; x = 2.0; i = 2; i = x; i = (int)x; x = i; コンパイルエラー OK OK 2008年8月,データ解析の基礎,加藤,瀬々,金子. 50