実技(Javaプログラミング実習1)⑧

1.配列復習

public class Sample{
	public static void main(String[] args){
		String[] pLangs;
		pLangs=new String[4];
		pLangs[0]="Java";
		pLangs[1]="C#";
		pLangs[2]="Python";
		pLangs[3]="JavaScript";
		
		for(int i=0;i<pLangs.length;i++){
			System.out.println(pLangs[i]);
		}
	}
}

2.for文復習
以下の処理を実現せよ。
[実行例]
一行は★何個ですか>3
それを何行出力しますか>4
★★★
★★★
★★★
★★★

import java.util.*;
public class Sample{
	public static void main(String[] args){
		System.out.print("一行は★何個ですか>");
		int cols=new Scanner(System.in).nextInt();
		System.out.print("それを何行出力しますか>");
		int rows=new Scanner(System.in).nextInt();
		for(int i=0;i<rows;i++){
			for(int j=0;j<cols;j++){
				System.out.print('★');
			}
			System.out.println();
		}
	}
}

[実行例]
何行出力しますか>4

★★
★★★
★★★★

import java.util.*;
public class Sample{
	public static void main(String[] args){		
		System.out.print("何行出力しますか>");
		int rows=new Scanner(System.in).nextInt();
		for(int i=0;i<rows;i++){
			for(int j=0;j<i+1;j++){
				System.out.print('★');
			}
			System.out.println();
		}
	}
}

[実行例]

何行出力しますか>4
   ★
  ★★
 ★★★
★★★★
import java.util.*;
public class Sample{
	public static void main(String[] args){		
		System.out.print("何行出力しますか>");
		int rows=new Scanner(System.in).nextInt();
		for(int i=0;i<rows;i++){
			for(int j=0;j<rows;j++){
				/*行と空白の個数の関係(rowsが4のとき)
				  0...3
				  1...2
				  2...1
				  3...0
				 */
				
				if(j<rows-1-i){
					System.out.print(' ');
				}else{
					System.out.print('★');
				}
			}
			System.out.println();
		}
	}
}

3.2重for文(行と列)
最大値を入力し、それを2乗したグラフを出力せよ。
[実行例]

最大値は>5
*************************
****************
*********
****
*

*
****
*********
****************
*************************

[解答例]

import java.util.*;
public class Sample{
	public static void main(String[] args){		
		System.out.print("最大値は>");
		int max=new Scanner(System.in).nextInt();
		for(int i=max;i>=-max;i--){
			for(int j=0;j<i*i;j++){
				System.out.print('*');
			}
			System.out.println();
		}
	}
}

4.参照型とは
5.多次元配列
2年分の売上を2次元配列を使って作成し、出力せよ。
なお、各値は1~100のランダムとする。
[実行例]

2001 63,44,68,5,93,65,45,72,72,67,51,85,
2002 96,20,7,30,6,27,11,25,52,82,21,60,

[解答例]

import java.util.*;
public class Sample{
	public static void main(String[] args){	
		//データ作成
		String[] years={"2001","2002"};
		int[][] data=new int[years.length][12];
		for(int i=0;i<years.length;i++){
			for(int j=0;j<12;j++){
				data[i][j]=new Random().nextInt(100)+1;
			}
		}
		//データ出力
		for(int i=0;i<years.length;i++){
			System.out.print(years[i]+" ");
			for(int j=0;j<12;j++){
				System.out.print(data[i][j]+",");
			}
			System.out.println();
		}
	}
}