vowls

public class Vowels
{
  public static void main(String[] args)
  {
    Scanner in = new Scanner(System.in);
    System.out.print("Please enter a word: ");
    String word = in.next().toLowerCase();

    int count = 0;

    for(int i = 0; i < word.length(); i++)
    {
      String letter = word.substring(i, i + 1);
      if ("aeiouAEIOU".contains(letter))
      {
        count++;
      }
    }
    System.out.println(count + " vowels");
  }
}
public class Negative
{
  public static void main(String[] args)
  {
    Picture pic = new Picture();
    pic.load("eliza.png");
    pic.draw();
    pic.pause();
    for(int i = 0; i < pic.pixels(); i++)
    {
      Color c = pic.getColorAt(i);

      Color negative = new Color(255 - c.getRed(), 255 - c.getGreen(), 255 - c.getBlue());

      pic.setColorAt(i, negative);
    }
  }
}
public static void main(String[] args)
 throws FileNotFound Exception
 {
 	File inputFile = new File("input.txt");
 	Scanner in = new Scanner(inputFile);

 	while (in.hasNextDouble())
 	{
 		double value = in.nextDouble()
 	}
 }

public class Colors
{
public static void main(String[] args)
{
final int WIDTH = 30;
final int ROWS = 16;
final int COLUMNS = 16;

for (int i = 0; i < ROWS; i++) { for (int j = 0; j < COLUMNS; j++) { int x = WIDTH * j; int y = WIDTH * i; Rectangle rect = new Rectangle(x, y, WIDTH - 1, WIDTH - 1); int blue = i * 255 / (ROWS - 1); int green = i * 255 / (COLUMNS - 1); Color fillColor = new Color(0, blue, green); rect.setColor(fillColor); rect.fill(); } } } } [/java]

compare dicimal

public class test
{
  public static void main(String[] args)
  {
    double original = 2;
    double root = Math.sqrt(original);
    double rootSquared = root * root;
    if (rootSquared == original)
    {
      System.out.println("They are the same");
    } else {
      System.out.println("rootSquared is " + rootSquared);
    }
  }
}
[vagrant@localhost new]$ java test
rootSquared is 2.0000000000000004
public class test
{
  public static void main(String[] args)
  {
    double original = 2;
    double root = Math.sqrt(original);
    double rootSquared = root * root;
    final double EPSILON = 1E - 12;
    if (Math.abs(rootSquared - original) < EPSILON)
    {
      System.out.println("They are the same");
    } else {
      System.out.println("rootSquared is " + rootSquared);
    }
  }
}

How long does it take to be millionare

public class test
{
  public static void main(String[] args)
  {
    double balance = 100;
    double target = 1000000;
    double rate = 0.01;
    int year = 0;
    while (balance < target)
    {
      double interest = balance * rate;
      balance = balance + interest;
      year++;
      System.out.printf("Year %d: %8.2f\n", year, balance);
    }
  }
}

sum is digit

int n = 365;
int sum = 0;
while (n > 0)
{
  int digit = n % 10;
  sum = sum + digit;
  n = n / 10;
}
System.out.println(sum);

while loop

while (balance >= target)
{
  double interest = balance * rate
  balance = balance + interest;
  year++;
  System.out.printf("Year %d: %8.2 year, balance")
}

The for loop
int counter = 1;
while (counter <= 6) { System.out.println(counter + ". Sleep"); couter++; } [/java]

cast

double price = 4.35
int pennies = (int)(4.35 * 100);

turn Gray

    public void turnGray()
    {
        int gray = 0.2126 * red + 0.7152 * green + 0.0722 * blue;
    }
Math.pow(10, 3)
Math.sqrt(4)
Math.abs(3- 5)
Math.min(300, 255)
Math.max(0, -1)

math function

red = Math.min(255, red + 25);
import java.util.Scanner;

public class InputDemo
{
	public static void main(String[] args)
	{
		Scanner in = new Scanner(System.in);
		System.out.print("How old ar you? ");
		int age = in.nextInt();

		System.out.print("Next year, you will be ");
		System.out.println(age + 1);

		System.out.print("What is your weight? ");
		double.weight = in.nextDouble();

		System.out.print("I hope next year that'll be ");
		System.out.print(weight * 0.95);
	}
}
int cookiesPerDay;
double cerealBoxesPerDay;
String name;
System.out.printf("%6d", cookiesPerDay);
System.out.printf("%4.2f", cerealBoxesPerDay);
System.out.printf("%s", name);
String name = "whitehouse";

name.length()
name.substring(3, 7)
name.indexOf("c")
"Hello" + name

secret government elevator

import java.util.Scanner;

public class ElevatorDemo
{
    public static void main(String[] args)
    {
        Scanner in = new Scanner(System.in);
        System.out.print("Floor: ");
        int floor = in.nextInt();
        int actualFloor;

        if (floor > 14)
        {
            actualFloor = floor - 2;
        }
        else
        {
            actualFloor = floor;
        }
        System.out.println("Actual floor: " + actualFloor);
    }
}

checker board

public class CheckerBoardPainter
{
    /**
     * Spaces are red if one of the coordinates is even and the other is odd
     * Spaces are blue if both coordinates are even
     * Spaces are blue if both coordinates are odd
     * 
     * @return 1 for red spaces and 0 for blue
     * @param row the row of the space to paint
     * @param col the column of the space to paint. 
     */
     public int getColor(int row, int col)
     {
         if (row % 2 == 0 && col % 2 == 0) {
           return 0;
         }  
         else if (row % 2 == 1 && col % 2 == 1) {
           return 0;
         }
         else {
           return 1;
         }
     }
}

閏年

西暦が400で割り切れる年はうるう年である
400で割り切れない場合、西暦が100で割り切れる年はうるう年ではない
100で割り切れない場合、西暦が4で割り切れる年はうるう年である
4で割り切れない場合、うるう年ではない

much better to understand
ex if n % 400 != 0 && n % 100 = 0
return うるう年

n = 2000
-> 閏年
n = 1900
-> not 閏年
n = 2100
-> not 閏年

1900, 1, 1 Monday
1989, 7, 1
(364 + 365 * 88 + 22 + (31 + 28 + 31 + 30 + 31 + 30 + 1)) % 7 = 5
-> saturday

here is Java code

public class WhatDayWillItBe
{
    public static void main(String[] args)
    {
        Day desiredDay = new Day(1983, 6, 18);

        Day referenceDay = new Day(1900, 1, 1);
        int referenceWeekDay = 1;
        int daysBetween = desiredDay.daysFrom(referenceDay):
        int uncorrectedWeekDay = referenceWeekDay + daysBetween;
        int weekday = uncorrectedWeekDay % 7;

        System.out.print("Weekday: ");
        System.out.println(weekday);
    }
}

overflow of java

largest number of java integer is about two billion. if variable integer over it, it get overflow.

public class MathInJava
{
    public double amdahlSpeedup(double s, double n)
    {
        return 1 / (s + (1 - s)/n);
    }
    public double crossRatio(double a, double b, double c, double d)
    {
        return ((a-c)*(b-d))/((b-c)*(a-d));
    }
    public double average(double a, double b, double c, double d)
    {
        // To do!
        return (a + b + c + d)/ 4.0;
    }
}
    public void reduce()
    {
        red = (red * 6 / 256) * 51;
        green = (green * 6 / 256) * 51;
        blue = (blue * 6 / 256) * 51;
    }

connect friend class

public class PersonDemo 
{
    public static void main(String[] args)
    {
        Person sara = new Person("Sara", "sara.jpg", 10, 200);
        Person chenghan = new Person("Cheng-Han", "cheng-han.png", 300, 0);
        Person cay = new Person("Cay", "cay.gif", 250, 180);
    }
}

// Bluej project: lesson3/friends4
public class Person
{
    private String name;
    private String friends;
    private int x;
    private int y;
    

    public Person (String aName, String pictureName, int xCoord, int yCoord)
    {
        name = aName;
        friends = "";
        x = xCoord;
        y = yCoord;
        Picture picture = new Picture(pictureName);
        picture.translate(xCoord, yCoord);
        picture.draw();
    }
    
    public void addFriend(Person friend) 
    {
        friends = friends + friend.name + " ";
        SmallCircle circle = new SmallCircle(x, y);
        circle.fill();
        Line line = new Line(x, y, friend.x, friend.y);
        line.draw();
    }
    
    public void unfriend(Person nonFriend)
    {
        friends = friends.replace(nonFriend.name + " ", "");
    }
    
    public String getFriends() 
    {
        return friends;
    }
}

The this Reference

public double drive(double distance)
{
  this.mimlesDriven = this.milesDriven + distance
}
public Person (String name, String pictureName, int x, int y)
{
    this.name = name;
    this.friends = "";
    this.x = x;
    this.y = y;
    Picture picture = new Picture(pictureName);
    picture.translate(x, y);
    picture.draw();
}

draw picture class

public class PersonDemo 
{
    public static void main(String[] args)
    {
        Person sara = new Person("Sara", "sara.jpg", 10, 200);
        Person chenghan = new Person("Cheng-Han", "cheng-han.png", 300, 0);
        Person cay = new Person("Cay", "cay.gif", 250, 180);
    }
}
public class Person
{
    private String name;
    private String friends;
    
    public Person (String aName, String pictureName, int xCoord, int yCoord)
    {
        name = aName;
        friends = "";
        Picture picture = new Picture(pictureName);
        picture.translate(xCoord, yCoord);
        picture.draw();
    }
    
    public void addFriend(Person friend) 
    {
        friends = friends + friend.name + " ";
    }
    
    public void unfriend(Person nonFriend)
    {
        friends = friends.replace(nonFriend.name + " ", "");
    }
    
    public String getFriends() 
    {
        return friends;
    }
}

GasInTank

instance variable stay long, but local variable only stay short term.

public class CarTester
{
    public static void main(String[] args)
    {
        Car car = new Car();

        // TODO: Add 20 gallons and drive 100 miles
        car.addGas(20);
        car.drive(100);
        
        // TODO: Print actual and expected gas level
        System.out.println("Expected:18");
        System.out.println(car.getGasInTank());
    }
}
public class Car
{
    private double milesDriven;
    private double gasInTank;
    private double milesPerGallon;

    public Car()
    {
        milesDriven = 0;
        gasInTank = 0;
        milesPerGallon = 50;
    }

    /**
       Drives this car by a given distance.
       @param distance the distance to drive
    */
    public void drive(double distance)
    {
        milesDriven = milesDriven + distance;
        double gasConsumed = distance / milesPerGallon;
        gasInTank = gasInTank - gasConsumed;
    }

    public void addGas(double amount)
    {
        gasInTank = gasInTank + amount;
    }
    
    /**
       Gets the current mileage of this car.
       @return the total number of miles driven
    */
    public double getMilesDriven()
    {
        return milesDriven;
    }

    /**
       Gets the current amount of gas in the tank of this car.
       @return the current gas level
    */
    public double getGasInTank()
    {
        return gasInTank;
    }
}

test programming

public class test
{
    public static void main(String[] args)
    {
      Rectangle box = new Rectangle(45, 90, 60, 90);
      box.grow(20, 20);
      system.out.println(box.getX());
      system.out.println("exected: 25");
      system.out.println(box.getY());
      system.out.println("exected: 70");
    }
}
Rectangle frontFace = new Rectangle(20, 30 ,100, 40);
        Line leftLine = new Line(20, 30, 50, 10);
        Line topLine = new Line(50, 10, 150, 10);
        Line middleLine = new Line(120, 30, 150, 10);
        Line rightLine = new Line(150, 10, 150, 50);
        Line bottomLine = new Line(120, 70, 150, 50);

        frontFace.draw();
        leftLine.draw();
        topLine.draw();
        middleLine.draw();
        rightLine.draw();
        bottomLine.draw();
      box.setColor(new Color(255, 0, 0));
      box.draw();
      box2.setColor(new Color(0, 255, 0));
      box2.fill()