45
CS 121 Week 3 - Wednesday

Week 3 - Wednesday. What did we talk about last time? Math methods Lab 2

Embed Size (px)

Citation preview

Page 1: Week 3 - Wednesday.  What did we talk about last time?  Math methods  Lab 2

CS 121Week 3 - Wednesday

Page 2: Week 3 - Wednesday.  What did we talk about last time?  Math methods  Lab 2

Last time

What did we talk about last time? Math methods Lab 2

Page 3: Week 3 - Wednesday.  What did we talk about last time?  Math methods  Lab 2

Questions?

Page 4: Week 3 - Wednesday.  What did we talk about last time?  Math methods  Lab 2

Project 1

Page 5: Week 3 - Wednesday.  What did we talk about last time?  Math methods  Lab 2

System.out.format()

For Project 1, the easiest way to print out data with 2 decimal places is put "%.2f" in the formatting string for System.out.format()

If you want, you can include other things in the formatting string

double x = 5.74961;System.out.format("%.2f", x); //prints 5.75

System.out.format("Total = $%.2f", 15.7777); //prints Total = $15.78

Page 6: Week 3 - Wednesday.  What did we talk about last time?  Math methods  Lab 2

Review of math methods

Page 7: Week 3 - Wednesday.  What did we talk about last time?  Math methods  Lab 2

Methods

A method is a piece of Java code that has been packaged up so that you can use it over and over

Usually, a method will take some input and give some output

System.out.println() is an example of a method

Using a method (calling a method) always requires parentheses

Page 8: Week 3 - Wednesday.  What did we talk about last time?  Math methods  Lab 2

Method example with sin()

The sin() method allows you to find the sine of an angle (in radians)

This method is inside the Math class The answer that it gives back is of

type double To use it, you might type the

following:

double value = Math.sin( 2.4 );

Page 9: Week 3 - Wednesday.  What did we talk about last time?  Math methods  Lab 2

If your method takes input, you put it inside the

parentheses, if not, you leave them

empty

Next, you must give the method name that you

are calling

Unless the method is inside your class, you must supply a

class name and a dot

You can store the result of the

method, as long as the variable

matches the type that the method

gives back

Method syntax

result = class.method( input );

Page 10: Week 3 - Wednesday.  What did we talk about last time?  Math methods  Lab 2

Other Math methodsReturn type

Name Job

double sin( double theta ) Find the sine of angle theta

double cos( double theta ) Find the cosine of angle theta

double tan( double theta ) Find the tangent of angle theta

double exp( double a ) Raise e to the power of a (ea)

double log( double a ) Find the natural log of a

double pow( double a, double b ) Raise a to the power of b (ab)

long round( double a ) Round a to the nearest integer

double random() Create a random number in [0, 1)

double sqrt( double a ) Find the square root of a

double toDegrees( double radians ) Convert radians to degrees

double toRadians( double degrees ) Convert degrees to radians

Page 11: Week 3 - Wednesday.  What did we talk about last time?  Math methods  Lab 2

Operations on booleans

Page 12: Week 3 - Wednesday.  What did we talk about last time?  Math methods  Lab 2

Operations on booleans

The boolean type seems so simple What on earth would we want to do

with it? Just like numerical types, we can

combine booleans in various ways You might be familiar with these

operations if you have taken a course in logic

Page 13: Week 3 - Wednesday.  What did we talk about last time?  Math methods  Lab 2

The ! operator

The NOT operator Changes a true into a false or a false into a true

x !x

true false

false true

Page 14: Week 3 - Wednesday.  What did we talk about last time?  Math methods  Lab 2

Combining boolean values

We can combine statements in logic together to make other interesting statements

The way we combine them makes a difference, e.g. Politicians lie.

(True) Cast iron sinks. (True)

Politicians lie in cast iron sinks.(Absurd)

Page 15: Week 3 - Wednesday.  What did we talk about last time?  Math methods  Lab 2

The && operator

The AND operator It gives back true only if both things

being combined are true If I can swim AND the pool is not

filled with acid, then I will survivex y x && y

true true true

true false false

false true false

false false false

Page 16: Week 3 - Wednesday.  What did we talk about last time?  Math methods  Lab 2

The || operator

The OR operator It gives back true if either or both

things being combined are true If I get punched in the face OR

kicked in the stomach, then I will be in pain x y x || y

true true true

true false true

false true true

false false false

Page 17: Week 3 - Wednesday.  What did we talk about last time?  Math methods  Lab 2

The ^ operator

The XOR operator, sort of like what people often mean when they say "or" in English

It gives back true if one but not both things are true

If I get 1 apple XOR 3 oranges, then I will have an odd number of fruit

x y x ^ y

true true false

true false true

false true true

false false false

Page 18: Week 3 - Wednesday.  What did we talk about last time?  Math methods  Lab 2

See how you're following…

(!true && (false^(false||true)))

Is this expression true or false?

It's false

Page 19: Week 3 - Wednesday.  What did we talk about last time?  Math methods  Lab 2

Short circuit evaluation

In some circumstances, Java doesn't check the whole expression:

(true || (some complicated expression)) Ignores everything after || and gives

back true

(false && (some complicated expression)) Ignores everything after && and gives

back false

Page 20: Week 3 - Wednesday.  What did we talk about last time?  Math methods  Lab 2

Operations on char values

Page 21: Week 3 - Wednesday.  What did we talk about last time?  Math methods  Lab 2

What kinds of operations would you expect on chars?

Multiplication and division don't seem to make sense

We can increment and decrement a char

char letter;

letter = 'x'; // letter contains 'x'letter++; // letter contains 'y'letter++; // letter contains 'z'letter++; // letter contains ?

Page 22: Week 3 - Wednesday.  What did we talk about last time?  Math methods  Lab 2

Sometimes it's useful to know the number

It is possible to convert a char into an int

It can be more useful to get the offset from a starting point

int number;number = 'a'; // letter contains 97

char letter = 'r';int number;number = letter – 'a' + 1;

//number is 18

Page 23: Week 3 - Wednesday.  What did we talk about last time?  Math methods  Lab 2

ASCII Table

Everything in the computer is 1's and 0's

Each character has a number associated with it

These numbers can be listed in tables

The ASCII table only covers 7 bits of information (0-127)

NEVER EVER TYPE THESE NUMBERS IN CODE

Page 24: Week 3 - Wednesday.  What did we talk about last time?  Math methods  Lab 2

Escape sequences

Remember that we use single quotes to designate a char literal: 'z'

What if you want to use the apostrophe character ( ' )? apostrophe: '\''

What if you want to use characters that can't be printed, like tab or newline? tab: '\t' newline: '\n'

The backslash is a message that a special command called an escape sequence is coming

Page 25: Week 3 - Wednesday.  What did we talk about last time?  Math methods  Lab 2

Escape sequences in String literals

You can put escape sequences into String literals as well

You do not have to escape apostrophes in a String

But you do have to escape quotation marks

String blanks = "\t\t\t\t\n";

String quote = "He said, \"Attack!\"";

Page 26: Week 3 - Wednesday.  What did we talk about last time?  Math methods  Lab 2

Operations on String values

Page 27: Week 3 - Wednesday.  What did we talk about last time?  Math methods  Lab 2

Concatenation

The only operator that we will use directly with String values is the + (concatenation) operator

This operator creates a new String that is the concatenation of the two source Strings

As with numerical types, the + operator does not change the two Strings being concatenatedString word;

word = "tick" + "tock"; // word is "ticktock"

Page 28: Week 3 - Wednesday.  What did we talk about last time?  Math methods  Lab 2

Concatenation with other types

Concatenation is a great tool for merging lots of different types into a String

Confusion can arise:

String word;word = 99 + " problems"; // word is

// "99 problems"

String word;word = "love potion #" + 4 + 5; // word is "love potion #45"word = "love potion #" + (4 + 5); // word is "love potion #9"

Page 29: Week 3 - Wednesday.  What did we talk about last time?  Math methods  Lab 2

Strings are objects

Objects have data inside of them but also have the ability to do things with methods

Among other things, a String can: Compare itself with other Strings Find its length Say which character is located at

position i Generate a substring

Page 30: Week 3 - Wednesday.  What did we talk about last time?  Math methods  Lab 2

String comparison

To see if two Strings are identical, use the equals() method:

If they are the same (including case), the method will return true

If they are not, the method will return false

String word1 = "lettuce";String word2 = "let us";boolean same = word1.equals ( word2 ); // false

Page 31: Week 3 - Wednesday.  What did we talk about last time?  Math methods  Lab 2

String comparison

To see which String goes first in the dictionary, use the compareTo() method:

If word1 comes first, value will be a negative number

If word2 comes first, value will be a positive number

If they are the same, value will be 0

String word1 = "hard work";String word2 = "success";int value = word1.compareTo( word2 ); // < 0

Page 32: Week 3 - Wednesday.  What did we talk about last time?  Math methods  Lab 2

String length

To find the length of a String, use the length() method:

It is possible to have a String of length 0:

String word = "a mile long";int length = word.length(); // length = 11

String nothing = "";int length = nothing.length(); // length = 0

Page 33: Week 3 - Wednesday.  What did we talk about last time?  Math methods  Lab 2

char at position i

To find the char at position i in a String, use the charAt() method:

Woe betide the man (or woman) who asks for a character out of range:

String word = "walnut";char c = word.charAt(3); // c = 'n'

String word = "short";char c = word.charAt(10); // ouch!

Page 34: Week 3 - Wednesday.  What did we talk about last time?  Math methods  Lab 2

Getting a substring

To get a substring of a String, use the substring() method:

The first int tells which char to start on, the second int says which char to stop before

String word1 = "disco fever";String word2 = word1.substring(3,7);

//word2 = "co f"

Page 35: Week 3 - Wednesday.  What did we talk about last time?  Math methods  Lab 2

Example

Write a program that reads a first and a last name

Then, output only the person's initials

Page 36: Week 3 - Wednesday.  What did we talk about last time?  Math methods  Lab 2

Wrapper Classes

Page 37: Week 3 - Wednesday.  What did we talk about last time?  Math methods  Lab 2

Classes and objects are useful

There are certain things that are difficult to do with the operations we've shown you

For example, how do you turn a String representation of a number like "847" into the actual int 847?

Wrapper classes!

Page 38: Week 3 - Wednesday.  What did we talk about last time?  Math methods  Lab 2

Wrapper classes

Each primitive data type in Java has a wrapper class

We will focus on 3: Integer Double Character

Page 39: Week 3 - Wednesday.  What did we talk about last time?  Math methods  Lab 2

Integer class

The main uses of the Integer class are converting ints to and from Strings

To convert a String to an int, use the parseInt() method

To convert an int to a String, use the toString() method (or just concatenate)

String number = "345";int value = Integer.parseInt(number);

int value = 543;String number = Integer.toString(value);

Page 40: Week 3 - Wednesday.  What did we talk about last time?  Math methods  Lab 2

Double class

The Double class is much like the Integer class

To convert a String to a double, use the parseDouble() method

To convert a double to a String, use the toString() method (or just concatenate)

String number = "-0.4581";double value = Double.parseDouble(number);

double value = 6.02e23;String number = Double.toString(value);

Page 41: Week 3 - Wednesday.  What did we talk about last time?  Math methods  Lab 2

Character class

The Character class is mostly useful for getting information about a particular char

For example, you can find out whether a char is a digit, is a letter, is uppercase, or is lowercase by calling the isDigit(), isLetter(), isUpperCase(), or isLowerCase() methods, respectively

char c = '8';boolean value = Character.isDigit(c); //true

Page 42: Week 3 - Wednesday.  What did we talk about last time?  Math methods  Lab 2

Quiz

Page 43: Week 3 - Wednesday.  What did we talk about last time?  Math methods  Lab 2

Upcoming

Page 44: Week 3 - Wednesday.  What did we talk about last time?  Math methods  Lab 2

Next time…

Introduction to if-statements Lab 3

Page 45: Week 3 - Wednesday.  What did we talk about last time?  Math methods  Lab 2

Reminders

Keep reading Chapter 3 of the textbook

Keep working on Project 1 Due next Friday