実技(Javaプログラミング実習2)③

1.Java復習(配列)
int型の配列を要素数5で用意しそれぞれに1~100の乱数を入れ、最後の要素を出力せよ。
[解答例]

import java.util.Random;
public class Sample {

	public static void main(String[] args) {
		int[] nums=new int[5];
		Random randomKun=new Random();
		for(int i=0;i<nums.length;i++){
			int num=randomKun.nextInt(100)+1;
			nums[i]=num;
		}
		System.out.println(nums[nums.length-1]);
	}
}

2.Java復習(配列)
配列を使って以下の処理を実現せよ。
[実行例]
要素いくつ>5
数値1>20.5
数値2>31.2
数値3>2.3
数値4>8.4
数値5>10.3
合計は72.7です

[解答例]

import java.util.Scanner;

public class CircleArea {

	public static void main(String[] args) {
		Scanner scanKun=new Scanner(System.in);
		System.out.print("要素いくつ>");
		int count=scanKun.nextInt();
		double[] nums=new double[count];
		//配列生成
		for(int i=0;i<nums.length;i++){
			System.out.print("数値"+(i+1)+">");
			double n=scanKun.nextDouble();
			nums[i]=n;
		}
		double sum=0;
		for(double n:nums){
			sum+=n;
		}
		System.out.printf("合計は%.1fです", sum);
		scanKun.close();
		
	}
}

3.配列、2値の入れ替え
問題
1から順番に番号の振られたボールを指定個数袋に入れ、ひとつひとつ取り出した時の番号を表示するアプリを作成せよ。
[実行例]
ボールをいくつ袋に入れる?>5
5
1
3
4
2

[解答例]

import java.util.Random;
import java.util.Scanner;

public class CircleArea {

	public static void main(String[] args) {
		Scanner scan=new Scanner(System.in);
		Random rand=new Random();
		System.out.print("ボールをいくつ袋に入れる?>");
		int count=scan.nextInt();
		int[] balls=new int[count];
		//1~5を順番に入れる
		for(int i=0;i<balls.length;i++){
			balls[i]=i+1;
		}
		//取り出し
		for(int i=balls.length;i>0;i--){
			//取り出すインデックス
			int index=rand.nextInt(i);
			System.out.println(balls[index]);
			//後ろと入れ替え
			int temp=balls[index];
			balls[index]=balls[i-1];
			balls[i-1]=temp;
		}
	}
}

4.Scratchゲーム発表
5.配列カード
要素数が52のString型の配列を用意し、以下の処理を実現せよ。
[実行例]
s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13

d1,d2,d3,d4,d5,d6,d7,d8,d9,d10,d11,d12,d13

h1,h2,h3,h4,h5,h6,h7,h8,h9,h10,h11,h12,h13

c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13

[解答例]

public class Sample {

	public static void main(String[] args) {
		String[] suits={"s","d","h","c"};
		String[] cards=new String[52];
		for(int i=0;i<cards.length;i++){
			cards[i]=suits[i/13]+(i%13+1);
			System.out.print(cards[i]);
			if((i+1) % 13 == 0){
				System.out.println();
			}else{
				System.out.print(",");
			}
		}
	}
}