第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に収納するようにします。
解答例は例によって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入門第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部