第11講 配列を関数に送る
第1話 関数に1次元配列を送る 
もうすでに1次元配列を送るということを第10講の最終話で実施済みですが、
復習をしてみましょう。
mainで要素数10の1次元配列を作り、
そこに50未満のランダムデータ(整数)を入れ、
関数f()では配列すべてを2倍にするというプログラムを考えてみましょう。
入門
解答例は例によって30行下。



























解答コード例
class s{ //EclipseによるJava入門の場合はpublic class A{
  public static void main(String args[]){
    int[] x=new int[10];
    int i;
    for(i=0;i<10;i++)x[i]=(int)(Math.random()*50);
    for(i=0;i<10;i++){
      if(x[i]<10){
        System.out.print (" ");
        System.out.print(x[i]);
        System.out.print (" ");
      }
      else{
        System.out.print(x[i]);
        System.out.print (" ");
      }
    }
    System.out.println();
    System.out.println("データを2倍加すると");
    f(x);
    for(i=0;i<10;i++){
      if(x[i]<10){
        System.out.print (" ");
        System.out.print(x[i]);
        System.out.print (" ");
      }
      else{
        System.out.print(x[i]);
        System.out.print (" ");
      }
    }
  }
  public static void f(int x[]){
    int i;
    for(i=0;i<10;i++)x[i]*=2;
  }
}

では次の問題です。
今度は、要素数10の1次元配列x、yを2つ用意して、
それぞれの配列に100未満のランダム整数データを収納して、
関数fにそれぞれの配列を送り、関数fでは各配列を加え、その値を配列xに収納するようにします。
java

解答例は例によって30行下。



























解答コード例
class s{
  public static void main(String args[]){
    int[] x=new int[10];
    int[] y=new int[10];
    int i;
    for(i=0;i<10;i++){
      x[i]=(int)(Math.random()*100);
      y[i]=(int)(Math.random()*100);
    }
    for(i=0;i<10;i++){
      if(x[i]<10){
        System.out.print (" ");
        System.out.print(x[i]);
        System.out.print (" ");
      }
      if(x[i]>=10 && x[i]<100){
        System.out.print (" ");
        System.out.print(x[i]);
        System.out.print (" ");
      }
      if(x[i]>100){
        System.out.print(x[i]);
        System.out.print (" ");
      }
    }
    System.out.println();
    for(i=0;i<10;i++){
      if(y[i]<10){
        System.out.print (" ");
        System.out.print(y[i]);
        System.out.print (" ");
      }
      if(y[i]>=10 && y[i]<100){
        System.out.print (" ");
        System.out.print(y[i]);
        System.out.print (" ");
      }
      if(y[i]>100){
        System.out.print(x[i]);
        System.out.print (" ");
      }
    }

    System.out.println();
    System.out.println("各配列データを加える");
    f(x,y);
    for(i=0;i<10;i++){
      if(x[i]<10){
        System.out.print (" ");
        System.out.print(x[i]);
        System.out.print (" ");
      }
      if(x[i]>=10 && x[i]<100){
        System.out.print (" ");
        System.out.print(x[i]);
        System.out.print (" ");
      }
      if(x[i]>100){
        System.out.print(x[i]);
        System.out.print (" ");
      }
    }
  }
  public static void f(int x[],int y[]){
    int i;
    for(i=0;i<10;i++)x[i]=x[i]+y[i];
  }
}

では次話の課題です。
今度は、要素数10の1次元配列x、y、zを3つ用意して、
それぞれの配列に100未満のランダム整数データを収納します。
関数fとgには配列xと配列zを送り、関数h,i,jには配列xと配列yを送ります。
関数fの任務はxのデータを配列zにコピーすること、
関数gの任務はxのデータ最初の状態に復元すること、
関数hの任務はx、yのデータを加えそれをxに収納すること、
関数iの任務はx、yのデータを掛けてそれをxに収納すること、
関数jの任務はx、yのデータを差を取りそれをxに収納することします。
ただし、関数h,i,jのデータは最初にmainで発生させた基データとします。
Java

初心者のためのJava入門第2部第10講第9話へ 初心者のためのEclipseによるJava入門第1部第10講第9話へ

第2話へ


戻る

VB講義へ
VB講義基礎へ
vc++講義へ第1部へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座

初心者のための世界で一番わかりやすいVBA入門講義(基礎から応用まで)
初心者のための VC++による C言語 入門 C++ 入門 基礎から応用まで第1部
初心者のための VC++による C言語 入門 C++ 入門 基礎から応用まで第2部
初心者のための VC++による C言語 入門 C++ 入門 基礎から応用まで第3部