500 likes | 645 Views
COMP 110: Introduction to Programming. Tyler Johnson January 26, 2009 MWF 11:00AM-12:15PM Sitterson 014. Announcements. Lab 0 graded. Questions?. Today in COMP 110. Type Casting More Operators Strings Console I/O. From Last Time. Assignment Compatibilities.
E N D
COMP 110:Introduction to Programming Tyler Johnson January 26, 2009 MWF 11:00AM-12:15PM Sitterson 014
Announcements • Lab 0 graded
Today in COMP 110 • Type Casting • More Operators • Strings • Console I/O
Assignment Compatibilities • You cannot store a value of one type in a variable of another type • int i = 0.1; //this does not compile! • However, some types can be converted into other types • double d = 1; //1 is automatically converted to 1.0
Assignment Compatibilities • byte»short» int » long » float » double • A value of any type in the list can be assigned to a type further down the list • Example • int iVar = 7; • double dVar = iVar; //this is legal
Assignment Compatibilities • In some cases, you may want to override the assignment compatibilities • This can be done using type casting
Type Casting • Syntax • (Type_Name) Expression • Expression is a combination of numbers and variables • Example • double distance = 9.0; • int points = (int)distance; //cast distance to an int //distance is not changed in any way //the value of points will be 9
Type Casting • Type casting is not rounding! • The effect of a type cast is truncation • Any fractional portion is discarded • Just like when you divide two integers • Example • double bill = 25.75; • int dollars = (int)bill ; //cast bill to an int //bill is not changed in any way //the value of dollars will be 25
From Last Time • Operators • Addition (+) • a + b • Subtraction (-) • a - b • Multiplication (*) • a * b • Division (/) • a / b • Remainder or Modulo (%) • a % b
Parentheses and Precedence • Parentheses can be used to indicate the order in which operations should be performed • Example • What is the value of “result”? int a = 3, b = 1, c = 2, result = 0; result = (a + b) * c; result = a + (b * c); result = 8 result = 5
Binary Operators • Binary operators take two operands • An operand is just a number or variable • For example, +,-,*,/ are binary operators • i = a + b; • i = a - b; • i = a * b; • i = a / b;
Unary Operators • Unary operators take a single operand • + and – can also be unary operators • i = -7; • f = +100.2;
+= a += 3; //same as a = a + 3; -= a -= 4; //same as a = a – 4; *= a *= 2; //same as a = a * 2; /= a /= 3; //same as a = a / 3; Specialized Assignment Operators
Increment and DecrementOperators • Increment Operator (++) • count++; //same as • count = count + 1; • Decrement Operator (--) • count--; //same as • count = count – 1;
Increment and Decrement Operators • Can also be used in expressions in either prefix (++m) or postfix (m++) form • Example • n * (m++) • Increases m by 1 after the multiplication • n * (++m) • Increases m by 1 before the multiplication
Increment and Decrement Operators int n = 2; int m = 4; int result = n * (m++); //result = 8, m = 5 result = n * (++m); //result = 12, m = 6
Operator Precedence • Java evaluates expressions in an order specified by precedence rules • Certain operations are performed before others • Example i = 4 + 2 * 3 – 1; // the value of i will be 9
Java Precedence Rules Highest Precedence First: the unary operators +, -, ++, -- Second: the binary operators *, /, % Third: the binary operators +, - Lowest Precedence • Binary operators of equal precedence are evaluated from left to right
Precedence Examples • -3 * 7 % 3 – 4 – 6 • -21 % 3 – 4 – 6 • 0 – 4 – 6 • -10 • 3 * (3 % 2 ) / -2 • 3 * 1 / -2 • 3 / -2 • -1 • NOTE: Truncation of division operator on integers
Constants • Constants or literals are values that don’t change • 2, 6, ‘B’, 5.433e8 • NOTE: 5.433e8 means 5.433 x 108 • Example uses of constants • int i = 2; // i is a variable, 2 is a constant • char l = ‘J’; // l is a variable, ‘J’ is a constant • doubled = 6.1e38; //d is a variable, 6.1e38 is a //constant
Named Constants • A constant that is given a name and can be used much like a variable • Syntax • finalType Variable = Constant; • Examples • finaldouble PI = 3.14159; • final int HOURS_PER_DAY = 24;
Representing Text in Java • How to represent sequences of characters in Java programs such as “Enter a whole number from 1 to 99.” • Java provides the class “String” for this purpose
Strings • String is a class provided by the Java language for representing sequences of characters “Enter a whole number from 1 to 99.”
Strings • Messages like these are called String literals or String constants “Enter a whole number from 1 to 99.” “What is your name?” “I will add two numbers for you.” • They have the type “String”
Strings • We can declare Strings in Java programs • Example String greeting; greeting = “Hello!”; System.out.println(greeting); //prints Hello! to screen System.out.println(“Hello!”); //also prints Hello! to //screen
String Indices • Strings consist of a sequence of characters • Each character has a position in the String Characters Positions
String Concatenation • We can concatenate two Strings together using the (+) operator • Example String name = “Bob”; String greeting = “Hi ” + name; System.out.println(greeting); //prints “Hi Bob” to the screen
String Concatenation • We can also concatenate Strings with other data types System.out.println("I am " + 21 + " years old!"); //prints “I am 21 years old!” to screen
Strings as a Class • String is a class type, not a primitive type • Class types have both data and methods (actions)
String Length • The “length()” method of the String class returns the # of characters in the String String myString = “Hi there!”; int len = myString.length(); Class Object 9 Method
Strings • All objects of the same class have the same methods, but may have different data • Example String s1 = “First!”; String s2 = “Second!”; s1.length() returns 6 s2.length() returns 7
String Methods • string.indexOf(A_String) • Returns the index of the first occurrence of A_String in string • Example String phrase = “UNC is Great”; int ind = phrase.indexOf(“Great”);
String Methods • string.substring(Start) • Returns a new string having the same characters as the substring of string beginning at index Startthrough the end ofstring • Example • String phrase = “UNC is Great”; • String sub = phrase.substring(2);
String Methods • Other methods of the String class include • string.charAt(index) • Returns the character at index in string • string.toLowerCase() • Returns a new String with the same characters as string, but with any uppercase characters changed to lowercase • string.equals(A_String) • Returns true if string and A_String are the same, otherwise returns false • See Textbook pg 78 for full listing
Quotations Marks in Strings • Problem • Quotation marks in Java indicate the beginning and end of a String literal String phrase = “Enter a whole number from 1 to 99.”; • How to put quotation marks into Strings?
Quotation Marks in Strings • Example • We’d like to print the message This class is so "fun" • But we cannot use System.out.println("This class is so "fun""); because the Java compiler sees it as System.out.println("This class is so "fun"");
Quotation Marks in Strings • The way to do this in Java is with the escape character '\' • We can use the sequence \" inside a string to indicate a quotation mark • Example System.out.println("This class is so \"fun\""); • will print to screen This class is so "fun"
Backslashes in Strings • If backslash '\' is the escape character, how can I put backslashes into Strings? • Use the sequence \\ for this • Example System.out.println("This is a backslash \\"); • will print to screen This is a backslash \
New Line Sequence • The sequence \n starts a new line of text • Example System.out.println("Line 1\nLine 2"); • will print to screen Line 1 Line 2
String Exercise • What is the output? • System.out.println("abc\ndef"); abc def • System.out.println("abc\\ndef"); abc\ndef
Testing & Debugging • It’s easy to make mistakes when programming • These mistakes are called bugs • The process of eliminating mistakes in a program is called debugging
Programming Errors • Syntax Error – Failure to follow the rules of the language • E.g. missing semi-colon • Run-time Error – An error that causes the program to halt and produce an error message • E.g. Program crashes • Logic Error – When a program fails to produce the correct result • E.g accidentally using addition when you meant to use subtraction • Hardest to locate!
Programming Demo • Fahrenheit to Celsius Converter • Problem • Given a temperature in degrees Fahrenheit, convert to a temperature in degree Celsius
Programming Demo • Fahrenheit to Celsius • Steps • Pseudocode • Programming • Testing/Debugging
The Algorithm • Comes directly from the formula for conversion tempC = (5/9)(tempF – 32)
Fahrenheit to Celsius • Pseudocode • Ask user for temp in Fahrenheit • Convert temp in Fahrenheit to temp in Celsius • Output the result
Wednesday • Documentation and Style • Introduction to Branching