Computer Science 15-110, Spring 2010
Class Notes: Getting Started with One-Dimensional Arrays
In class this week we are starting to use one-dimensional arrays. Here
is the sample code we developed in class (warts and all) to demonstrate the
ideas:
// ArrayDemo.java
// Developed in class to demonstrate the use of one-dimensional arrays.
import java.util.Scanner;
import java.util.Arrays;
class ArrayDemo {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("Enter n: ");
int n = scanner.nextInt();
int[] a = new int[n];
System.out.println("Now enter " + n + " + ints:");
for (int i=0; i<n; i++) {
System.out.print(" Enter int #" + i + ": ");
a[i] = scanner.nextInt();
}
System.out.println("\nArray, term-by-term:");
for (int i=0; i<n; i++)
System.out.println(a[i]);
System.out.println("\nEntire array:");
System.out.println(Arrays.toString(a));
// once more, but with Fractions
System.out.println("Once more, but with Fractions...");
System.out.print("Enter n: ");
n = scanner.nextInt();
Fraction[] b = new Fraction[n];
System.out.println("Now enter " + n + " + Fractions:");
for (int i=0; i<n; i++) {
System.out.print(" Enter num-space-den #" + i + ": ");
int num = scanner.nextInt();
int den = scanner.nextInt();
b[i] = new Fraction(num, den);
}
System.out.println("\nArray, term-by-term:");
for (int i=0; i<n; i++)
System.out.println(b[i]);
System.out.println("\nEntire array:");
System.out.println(Arrays.toString(b));
} }
class Fraction {
// instance variables (the data for each instance)
private int num, den;
// accessors ("getters")
public int getNum() { return this.num; }
public int getDen() { return this.den; }
// mutators ("setters")
// bad idea for Fraction class, but included here
// for demonstrational purposes.
public void setNum(int num) {
this.num = num;
reduce();
}
public Fraction times(Fraction that) {
int num = this.num * that.num;
int den = this.den * that.den;
Fraction result = new Fraction(num, den);
return result;
}
public String toString() {
if (this.den == 1)
return ""+this.num;
return this.num + "/" + this.den;
}
// public static Fraction constructor(int num, int den) {
public Fraction(int num, int den) {
this.num = num;
this.den = den;
reduce();
}
private void reduce() {
if (this.den == 0) return;
int gcd = gcd(this.num, this.den);
this.num /= gcd;
this.den /= gcd;
}
private static int gcd(int x, int y) {
// gcd(x,y) == gcd(y,x%y)
while (y != 0) {
int r = x%y;
x = y;
y = r;
}
return x;
}
}
carpe diem - carpe diem - carpe diem - carpe diem - carpe diem - carpe diem - carpe diem - carpe diem - carpe diem