SlideShare una empresa de Scribd logo
1 de 28
データ解析の基礎
        Java文法,制御文




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

• Java文法の基本,制御文を理解する
  – if-else で条件分岐
  – for 文で繰り返し処理
  – while 文でも繰り返し処理




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

• Java文法の基本,制御文を理解する
  – if-else で条件分岐
  – for 文で繰り返し処理
  – while 文でも繰り返し処理




 2008年8月,データ解析の基礎,加藤,瀬々,金子.   3
if-else 文で条件分岐させる
    Test03a.java      プロジェクト名: test03
public class Test03a {                        変数 a の値の絶対値を
  public static void main( String[] args ){   計算しよう
    int a, abs_a;
    a = -2;

        if ( a >= 0 ){    a≧0ならば
          abs_a = a;      abs_a に a の値を代入
        } else {          さもなければ
          abs_a = -a;     abs_a に -a の値を代入
        }
        System.out.println(“|a|=“+abs_a);
    }                                         絶対値を計算するには
}
                                              条件分岐が必要

                                              条件分岐は if-else 文で



    2008年8月,データ解析の基礎,加藤,瀬々,金子.                              4
if-else 文の一般形式

if (条件式){
  文1;
} else {
  文2;
}



条件式が真なら
 文1を実行する
偽なら
 文2を実行する




  2008年8月,データ解析の基礎,加藤,瀬々,金子.   5
if-else 文で条件分岐させる
    Test03a.java    プロジェクト名: test03
public class Test03b {                        変数 a の値の絶対値を
  public static void main( String[] args ){   計算しよう
    int a, abs_a;
    a = -2;

        if ( a >= 0 ){   a≧0を満たさない
          abs_a = a;
        } else {
          abs_a = -a;    だからこれを実行する
        }
        System.out.println(“|a|=“+abs_a);
    }                                         絶対値を計算するには
}
                                              条件分岐が必要

                                              条件分岐は if-else 文で



    2008年8月,データ解析の基礎,加藤,瀬々,金子.                              6
if-else 文で条件分岐させる
    Test03a.java    プロジェクト名: test03
public class Test03a {                        変数 a の値の絶対値を
  public static void main( String[] args ){   計算しよう
    int a, abs_a;
    a = 3;           変数aに3を入れた場合
        if ( a >= 0 ){   a≧0を満たす
          abs_a = a;     だからこちらを実行する
        } else {
          abs_a = -a;
        }
        System.out.println(“|a|=“+abs_a);
    }                                         絶対値を計算するには
}
                                              条件分岐が必要

                                              条件分岐は if-else 文で



    2008年8月,データ解析の基礎,加藤,瀬々,金子.                              7
練習3-a.if-else 文
    Test03a.java      プロジェクト名: test03
public class Test03a {
  public static void main( String[] args ){
    int a, abs_a;
    a = 3;

        if ( a >= 0 ){
          abs_a = a;
        } else {
          abs_a = -a;
        }
        System.out.println(“|a|=“+abs_a);
    }
}



変数 a に入れる値を変えて,
デバッガで条件分岐できていることを確認しよう


    2008年8月,データ解析の基礎,加藤,瀬々,金子.                8
else 以下は省略できる
    Test03b.java     プロジェクト名: test03
public class Test03b {                        変数 a の値の絶対値を
  public static void main( String[] args ){   計算しよう
    int a, abs_a;
    a = -2;

        abs_a = a;       abs_a に a の値を代入
        if ( a < 0 ){
          abs_a = -a;    a が負の場合だけ修正
        }
        System.out.println(“|a|=“+abs_a);
    }
}


            else 以下を省略している




    2008年8月,データ解析の基礎,加藤,瀬々,金子.                           9
if 文の一般形式

if (条件式){
  文1;
}




条件式が真なら
 文1を実行する
偽なら
 なにもしない




  2008年8月,データ解析の基礎,加藤,瀬々,金子.   10
else 以下は省略できる
    Test03b.java     プロジェクト名: test03
public class Test03b {                        変数 a の値の絶対値を
  public static void main( String[] args ){   計算しよう
    int a, abs_a;
    a = 3;

        abs_a = a;       abs_a に a の値を代入
        if ( a < 0 ){    この場合,条件式を
          abs_a = -a;
        }
                         満たさない
        System.out.println(“|a|=“+abs_a);
    }
}


            else 以下を省略している




    2008年8月,データ解析の基礎,加藤,瀬々,金子.                          11
else if で多方向分岐
    Test03c.java       プロジェクト名: test03
public class Test03c {                            変数 a の値の符号を
  public static void main( String[] args ){       求めよう
    int a;
    a = -2;

        if ( a > 0 ){
          System.out.println(“a is positive.”);
        } else if ( a == 0 ){
          System.out.println(“a is zero.”);
        } else {
          System.out.println(“a is negative.”);
        }
    }
}

                注意      == は論理値を返す演算子
                        = は代入演算子


    2008年8月,データ解析の基礎,加藤,瀬々,金子.                                  12
練習3-c.else if で多方向分岐
    Test03c.java       プロジェクト名: test03
public class Test03c {
  public static void main( String[] args ){
    int a;
    a = -2;

        if ( a > 0 ){
          System.out.println(“a is positive.”);
        } else if ( a == 0 ){
          System.out.println(“a is zero.”);
        } else {
          System.out.println(“a is negative.”);
        }
    }
}

変数 a に入れる値を変えて,
デバッガで条件分岐できていることを確認しよう


    2008年8月,データ解析の基礎,加藤,瀬々,金子.                    13
練習3-d.else if で多方向分岐

    Test03d.java       プロジェクト名: test03               成績をつけよう
public class Test03d {
  public static void main( String[] args ){           点数      成績
    int score;
    score = 75;                                      90~100    S
        if ( score >= 90 ){                          80~99     A
          System.out.println(“The grade   is S.”);
        } else if ( score >= 80 ){
          System.out.println(“The grade   is A.”);
                                                     70~79     B
        } else if ( score >= 70 ){
          System.out.println(“The grade   is B.”);   60~69     C
        } else if ( score >= 60 ){
          System.out.println(“The grade   is C.”);    ~59      D
        } else { この部分を埋めよ
          System.out.println(“The grade   is D.”);
        }
    }
}



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

• Java文法の基本,制御文を理解する
  – if-else で条件分岐
  – for 文で繰り返し処理
  – while 文でも繰り返し処理




 2008年8月,データ解析の基礎,加藤,瀬々,金子.   15
べき乗のプログラムを簡潔にしたい
                        これだと a の 5 乗しか計算できない
                        見づらい
  Test01d.java

public class Test01d {
  public static void main( String[] args ){
    int a; int pow_a;
    a = 2;
    pow_a = 1;
    pow_a = pow_a*a;    式 pow_a*aの値を計算して変数 pow_a に代入
    pow_a = pow_a*a;    式 pow_a*aの値を計算して変数 pow_a に代入
    pow_a = pow_a*a;    式 pow_a*aの値を計算して変数 pow_a に代入
    pow_a = pow_a*a;    式 pow_a*aの値を計算して変数 pow_a に代入
    pow_a = pow_a*a;    式 pow_a*aの値を計算して変数 pow_a に代入
    System.out.println(“pow_a=“+pow_a);
  }            pow_aの値を画面に表示しろ
}

  2008年8月,データ解析の基礎,加藤,瀬々,金子.                           16
for 文を使えば簡潔に



public class Test01d_modi {
  public static void main( String[] args ){
    int a, pow_a, i;
    a = 2;
    pow_a = 1;
    for (i = 0; i < 5; i=i+1 ){
      pow_a = pow_a * a;
    }
    System.out.println(“pow_a=“+pow_a);
  }
}




  2008年8月,データ解析の基礎,加藤,瀬々,金子.                  17
for文の一般式

for (式1;条件式;式2){
  文1;
}




ループ処理を行う前に式1を実行.
条件が真の間,ループを繰り返す.
ループ処理のたびに式2を実行.




  2008年8月,データ解析の基礎,加藤,瀬々,金子.   18
for 文を使えば簡潔に
public class Test01d_modi {
  public static void main( String[] args ){
    int a; int pow_a; int i;
    a = 2;                           「i++」は「i=i+1」と等価
    pow_a = 1;
    for (i = 0; i < 5; i++ ){
              式1    条件    式2
         pow_a = pow_a * a;
         文1
        }
        System.out.println(“pow_a=“+pow_a);
    }
}
ループ処理を行う前に式1を実行.
条件が真の間,ループを繰り返す.
ループ処理のたびに式2を実行.

    2008年8月,データ解析の基礎,加藤,瀬々,金子.                     19
練習4-a.
 a の n 乗を計算するプログラムを完成させよ
 Test04a.java   プロジェクト名: test04
public class Test04a {
  public static void main( String[] args ){
    int a; int n; int pow_a; int i;
    a = 2; n = 10;
    pow_a = 1;
    for (i = 0; i < 5; n 乗を計算し,
      for 文を使ってa の i++ ){
       pow_a = pow_a * a; に代入せよ
        その結果を pow_a
    }
    System.out.println(“pow_a=“+pow_a);
  }
}

デバッガでforループの動きを確認せよ
(1) 何回ループが回ったか調べてみよ,各ループの i の値を観察せよ
(2) n の値を 3 とか 5 とかに変更してみて,動作がどのように
    変わるか調査せよ
  2008年8月,データ解析の基礎,加藤,瀬々,金子.                  20
目標

• Java文法の基本,制御文を理解する
  – if-else で条件分岐
  – for 文で繰り返し処理
  – while 文でも繰り返し処理




 2008年8月,データ解析の基礎,加藤,瀬々,金子.   21
階乗のプログラムを簡潔にしたい

                              6! を計算する
 Test01e.java
public class Test04b {
  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);
  }           aの値を画面に表示しろ
}




  2008年8月,データ解析の基礎,加藤,瀬々,金子.                  22
while 文で階乗のプログラムを簡潔に


 Test05a.java

public class Test01d {
  public static void main( String[] args ){
    int a; int facto_a;
    a = 6;
    facto_a = 1;
    while ( a > 0 ){            条件 a > 0 を満たす間ループを続ける
      facto_a = facto_a * a;    値 facto_a*a の値を変数 facto_a に代入
      a = a – 1;                a の値を1減らす
    }
    System.out.println(“facto_a=“+facto_a);
  }
}




  2008年8月,データ解析の基礎,加藤,瀬々,金子.                                    23
while文の一般式

while (条件){
  文1;
}




条件が真の間,ループを繰り返す.




  2008年8月,データ解析の基礎,加藤,瀬々,金子.   24
while 文で階乗のプログラムを簡潔に


 Test05a.java

public class Test01d {
  public static void main( String[] args ){
    int a; int facto_a;
    a = 6;
    facto_a = 1;
    while ( a > 0 ){            条件 a > 0 を満たす間ループを続ける
      facto_a = facto_a * a;    値 facto_a*a の値を変数 facto_a に代入
      a = a – 1;                a の値を1減らす
    }
    System.out.println(“facto_a=“+facto_a);
  }
}




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


  Test05a.java    プロジェクト名: test05
public class Test01d {
  public static void main( String[] args ){
    int a; int facto_a;
    a = 6;
    facto_a = 1;
    while ( a > 0 ){
      facto_a = facto_a * a;
      a = a – 1;
    }
    System.out.println(“facto_a=“+facto_a);
  }
}

デバッガでwhileループの動きを確認せよ
(1)何回ループが回ったか調べてみよ,各ループの a の値を観察せよ
(2)aの値を変更したときに,facto_a がどのように計算されていくかデバッガで観測せよ


  2008年8月,データ解析の基礎,加藤,瀬々,金子.                  26
練習5-b コンビネーションの計算

• nCm を計算しよう.
• nCm = n!/((m!)*(n-m)!)

    Test05b.java

public class Test05b {
  public static void main( String[] args ){
    int n, m, nm, facto_n, facto_m, facto_nm, combi_nm;
    n = 5; m = 3; nm = n-m;
    // Compute the value of n! and put it into facto_n.
   // Compute the value of m! and put it into facto_m.
        // Compute the value of (n-m)! and put it into facto_nm.
        combi_nm = facto_n/(facto_m*facto_nm);
         System.out.println(“facto_a=“+facto_a);
    }
}



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

• Java文法の基本,制御文
  – if-else で条件分岐
    if (条件式){       if (条件式){   if (条件式1){
      文1;             文1;         文1;
    } else {        }           } else if (条件式2){
      文2;                         文2;
    }                           } else if (条件式3){
                                  …
                                } else {
  – for 文で繰り返し処理                  文n;
    for (式1;条件式;式2){            }
      文1;
    }

  – while 文でも繰り返し処理
    while (条件式){
      文1;
    }


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

Más contenido relacionado

La actualidad más candente

IIE-018 自動控制系統Ok
IIE-018 自動控制系統OkIIE-018 自動控制系統Ok
IIE-018 自動控制系統Okhandbook
 
手探りの私にもわかる気がしている関数型言語
手探りの私にもわかる気がしている関数型言語手探りの私にもわかる気がしている関数型言語
手探りの私にもわかる気がしている関数型言語mitsutaka mimura
 
2009年4月8日セミナー 2.Sedue新機能
2009年4月8日セミナー 2.Sedue新機能2009年4月8日セミナー 2.Sedue新機能
2009年4月8日セミナー 2.Sedue新機能Preferred Networks
 
2009年4月8日セミナー 1.オープニング
2009年4月8日セミナー 1.オープニング2009年4月8日セミナー 1.オープニング
2009年4月8日セミナー 1.オープニングPreferred Networks
 
新生說明會_slide
新生說明會_slide新生說明會_slide
新生說明會_slideMu Chun Wang
 
JavaScriptでオブジェクト指向(Javascript/OOP)
JavaScriptでオブジェクト指向(Javascript/OOP)JavaScriptでオブジェクト指向(Javascript/OOP)
JavaScriptでオブジェクト指向(Javascript/OOP)smzk
 
演说之美 5月15日工作坊
演说之美 5月15日工作坊演说之美 5月15日工作坊
演说之美 5月15日工作坊snow9988
 
程式之美-微軟技術面試心得
程式之美-微軟技術面試心得程式之美-微軟技術面試心得
程式之美-微軟技術面試心得Bob Wei
 
Lesson 1com
Lesson 1comLesson 1com
Lesson 1comSen Kung
 
คอมพิวเตอร์เบื้องต้น
คอมพิวเตอร์เบื้องต้นคอมพิวเตอร์เบื้องต้น
คอมพิวเตอร์เบื้องต้นPomPam Comsci
 
入門啟示錄 Ch03簡報
入門啟示錄 Ch03簡報入門啟示錄 Ch03簡報
入門啟示錄 Ch03簡報Chiou WeiHao
 
第3章 計算機組織 (Update)
第3章 計算機組織 (Update)第3章 計算機組織 (Update)
第3章 計算機組織 (Update)Seng Chi Ao
 
あなたにもできるアジャイルプラクティス2008
あなたにもできるアジャイルプラクティス2008あなたにもできるアジャイルプラクティス2008
あなたにもできるアジャイルプラクティス2008Seiji Kaneko
 
090511-intro, setup
090511-intro, setup090511-intro, setup
090511-intro, setupocha_kaneko
 

La actualidad más candente (17)

IIE-018 自動控制系統Ok
IIE-018 自動控制系統OkIIE-018 自動控制系統Ok
IIE-018 自動控制系統Ok
 
手探りの私にもわかる気がしている関数型言語
手探りの私にもわかる気がしている関数型言語手探りの私にもわかる気がしている関数型言語
手探りの私にもわかる気がしている関数型言語
 
2009年4月8日セミナー 2.Sedue新機能
2009年4月8日セミナー 2.Sedue新機能2009年4月8日セミナー 2.Sedue新機能
2009年4月8日セミナー 2.Sedue新機能
 
2009年4月8日セミナー 1.オープニング
2009年4月8日セミナー 1.オープニング2009年4月8日セミナー 1.オープニング
2009年4月8日セミナー 1.オープニング
 
PFI会社案内
PFI会社案内PFI会社案内
PFI会社案内
 
新生說明會_slide
新生說明會_slide新生說明會_slide
新生說明會_slide
 
JavaScriptでオブジェクト指向(Javascript/OOP)
JavaScriptでオブジェクト指向(Javascript/OOP)JavaScriptでオブジェクト指向(Javascript/OOP)
JavaScriptでオブジェクト指向(Javascript/OOP)
 
演说之美 5月15日工作坊
演说之美 5月15日工作坊演说之美 5月15日工作坊
演说之美 5月15日工作坊
 
程式之美-微軟技術面試心得
程式之美-微軟技術面試心得程式之美-微軟技術面試心得
程式之美-微軟技術面試心得
 
Regex Introduction
Regex IntroductionRegex Introduction
Regex Introduction
 
XS Japan 2008 Ganeti Japanese
XS Japan 2008 Ganeti JapaneseXS Japan 2008 Ganeti Japanese
XS Japan 2008 Ganeti Japanese
 
Lesson 1com
Lesson 1comLesson 1com
Lesson 1com
 
คอมพิวเตอร์เบื้องต้น
คอมพิวเตอร์เบื้องต้นคอมพิวเตอร์เบื้องต้น
คอมพิวเตอร์เบื้องต้น
 
入門啟示錄 Ch03簡報
入門啟示錄 Ch03簡報入門啟示錄 Ch03簡報
入門啟示錄 Ch03簡報
 
第3章 計算機組織 (Update)
第3章 計算機組織 (Update)第3章 計算機組織 (Update)
第3章 計算機組織 (Update)
 
あなたにもできるアジャイルプラクティス2008
あなたにもできるアジャイルプラクティス2008あなたにもできるアジャイルプラクティス2008
あなたにもできるアジャイルプラクティス2008
 
090511-intro, setup
090511-intro, setup090511-intro, setup
090511-intro, setup
 

Destacado

Science overview
Science overviewScience overview
Science overviewstewart_j
 
Davra IOT Solution -- Smart water
Davra IOT Solution -- Smart waterDavra IOT Solution -- Smart water
Davra IOT Solution -- Smart waterdavranetworks
 
Educación y Nuevas Tecnologías
Educación y Nuevas TecnologíasEducación y Nuevas Tecnologías
Educación y Nuevas TecnologíasTere Vera
 
Dey yamá actividad1_2mapac
Dey yamá actividad1_2mapacDey yamá actividad1_2mapac
Dey yamá actividad1_2mapacDey Cordoba
 
Informe powre point
Informe powre pointInforme powre point
Informe powre pointmisasay
 
Conferencia sobre cambios del consumidor digital redeban- septiembre de 2015
Conferencia sobre cambios del consumidor digital redeban- septiembre de 2015Conferencia sobre cambios del consumidor digital redeban- septiembre de 2015
Conferencia sobre cambios del consumidor digital redeban- septiembre de 2015Camilo Herrera
 
Aporte individual unidad_ii_john_diaz
Aporte individual unidad_ii_john_diazAporte individual unidad_ii_john_diaz
Aporte individual unidad_ii_john_diazJohn Diaz H
 
González vera
González  veraGonzález  vera
González veraTere Vera
 
Education corporelle enseignement rythmique
Education corporelle enseignement rythmiqueEducation corporelle enseignement rythmique
Education corporelle enseignement rythmiquedavid bonnin
 
CSR Blunders By British Companies
CSR Blunders By British CompaniesCSR Blunders By British Companies
CSR Blunders By British CompaniesRavindra Choudhary
 
Nuevas tecnologías y aplicaciones de los sistemas de bases de datos
Nuevas tecnologías y aplicaciones de los sistemas de bases de datosNuevas tecnologías y aplicaciones de los sistemas de bases de datos
Nuevas tecnologías y aplicaciones de los sistemas de bases de datosHugo Alberto Rivera Diaz
 

Destacado (15)

Science overview
Science overviewScience overview
Science overview
 
Idéfix
IdéfixIdéfix
Idéfix
 
Davra IOT Solution -- Smart water
Davra IOT Solution -- Smart waterDavra IOT Solution -- Smart water
Davra IOT Solution -- Smart water
 
Educación y Nuevas Tecnologías
Educación y Nuevas TecnologíasEducación y Nuevas Tecnologías
Educación y Nuevas Tecnologías
 
Dey yamá actividad1_2mapac
Dey yamá actividad1_2mapacDey yamá actividad1_2mapac
Dey yamá actividad1_2mapac
 
Informe powre point
Informe powre pointInforme powre point
Informe powre point
 
Ma Chérie
Ma ChérieMa Chérie
Ma Chérie
 
Conferencia sobre cambios del consumidor digital redeban- septiembre de 2015
Conferencia sobre cambios del consumidor digital redeban- septiembre de 2015Conferencia sobre cambios del consumidor digital redeban- septiembre de 2015
Conferencia sobre cambios del consumidor digital redeban- septiembre de 2015
 
Aporte individual unidad_ii_john_diaz
Aporte individual unidad_ii_john_diazAporte individual unidad_ii_john_diaz
Aporte individual unidad_ii_john_diaz
 
González vera
González  veraGonzález  vera
González vera
 
Education corporelle enseignement rythmique
Education corporelle enseignement rythmiqueEducation corporelle enseignement rythmique
Education corporelle enseignement rythmique
 
CSR Blunders By British Companies
CSR Blunders By British CompaniesCSR Blunders By British Companies
CSR Blunders By British Companies
 
Amagüestu
AmagüestuAmagüestu
Amagüestu
 
Nuevas tecnologías y aplicaciones de los sistemas de bases de datos
Nuevas tecnologías y aplicaciones de los sistemas de bases de datosNuevas tecnologías y aplicaciones de los sistemas de bases de datos
Nuevas tecnologías y aplicaciones de los sistemas de bases de datos
 
Gestores de bases de datos cuadros comparativos
Gestores de bases de datos cuadros comparativosGestores de bases de datos cuadros comparativos
Gestores de bases de datos cuadros comparativos
 

Más de 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 2nd
Datamining r 2ndDatamining r 2nd
Datamining r 2ndsesejun
 
Datamining r 1st
Datamining r 1stDatamining r 1st
Datamining r 1stsesejun
 
Datamining 6th svm
Datamining 6th svmDatamining 6th svm
Datamining 6th svmsesejun
 
Datamining 5th knn
Datamining 5th knnDatamining 5th knn
Datamining 5th knnsesejun
 
Datamining 4th adaboost
Datamining 4th adaboostDatamining 4th adaboost
Datamining 4th adaboostsesejun
 
Datamining 3rd naivebayes
Datamining 3rd naivebayesDatamining 3rd naivebayes
Datamining 3rd naivebayessesejun
 
Datamining 2nd decisiontree
Datamining 2nd decisiontreeDatamining 2nd decisiontree
Datamining 2nd decisiontreesesejun
 
Datamining 7th kmeans
Datamining 7th kmeansDatamining 7th kmeans
Datamining 7th kmeanssesejun
 
100401 Bioinfoinfra
100401 Bioinfoinfra100401 Bioinfoinfra
100401 Bioinfoinfrasesejun
 

Más de 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 2nd
Datamining r 2ndDatamining r 2nd
Datamining r 2nd
 
Datamining r 1st
Datamining r 1stDatamining r 1st
Datamining r 1st
 
Datamining 6th svm
Datamining 6th svmDatamining 6th svm
Datamining 6th svm
 
Datamining 5th knn
Datamining 5th knnDatamining 5th knn
Datamining 5th knn
 
Datamining 4th adaboost
Datamining 4th adaboostDatamining 4th adaboost
Datamining 4th adaboost
 
Datamining 3rd naivebayes
Datamining 3rd naivebayesDatamining 3rd naivebayes
Datamining 3rd naivebayes
 
Datamining 2nd decisiontree
Datamining 2nd decisiontreeDatamining 2nd decisiontree
Datamining 2nd decisiontree
 
Datamining 7th kmeans
Datamining 7th kmeansDatamining 7th kmeans
Datamining 7th kmeans
 
100401 Bioinfoinfra
100401 Bioinfoinfra100401 Bioinfoinfra
100401 Bioinfoinfra
 

Ohp Seijoen H20 03 Seigyobun

  • 1. データ解析の基礎 Java文法,制御文 2008年8月,データ解析の基礎,加藤,瀬々,金子. 1
  • 2. 目標 • Java文法の基本,制御文を理解する – if-else で条件分岐 – for 文で繰り返し処理 – while 文でも繰り返し処理 2008年8月,データ解析の基礎,加藤,瀬々,金子. 2
  • 3. 目標 • Java文法の基本,制御文を理解する – if-else で条件分岐 – for 文で繰り返し処理 – while 文でも繰り返し処理 2008年8月,データ解析の基礎,加藤,瀬々,金子. 3
  • 4. if-else 文で条件分岐させる Test03a.java プロジェクト名: test03 public class Test03a { 変数 a の値の絶対値を public static void main( String[] args ){ 計算しよう int a, abs_a; a = -2; if ( a >= 0 ){ a≧0ならば abs_a = a; abs_a に a の値を代入 } else { さもなければ abs_a = -a; abs_a に -a の値を代入 } System.out.println(“|a|=“+abs_a); } 絶対値を計算するには } 条件分岐が必要 条件分岐は if-else 文で 2008年8月,データ解析の基礎,加藤,瀬々,金子. 4
  • 5. if-else 文の一般形式 if (条件式){ 文1; } else { 文2; } 条件式が真なら 文1を実行する 偽なら 文2を実行する 2008年8月,データ解析の基礎,加藤,瀬々,金子. 5
  • 6. if-else 文で条件分岐させる Test03a.java プロジェクト名: test03 public class Test03b { 変数 a の値の絶対値を public static void main( String[] args ){ 計算しよう int a, abs_a; a = -2; if ( a >= 0 ){ a≧0を満たさない abs_a = a; } else { abs_a = -a; だからこれを実行する } System.out.println(“|a|=“+abs_a); } 絶対値を計算するには } 条件分岐が必要 条件分岐は if-else 文で 2008年8月,データ解析の基礎,加藤,瀬々,金子. 6
  • 7. if-else 文で条件分岐させる Test03a.java プロジェクト名: test03 public class Test03a { 変数 a の値の絶対値を public static void main( String[] args ){ 計算しよう int a, abs_a; a = 3; 変数aに3を入れた場合 if ( a >= 0 ){ a≧0を満たす abs_a = a; だからこちらを実行する } else { abs_a = -a; } System.out.println(“|a|=“+abs_a); } 絶対値を計算するには } 条件分岐が必要 条件分岐は if-else 文で 2008年8月,データ解析の基礎,加藤,瀬々,金子. 7
  • 8. 練習3-a.if-else 文 Test03a.java プロジェクト名: test03 public class Test03a { public static void main( String[] args ){ int a, abs_a; a = 3; if ( a >= 0 ){ abs_a = a; } else { abs_a = -a; } System.out.println(“|a|=“+abs_a); } } 変数 a に入れる値を変えて, デバッガで条件分岐できていることを確認しよう 2008年8月,データ解析の基礎,加藤,瀬々,金子. 8
  • 9. else 以下は省略できる Test03b.java プロジェクト名: test03 public class Test03b { 変数 a の値の絶対値を public static void main( String[] args ){ 計算しよう int a, abs_a; a = -2; abs_a = a; abs_a に a の値を代入 if ( a < 0 ){ abs_a = -a; a が負の場合だけ修正 } System.out.println(“|a|=“+abs_a); } } else 以下を省略している 2008年8月,データ解析の基礎,加藤,瀬々,金子. 9
  • 10. if 文の一般形式 if (条件式){ 文1; } 条件式が真なら 文1を実行する 偽なら なにもしない 2008年8月,データ解析の基礎,加藤,瀬々,金子. 10
  • 11. else 以下は省略できる Test03b.java プロジェクト名: test03 public class Test03b { 変数 a の値の絶対値を public static void main( String[] args ){ 計算しよう int a, abs_a; a = 3; abs_a = a; abs_a に a の値を代入 if ( a < 0 ){ この場合,条件式を abs_a = -a; } 満たさない System.out.println(“|a|=“+abs_a); } } else 以下を省略している 2008年8月,データ解析の基礎,加藤,瀬々,金子. 11
  • 12. else if で多方向分岐 Test03c.java プロジェクト名: test03 public class Test03c { 変数 a の値の符号を public static void main( String[] args ){ 求めよう int a; a = -2; if ( a > 0 ){ System.out.println(“a is positive.”); } else if ( a == 0 ){ System.out.println(“a is zero.”); } else { System.out.println(“a is negative.”); } } } 注意 == は論理値を返す演算子 = は代入演算子 2008年8月,データ解析の基礎,加藤,瀬々,金子. 12
  • 13. 練習3-c.else if で多方向分岐 Test03c.java プロジェクト名: test03 public class Test03c { public static void main( String[] args ){ int a; a = -2; if ( a > 0 ){ System.out.println(“a is positive.”); } else if ( a == 0 ){ System.out.println(“a is zero.”); } else { System.out.println(“a is negative.”); } } } 変数 a に入れる値を変えて, デバッガで条件分岐できていることを確認しよう 2008年8月,データ解析の基礎,加藤,瀬々,金子. 13
  • 14. 練習3-d.else if で多方向分岐 Test03d.java プロジェクト名: test03 成績をつけよう public class Test03d { public static void main( String[] args ){ 点数 成績 int score; score = 75; 90~100 S if ( score >= 90 ){ 80~99 A System.out.println(“The grade is S.”); } else if ( score >= 80 ){ System.out.println(“The grade is A.”); 70~79 B } else if ( score >= 70 ){ System.out.println(“The grade is B.”); 60~69 C } else if ( score >= 60 ){ System.out.println(“The grade is C.”); ~59 D } else { この部分を埋めよ System.out.println(“The grade is D.”); } } } 2008年8月,データ解析の基礎,加藤,瀬々,金子. 14
  • 15. 目標 • Java文法の基本,制御文を理解する – if-else で条件分岐 – for 文で繰り返し処理 – while 文でも繰り返し処理 2008年8月,データ解析の基礎,加藤,瀬々,金子. 15
  • 16. べき乗のプログラムを簡潔にしたい これだと a の 5 乗しか計算できない 見づらい Test01d.java public class Test01d { public static void main( String[] args ){ int a; int pow_a; a = 2; pow_a = 1; pow_a = pow_a*a; 式 pow_a*aの値を計算して変数 pow_a に代入 pow_a = pow_a*a; 式 pow_a*aの値を計算して変数 pow_a に代入 pow_a = pow_a*a; 式 pow_a*aの値を計算して変数 pow_a に代入 pow_a = pow_a*a; 式 pow_a*aの値を計算して変数 pow_a に代入 pow_a = pow_a*a; 式 pow_a*aの値を計算して変数 pow_a に代入 System.out.println(“pow_a=“+pow_a); } pow_aの値を画面に表示しろ } 2008年8月,データ解析の基礎,加藤,瀬々,金子. 16
  • 17. for 文を使えば簡潔に public class Test01d_modi { public static void main( String[] args ){ int a, pow_a, i; a = 2; pow_a = 1; for (i = 0; i < 5; i=i+1 ){ pow_a = pow_a * a; } System.out.println(“pow_a=“+pow_a); } } 2008年8月,データ解析の基礎,加藤,瀬々,金子. 17
  • 18. for文の一般式 for (式1;条件式;式2){ 文1; } ループ処理を行う前に式1を実行. 条件が真の間,ループを繰り返す. ループ処理のたびに式2を実行. 2008年8月,データ解析の基礎,加藤,瀬々,金子. 18
  • 19. for 文を使えば簡潔に public class Test01d_modi { public static void main( String[] args ){ int a; int pow_a; int i; a = 2; 「i++」は「i=i+1」と等価 pow_a = 1; for (i = 0; i < 5; i++ ){ 式1 条件 式2 pow_a = pow_a * a; 文1 } System.out.println(“pow_a=“+pow_a); } } ループ処理を行う前に式1を実行. 条件が真の間,ループを繰り返す. ループ処理のたびに式2を実行. 2008年8月,データ解析の基礎,加藤,瀬々,金子. 19
  • 20. 練習4-a. a の n 乗を計算するプログラムを完成させよ Test04a.java プロジェクト名: test04 public class Test04a { public static void main( String[] args ){ int a; int n; int pow_a; int i; a = 2; n = 10; pow_a = 1; for (i = 0; i < 5; n 乗を計算し, for 文を使ってa の i++ ){ pow_a = pow_a * a; に代入せよ その結果を pow_a } System.out.println(“pow_a=“+pow_a); } } デバッガでforループの動きを確認せよ (1) 何回ループが回ったか調べてみよ,各ループの i の値を観察せよ (2) n の値を 3 とか 5 とかに変更してみて,動作がどのように 変わるか調査せよ 2008年8月,データ解析の基礎,加藤,瀬々,金子. 20
  • 21. 目標 • Java文法の基本,制御文を理解する – if-else で条件分岐 – for 文で繰り返し処理 – while 文でも繰り返し処理 2008年8月,データ解析の基礎,加藤,瀬々,金子. 21
  • 22. 階乗のプログラムを簡潔にしたい 6! を計算する Test01e.java public class Test04b { 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); } aの値を画面に表示しろ } 2008年8月,データ解析の基礎,加藤,瀬々,金子. 22
  • 23. while 文で階乗のプログラムを簡潔に Test05a.java public class Test01d { public static void main( String[] args ){ int a; int facto_a; a = 6; facto_a = 1; while ( a > 0 ){ 条件 a > 0 を満たす間ループを続ける facto_a = facto_a * a; 値 facto_a*a の値を変数 facto_a に代入 a = a – 1; a の値を1減らす } System.out.println(“facto_a=“+facto_a); } } 2008年8月,データ解析の基礎,加藤,瀬々,金子. 23
  • 24. while文の一般式 while (条件){ 文1; } 条件が真の間,ループを繰り返す. 2008年8月,データ解析の基礎,加藤,瀬々,金子. 24
  • 25. while 文で階乗のプログラムを簡潔に Test05a.java public class Test01d { public static void main( String[] args ){ int a; int facto_a; a = 6; facto_a = 1; while ( a > 0 ){ 条件 a > 0 を満たす間ループを続ける facto_a = facto_a * a; 値 facto_a*a の値を変数 facto_a に代入 a = a – 1; a の値を1減らす } System.out.println(“facto_a=“+facto_a); } } 2008年8月,データ解析の基礎,加藤,瀬々,金子. 25
  • 26. 練習5-a. Test05a.java プロジェクト名: test05 public class Test01d { public static void main( String[] args ){ int a; int facto_a; a = 6; facto_a = 1; while ( a > 0 ){ facto_a = facto_a * a; a = a – 1; } System.out.println(“facto_a=“+facto_a); } } デバッガでwhileループの動きを確認せよ (1)何回ループが回ったか調べてみよ,各ループの a の値を観察せよ (2)aの値を変更したときに,facto_a がどのように計算されていくかデバッガで観測せよ 2008年8月,データ解析の基礎,加藤,瀬々,金子. 26
  • 27. 練習5-b コンビネーションの計算 • nCm を計算しよう. • nCm = n!/((m!)*(n-m)!) Test05b.java public class Test05b { public static void main( String[] args ){ int n, m, nm, facto_n, facto_m, facto_nm, combi_nm; n = 5; m = 3; nm = n-m; // Compute the value of n! and put it into facto_n. // Compute the value of m! and put it into facto_m. // Compute the value of (n-m)! and put it into facto_nm. combi_nm = facto_n/(facto_m*facto_nm); System.out.println(“facto_a=“+facto_a); } } 2008年8月,データ解析の基礎,加藤,瀬々,金子. 27
  • 28. まとめ • Java文法の基本,制御文 – if-else で条件分岐 if (条件式){ if (条件式){ if (条件式1){ 文1; 文1; 文1; } else { } } else if (条件式2){ 文2; 文2; } } else if (条件式3){ … } else { – for 文で繰り返し処理 文n; for (式1;条件式;式2){ } 文1; } – while 文でも繰り返し処理 while (条件式){ 文1; } 2008年8月,データ解析の基礎,加藤,瀬々,金子. 28