Transcript 00-review

TCSS 143, Autumn 2004
Lecture Notes
Review
1
Computer programming


computers manipulate data
data is often categorized into types




numbers (integers, real numbers)
written text (characters, strings of characters)
a program can be thought of as a sequence of
operations to perform on a set of data
to understand a program's behavior
("semantics") is to understand its data flow
and its control flow
2
Algorithmic thinking



a general maxim: "You don't really understand
something until you can explain it to someone
else."
Donald Knuth's computer science version: "A
person does not really understand something
until [s]he can teach it to a computer."
algorithmic thinking: the understanding of
how to translate behavior to/from a language
that a computer can understand
3
Why are algorithms important?


algorithm (n): A procedure or formula for
solving a problem.
Consider the problem of finding a phone
number in the white pages, for a person whose
name is known.



What is a correct, easy-to-describe (1 sentence)
algorithm to solve this problem?
Is there a more efficient algorithm? Which is
simpler? Which is better?
What assumptions did we rely on for our algorithms
to work? Are the assumptions the same for each? 4
Anatomy of a Java program





statement: smallest unit of execution in Java
statements are grouped into sequences called
methods
methods must be grouped into classes
a program consists of one or more classes
program execution begins by executing the
statements in the method main, in order
5
Java statements

all categories of Java statements:







class declaration
assignment
method call, (return)
selection
(if, if/else, switch)
repetition (while, do/while, for, break, continue)
error handling (throw, try, catch, finally)
concurrency (synchronized)
6
Example statements

assignment
int x = 3 + 4 * 5 + 1;
String s = 3 + "4 * 5" + 1;
Random rand = new Random();

method call
System.out.println("hello 1+2");
Math.max(4, 20);
7
Example statements

selection
double d = 1.0 / 3.0; // one third
if (d == 1/3) {
System.out.println("equal");
} else {
System.out.println("nonequal");
}

repetition
for (int n = 1024; n > 1; n = n / 2) {
System.out.println(n);
}
8
Example statements

class declaration
public class BankAccount {
private int m_id;
private double m_balance = 0.0;
public BankAccount(int id) {
m_id = id;
}
public int getID() { return m_id; }
public double getBalance() { return m_balance; }
// public void deposit(double amount) { ... }
// public void withdraw(double amount) { ... }
// public String toString() { ... }
}
9
The Scanner class







Scanner reads input from the keyboard or files
Scanner can read a line at a time from the input, or chop it up
into tokens by whitespace and convert each token into int,
double, ...
Class java.util.Scanner will be included in a future version
of Java
Instructor provides us with a temporary version to use for now
You must place Scanner.java in the same folder as your
programs, or else they will not compile
When using Scanner, write import java.util.*; at the top
of your program
Download Scanner.java from
http://faculty.washington.edu/stepp/scanner/
10
Input using Scanner

public Scanner(InputStream source)
Constructs a scanner to read input from the given source; to read from the
keyboard, pass System.in.

public boolean hasNext()
public boolean hasNextBoolean()
public boolean hasNextDouble()
public boolean hasNextInt()
public boolean hasNextLine()
Returns true if the scanner will successfully be able to read a value from the
input of the given type.

public Object next()
public boolean nextBoolean()
public double nextDouble()
public int nextInt()
public String nextLine()
Reads and returns a value from the input of the given type. If the scanner
is unable to read the value, a NoSuchElementException will be thrown.
11
Scanner example

Prompt the user to enter some number of integers, read that
many integers, then print the largest of the integers.
Scanner in = new Scanner(System.in);
System.out.print("How many numbers? ");
int numNumbers = in.nextInt();
int largest = 0;
for (int i = 0; i < numNumbers; i++) {
System.out.print("Enter a number: ");
int currentNumber = in.nextInt();
if (i == 0 || currentNumber > largest)
largest = currentNumber;
}
System.out.println("Largest: " + largest);
12
More Scanner examples


Repeatedly read lines of input from the
keyboard. Reverse each line as it's read and
print the reversed line. When the user enters a
blank line, end the program.
The same as above, except instead of reversing
the lines, reverse the letters in each word of
the line, but not the lines themselves.
13
Our programming environment





TCSS labs
TextPad editor
H drive to store your files
Catalyst web system for e-submit
Scanner class for input
14
References

Koffman, Appendix A: Introduction to Java, pp.
669 - 694, 698 - 710, 713 - 723, 731 - 735
15