第6回 配列(その2)
   
  
 演習
 
<演習1>

 以下のソースは int [] x = {8,2,9,6};を表示するプログラムである。
 このソースでforのところを .length を使った処理に修正しなさい。
 /*空欄*/ を埋めて、<修正後のソース>のプログラムを完成させなさい。

 <修正前のソース>
void setup()
{
  int [] x = {8,2,9,6};

  for(int i=0;i<4;i++){
    println(x[i]);
  }
}

 
 <修正後のソース>
void setup()
{
  int [] x = {8,2,9,6};

  for(int i=0;i<
/*空欄*/;i++){
    println(x[i]);
  }
}

   
 
 
<演習2>

 int [] x = {15,12,18,17,11}; の合計を計算して表示する。
 /*空欄(複数行or1行)*/ を埋めて、プログラムを完成させなさい。だだし、.length を使うこと。

 <ソース>
void setup()
{
  int [] x = {15,12,18,17,11};
  int sum = 0;

  /*空欄(複数行or1行)*/
 
  println("合計 = " + sum);
}

 
 <実行例>
    
 
 
 
<演習3>
 
 int [] x = {89,61,34,67,65,54,34,51,30,42,92,62};昇順に並び替えて表示する。
 (Lesson7Sample9.javaを参考にすること)--> 切り抜きの画像
 以下ソースの /*空欄(複数行)*/ および /*空欄*/ を埋めて、プログラムを完成させなさい。

 <ソース>
void setup()
{
  int [] x = {89,61,34,67,65,54,34,51,30,42,92,62};
  int i,j;
 
  println("Before ");
  for(i=0;i<
/*空欄*/;i++) print(" " + x[i]);

  /*空欄(複数行)*/

  println("\nAfter  ");
  for(i=0;i<
/*空欄*/;i++) print(" " + x[i]);
}

 
 <実行例>
    
 
   
  
<演習4>
 
 char [][] c = { {'A','B','C'}, {'D','E','F'}, {'G','H','I'} }; を文字列の形式で表示する。
 以下のソースの /*空欄*/ を埋めてプログラムを完成させなさい。また、.length を用いること。

 <ソース>
void setup()
{
  char [][] c = { {'A','B','C'},{'D','E','F'},{'G','H','I'} };
  int i;
 
  for(i=0;i</*空欄*/;i++) print(
/*空欄*/);
  println(""); //改行
  for(i=0;i<
/*空欄*/;i++) print(c[1][i]);
  println(""); //改行
  for(i=0;i<
/*空欄*/;i++) print(/*空欄*/);
  println(""); //改行
}

 
 <実行例>
    
 
 
 
<演習5>
 
 整数の乱数(1~9)を発生させて、配列 int [][] r = new int [5][5]; に格納し、それらを表示する。
 また、実行例のように縦の列の合計を計算して表示する。
 以下のソースの /*空欄(複数行)*/ を埋めてプログラムを完成させなさい。
 (.lengthの使用はどちらでもよい)
   
 <ソース>
void setup()
{
    int [][] r = new int [5][5];
    int i,j,sum;

    for(i=0;i<5;i++){ // 5x5の配列変数に乱数を代入する
      for(j=0;j<5;j++){
        r[i][j] = (int)random(1,10);
      }
    }

  /*空欄(複数行)*/

}

 
 <実行例>
    
 

 
<演習6>
 
 整数の乱数(1~9)を10個発生させて配列 int [] x; に格納する。
 次に配列の並び順を逆にする関数 void revArray(int [] a) を作成して、実行例のように表示する。
 
下記のソースの/*空欄*/,/*空欄(複数行)*/を埋めてプログラムを完成させなさい。

 <ソース>
void setup()
{
    int [] x = new int [10];
    int i;

    for(i=0;i<10;i++) /*空欄*/;

    println("Before ");
    for(i=0;i<x.length;i++) print(" " + x[i]);
   
    revArray( x ); // 関数呼び出し
   
    println("\nAfter ");
    for(i=0;i<x.length;i++) print(" " + x[i]);  
}

// 並び順を逆順にする関数
void revArray( int [] a )
{

  /*空欄(複数行)*/

}

 
 <実行例>
    
      
 
 
 
演習問題の提出について
演習1演習6のプログラムソースの内容をTextファイルに記述して、Cerezoから提出しなさい。
わからない問題は、飛ばしてもよい。
上記の内容をすべて1個のTextファイルにまとめ、ファイル名は

   [自分の学籍番号]+"_演習06.txt"  
  (例:"5412016_演習06.txt"、"5412003_演習06.txt" など


のように保存してから提出すること。
提出物には学籍番号と氏名を必ず記載しておくこと。
 
 
<提出ファイルの作成例>
第6回演習問題の回答  5412099 福山太郎

- 演習1 -----------------------------------------
size( 400, 400 );
background(255);
 
ellipse( 200, 200, 100, 100 );


- 演習2 -----------------------------------------
size( 320, 120 );
background( 255 );
fill(255); // 白色で内部を塗りつぶす
rect( 20, 10, 140, 100 ); // 長方形
noFill(); // 内部を塗りつぶさない
rect( 170, 10, 140, 100 ); // 長方形
     :
     :