import java.util.*;

public class App {
	public static void main(String [] args) {
		int [] a = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
		System.out.println("Before add1_1(int [])");
		print(a);
		add1_1(a);
		System.out.println("After add1_1(int [])");
		print(a);
		System.out.println();

		System.out.println("Before add1_2(int [])");
		print(a);
		add1_2(a);
		System.out.println("After add1_2(int [])");
		print(a);
		System.out.println();

		Rational 
			r1 = new Rational(10, 5),
			r2 = r1,
			r3 = new Rational(r1);

		if (r2 == r1)
			System.out.println("r2 is an alias of r1");
		else
			System.out.println("r2 is a copy of r1");

		if (r3 == r1)
			System.out.println("r3 is an alias of r1");
		else
			System.out.println("r3 is a copy of r1");
		System.out.println();

		Rational two = new Rational(2, 1);
		System.out.println("Before r3.multBy(two): r1: " + r1 + " r2: " + r2 + " r3: " + r3);
		r3.multBy(two);
		System.out.println("After r3.multBy(two): r1: " + r1 + " r2: " + r2 + " r3: " + r3);
		System.out.println();

		Rational three = new Rational(3, 1);
		System.out.println("Before r2.multBy(three): r1: " + r1 + " r2: " + r2 + " r3: " + r3);
		r2.multBy(three);
		System.out.println("After r2.multBy(three): r1: " + r1 + " r2: " + r2 + " r3: " + r3);
	}

	static void print(int [] a) {
		for (int e : a) 
			System.out.print(e + " ");
		System.out.println();
	}

	static void add1_1(int [] a) {
		for (int i = 0; i < a.length; i++)
			a[i]++;
	}

	static void add1_2(int [] a) {
		for (int e : a) 
			e++;
	}
}
