Upload
tyler-bond
View
216
Download
1
Embed Size (px)
Citation preview
1
CS 177 Week 3 Recitation Slides
Basic Math Operations, Booleans, and Character Operations
2
Announcements Project 1 was posted last Friday.
It is due on February, 4th at 9pm TAs started consulting hours this week
Tue-Thu 6:00pm to 9:00 pm
For the project, make sure to: Properly indent your code
In Dr. Java, select all (CTRL+A) and then press TAB Comment the variables you use YOU WILL LOSE POINTS IF THIS IS NOT DONE!
3
QUESTIONS???
4
Basic Operations Recap
Operations On Integers
+, -, *, / Addition, subtraction, multiplication and division Note that division of integers drops the fractional part
+=, -=, *=, /= a += 4; a = a + 4; c *= 5; c = c * 5;
++, -- a ++; a = a + 1;
% Remainder of division a = 10 % 3; // a contains 1
5
b -= 3; b = b - 3; d /= 2; b = b / 2;
b --; b = b - 1;
Question
What are the ways we can write to increment variable a by 1? a = a + 1; a += 1; a ++;
6
7
Basic Operations w/IntegersCode Example 1
public class IntegerOperations { public static void main(String[] args) { int a; int b; a = 13 + 20; // a contains 33 b = a / 11; // b contains 3 System.out.println("a = " + a); System.out.println("b = " + b); a -= 7; System.out.println("a = " + a);
b = a / b; // Result = 8.66 but int type means 8 b++; // Increment b from 8 to 9 System.out.println("b = " + b); } }
Outputa = 33
b = 3
a = 26
b = 9
8
Basic Operations On Doubles
Same operations as integers But the fractional part is retained
9
Basic Operations w/DoublesCode Example 1
public class DoubleOperations { public static void main(String[] args) { double a; double b; double c; double d; a = 4.0 / 3.0; b = a - 1; c = b + b + b * 2; d = 9 / 4; d--;
System.out.println("a = " + a); System.out.println("b = " + b); System.out.println("c = " + c); System.out.println("d = " + d); } }
Outputa = 1.3333333333333333
b = 0.3333333333333333
c = 1.3333333333333333
d = 1.0 QuestionVariable d is a double or an integer?
10
Casting in Java
int a = (int) 1.8; // convert double 1.8 into an int 1 Convert one data type to another loss of precision float int, number is rounded down Let the Java compiler know that you are aware that
you are going to lose some information, but you are ok with that.
11
Math Library in Java
Java contains a Math class that includes a variety of math functions that can be used to perform other operations on integers and/or doubles
The term “library” just means that it is a collection of predefined methods/functions that a programmer can leverage
Brief example:double x = 16.0;
double y;
y = Math.sqrt(x); // y will be 4.0 after this line executes
12
Math Library in Java
Return 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
13
Math Operations Code Example
public class MathOperations { public static void main(String[] args) { double a = 25; double b = 4; double x = 2.0; double y = 6.731; double z = 0.5; a = Math.sqrt(a); b = Math.pow(b, 2); x = Math.pow(x, 5) / 8; y = Math.round(y); z = Math.cos(z); System.out.println("a is " + a); System.out.println("b is " + b); System.out.println("x is " + x); System.out.println("y is " + y); System.out.println("z is " + z); } }
Outputa is 5.0
b is 16.0
x is 4.0
y is 7.0
z is 0.8775825618903728 NoteMath.round(y);
(int) (y + 0.5);
These are the same.
14
Boolean Operations
Operator Symbol Function
NOT ! true false , false true
AND && Outputs true only if both operands are true
OR || Outputs true if either or both operands are true
XOR ^ Outputs true if one but not both operands are true
15
Boolean Operations Code Example
public class BooleanOperations { public static void main(String[] args) { boolean test1 = true; boolean test2 = false; boolean test3 = test1 && test2; boolean test4 = test1 || test2; boolean test5 = test1 ^ test2; boolean test6 = test1 && test1; boolean test7 = test1 ^ test1; System.out.println("NOT " + test1 + " is " + !test1); System.out.println("NOT " + test2 + " is " + !test2); System.out.println(test1 + " AND " + test2 + " is " + test3); System.out.println(test1 + " OR " + test2 + " is " + test4); System.out.println(test1 + " XOR " + test2 + " is " + test5); System.out.println(test1 + " AND " + test1 + " is " + test6); System.out.println(test1 + " XOR " + test1 + " is " + test7);
} }
OutputNOT true is false
NOT false is true
true AND false is false
true OR false is true
true XOR false is true
true AND true is true
true XOR true is false
16
Characters in Java
A digit, a letter or a symbol Denoted by single quotes in
Java ‘T’, ‘@’, ‘2’
Represented by numbers in computer Char ch = ‘T’;
// ch contains integer 84// ch contains character ‘T’
Escape sequences \ single quote ‘\’’ New line ‘\n’ Tab ‘\t’ Back slash ‘\\’
charnumber
17
Character Operations
Characters are actually integers +, -, ++, --, +=, -= Operations
ASCII number change. Become another character. char ch = ‘a’ + 2; // ch contains number 99
representing ‘c’ ch += 3; // ch contains number 102
representing ‘f’ int dis = ‘g’ – ‘c’; // dis contains 4, no cast required
18
Character OperationsCode Example
public class CharacterOperations { public static void main(String[] args) { char letter; int number; letter = ‘l'; // letter contains ‘l' letter++; // letter contains ‘m' System.out.println("letter = '" + letter + "'"); number = letter; // no cast required System.out.println("number = " + number); letter = ‘h'; number = letter - 'a' + 1; System.out.println("'" + letter + "' is the " + number + "th
letter of the alphabet"); } }
Outputletter = 'm'
number = 109
'h' is the 8th letter of the alphabet
19
Strings in Java
A list of characters Denoted by double quotes
String str = “Computer”;
+, += operators : concatenation String str1 = “Java is”; String str2 = str1 + “ programming language.”; str1 += “ a cup of coffee.”;
Can concatenate variables of other types as text strings int a = 1; int b = 3; int c = a + b;
String str3 = a + “ + “ + b + “ = “ + c;
20
String Class
The String class contains several methods that can be used to perform operations on a string.
Method
Name
Return
Type
Description Usage
compareTo(String t) int Compares two strings string1.compareTo(string2);
length() int Gets length of string string1.length();
charAt(int i) char Finds ith character string1.charAt(3);
equals(String t) Boolean Are two strings equal? string1.equals(string2);
substring(int i, int j) String Finds substring from ith character to character before
jth one
String1.substring(0, 2)
Methods in String Class
String str = “Boiler Up!”; Comparison
int a = str.compareTo(“Purdue”); // a contains a negative number boolean b = str.equals(“Purdue”); // b contains false
length() gives number of characters in the string int l = str.length(); // l contains 10
21
Methods in String Class
String str = “Boiler Up!”; charAt(int i) get the character at position i
char c = charAt(2); // index starts from 0, c contains ‘i’, not ‘o‘
substring(int i, int j) gives the substring from position i and to the position before j String str2 = str.substring(0, 6); // str2 contains “Boiler” String str3 = str.substring(7, str.length()); // str3 contains
“Up!”
22
0 1 2 3 4 5 6 7 8 9
B o i l e r U p !
23
Strings Class Code Example
public class StringOperations { public static void main(String[] args) { String word1; String word2; word1 = “chrome"; word2 = “home"; System.out.println(“Does " + word1 + " = " + word2 + "?"); System.out.println( word1.equals(word2) + "!"); System.out.println("The length of " + word2 + " is: " +
word2.length() ); int position = 3; System.out.println("Position " + position + " in " + word2 + " is '" + word2.charAt(position) + "'"); word1 = "computers are cool"; word2 = word1.substring(3, 8); System.out.println(word2); } }
OutputIs chrome the same as
home?
false!
The length of home is: 4
Position 3 in home is 'e'
puter
Question
If we have
String word1 = “Purdue”;
String word2 = “Purdue”; This statement will return true or false?
word1.equals(word2); What about this one?
word1 == word2;
24
25
Wrapper Classes
Each primitive data type in Java has a wrapper class Integer converts between int String
String int String str = “345”; int a = Integer.parseInt(str);
int String int value = 890; String str = Integer.toString(value);
Double is similar. double String String double: double d = Double.parseDouble(“345.12”); double String : String str = Double.toString(3.14);
26
Wrapper Classes
Character gives information about a particular char Remind from last week:
boolean b = Character.isLowerCase(‘c’); b = Character.isUpperCase(‘c’); b = Character.isLetter(‘c’); b = Character.isDigit(‘c’);
27
Wrapper ClassesCode Example 1
public class Wrappers { public static void main(String[] args) { String number1 = "666"; String number2 = "4.51"; int value1 = Integer.parseInt( number1 ); double value2 = Double.parseDouble( number2 ); System.out.println("The integer is " + value1); System.out.println("The double is " + value2);
} }
What would happen if the parseInt and parseDouble methods were not used? (i.e.: int value1 = number1;)
OutputThe integer is 666
The double is 4.51
28
Wrapper ClassesCode Example 2
public class Wrappers { public static void main(String[] args) { char c = 'U'; char d = '4'; System.out.println(c + " is:"); System.out.println("a letter:\t" + Character.isLetter(c)); System.out.println("a digit:\t" + Character.isDigit(c)); System.out.println("uppercase:\t" +
Character.isUpperCase(c)); System.out.println("lowercase:\t" +
Character.isLowerCase(c)); System.out.println(d + " is:"); System.out.println("a letter:\t" + Character.isLetter(d)); System.out.println("a digit:\t" + Character.isDigit(d)); System.out.println("uppercase:\t" +
Character.isUpperCase(d)); System.out.println("uppercase:\t" +
Character.isLowerCase(d)); } }
OutputU is:
a letter: true
a digit: false
uppercase: true
lowercase: false
4 is:
a letter: false
a digit: true
uppercase: false
uppercase: false
29
Final QUESTIONS???