Transcript ppt

CS 177 Week 15 Recitation Slides
Review
1
Announcements

Final Exam on Friday Dec. 18th


Complete your online review of your classes.


STEW 183 from 1 – 3 PM
Your opinion matters!!!
Project 6 due …

Just kidding
2
How to Study

Know every detail of previous exams you have taken.


Review the slides. Recitation slides are a summary of
each week’s lecture.



Good to review both; they will compliment one another.
Understand your labs and projects as though you had to
re-program them from scratch.


If there is something you DON’T understand, look it up, Google it
and ask questions!
Re-program key parts and ** learn how to trace a program… **
Use the book to fill in any question areas.
DO NOT ONLY RELY ON THE EXAMPLE FINAL!!!!!
3
Remember the Good Ole’ Days

Compile and run a program called Program.java:



Difference between System.out.println() and
System.out.print()?


javac Program.java
java Program
println() adds a new line at the end of the printed statement
Java is case sensitive:

VarName is different from varName.
4
Primitive Data Types:
Type
Kind of values
Sample Literals
int
Integers
-5
0
900031
double
Floating-point
Numbers
3.14
-0.6
6.02e23
boolean
Boolean values
true
false
char
Single characters
‘A’
‘Z’
‘&’
String
Sequences of
charaters
“Hello World”
“Goodbye”
5
From example exam:
6
Conditionals

if statements use a boolean expression and execute a
set of statements if the expression is true.

There may be a corresponding else block that handles cases
where the expression is false
Switch statements allow for the use of choices of several
values, but must only be equality relationships for
integers and characters.
if(<Boolean Expression>) switch(data) {
case val1: <Statement1> (break;)
<Statement1>
case val2: <Statement2> (break;)
else
default: <Statement3>
<Statement2>
}

7
Loops




For loops – Count controlled
While loops – Event controlled
Do/While – Event controlled loops that need to execute
AT LEAST once
Conditions in loops are ways to enter the loop but also
the condition on which to leave the loop – The STOP
condition (Keep going until…)
8
Example:
9
Arrays




Multiple elements stored and accessed together via the
same variable name, with indices 0 – (length of array-1)
All elements must be the same type
To declare an array called example of 100 integers:
int example = new int[100];
To create an array with initial elements, you can use:
int example = {1, 2, 3, 4, 5};
10
Example with arrays and loops
11
What if i started
with 0?
12
Input Output
java ProgramOut > output.txt
java ProgramIn < output.txt
OR
java ProgramOut | java ProgramIn
13
StdDraw
Method
Use
void line(double x0, double y0,
double x1, double y1)
Draw a line from (x0,y0) to
(x1,y1)
void point(double x, double y)
Draw a point at (x,y)
Method
Use
void circle(double x, double y,
double r)
Draw a circle centered at
(x,y) with radius r
void filledCircle(double x, double
y, double r)
Draw a filled circle centered at
(x,y) with radius r
void square(double x, double y,
double r)
Draw a square centered at
(x,y) with edges 2r
void filledSquare(double x, double
y, double r)
Draw a filled square centered
at (x,y) with edges 2r
void setPenColor(Color c)
Start drawing with color c
14
Methods
public static type methodName(type name1, … type nameN)
or private
return type
optional
public int calculateSum(int[] array) {
int sum = 0;
for(int i = 0; i < array.length; i++)
sum += array[i];
return sum;
}
15
16
Audio





Digital audio is made by sampling the heights of the
sound wave many times per second
CD quality audio samples at 44,100 Hz
The frequency of the wave determines how high or low
the wave sounds
The height of the peaks from the troughs (amplitude)
determines the loudness (volume)
StdAudio lets us load WAV files as an array of samples
in the range [-1.0,1,0] and save such arrays as WAV files
17
Method
Use
static double[] read(String file)
Read a WAV file into an array of
doubles
static void save(String file,
double[] input)
Save an array of doubles
(samples) into a WAV file
static void play(String file)
Play a WAV file
static void play(double[] input)
Play an array of doubles (samples)
18
Classes and Objects
public class Name {
private type member1;
private type member2;
…
//member variables
public Name(…) { //constructor
….
}
//other methods ….
}
19
Objects and Classes cont.






Objects behave differently from primitive data types
Reference variables are used to keep track of objects
When a reference is first declared, its value is null
If you try to use the methods or members of a null
reference, your program will crash
Multiple references can point at a single object
Changing the object that they point to will change it for
all references
20

Objects contain


Members
Methods

Members are the data inside of objects, and they are
usually private

Methods are ways of accessing and modifying that data,
and they are usually public
21
22
23
Running Time and Performance

Not every solution that “works” is the best solution to
use.


Sometimes, even if a program works, it can be too slow.
Usually depends on how many loops and how many nested
loops there are.
24
Searching and Sorting

Searching


Can be done in O(n) time by just scanning through the array
Can be done in O(log n) time if the array is sorted by playing a
high-low game called binary search
Cutting the search space in half every time
 It’s an algorithm that works well even with very
large n
Sorting




Relatively simple methods take O(n2) time
The “best” possible is O(n log n) time
25
Sorting

Many possible ways of sorting.

The more efficient, the more difficult to program…
Bubble Sort
 Insertion Sort
 Merge Sort
 Bucket Sort
 (Many others…)


SHOULD BECOME FAMILIAR WITH ALGORITHMS FROM
SLIDES!!!!!
26
27
28
ANY QUESTIONS
29
QUIZ

Using what you know and the remaining time, write down
a question and answer that shows something you have
learned this semester. Don’t forget your name in the
process…

(Please do not get over zealous where you may not be
able to finish on time.)

GOOD LUCK ON THE FINAL

(AND DON’T FORGET EVALUATIONS!!!)
30