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