Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
CSCI 51 Introduction to Computer Science Dr. Joshua Stough January 29, 2009 Announcements • Problem Set 1 due Monday 11:59pm • Submit through Sakai Assignments Assignments Assignments Review • Identifiers – can be composed of any combination of letters, digits, underscore (_), and dollar sign ($) – cannot begin with a digit – Java is case-sensitive • Data Types – main integer type: int – main floating-point type: double – others: char, boolean Review • Arithmetic Operators: addition subtraction multiplication division remainder (mod) • + * / % If one of the operands is floating-point, the result is a floating-point • Casting – – – – (int) (54.9) - truncates the floating-point number (int) (a + .5) - rounds to nearest integer (int) (a + 1) - rounds up to integer (double) (23) - adds a .0 to the integer Review Questions 1. If you go to Best Buy and the salesperson tells you that they have a new Intel® Core™2 Extreme QX6700 (8MB,3.46GHz Factory overclocked) with 4 GB RAM and a 320 GB Performance RAID 0 drive, what does this mean? 2. 3 % 2 3. 4 % 2 4. 5 % 2 1 0 1 CPU: Intel processor with 8 MB L2 cache, running at 3.46 GHz main memory: 4 GB secondary storage: 320 GB Algorithm Design Example Problem: Convert change in cents to number of halfdollars, quarters, dimes, nickels, and pennies to be returned. Example: – given 646 cents – number of half-dollars: divide 646 by 50 • quotient is 12 (number of half-dollars) • remainder is 46 (change left over) – number of quarters: divide 46 by 25 • quotient is 1 (number of quarters) • remainder is 21 (change left over) – number of dimes, nickels, pennies – result: 12 half-dollars, 1 quarter, 2 dimes, 0 nickels, 1 penny Resulting Algorithm 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Get the change in cents Find the number of half-dollars Calculate the remaining change Find the number of quarters Calculate the remaining change Find the number of dimes Calculate the remaining change Find the number of nickels Calculate the remaining change The remaining change is the number of pennies. Review Problem Solving • Steps: – understand the problem • how would you solve the problem (as a human, without a computer) – – – – – dissect the problem into manageable pieces design a solution consider alternatives to the solution and refine it implement the solution test the solution and fix any problems that exist Today - quick reminders from last time. • • • • • Constants Variables Assignment Reading keyboard input String concatenation Today – new stuff • Increment/Decrement (new) • Program Structure – Comments – Main, static, etc. – Import – Pre-defined classes and methods – Style and whitespace Storing Data in Memory 1. Instruct the computer to allocate memory (declaration) • • how much? based on data type how to access? name the memory location 2. Include statements in the program to put data into the allocated memory • • assign a particular value to a particular memory location initialization - putting the first (initial) value into the memory location—the first assignment Types of Storage • Named Constant – once the value is stored in memory, it can't be changed • Variable – the value stored in memory can be changed (can vary) Named Constant static final dataType IDENTIFIER = value; • Declared by using the reserved word final • Always initialized when it is declared • Style: Identifier should be in ALL CAPS, separate words with underscore (_) • Example: – 1 inch is always 2.54 centimeters final double CM_PER_INCH = 2.54; Variable dataType identifier; • Must be declared before it can be used • Can be (but doesn't have to be) initialized when declared • Identifier should start in lowercase, indicate separate words with uppercase • Example: – number of students in class int numStudents; • Multiple variables (of the same data type) can be declared on a single line int numStudents, numGrades, total; Variable • A variable can be given an initial value in the declaration • When a variable is referenced in a program, its current value is used int total = 16; int base = 32, max = 149; 9278 9279 9280 9281 9282 9283 16 total Naming Variables • Variables should be descriptively named • We should be able to tell what type of information the variable holds by its name • Remember Java is case-sensitive! Assignment variable = expresssion; • Assignment Operator (=) • expression can be a value (3) or a mathematical expression (2 + 1), or… • The expression must evaluate to the same data type as the variable was declared Assignment • assignment statement total = 54+1; – changes the value of a variable • Expression on right is evaluated and result is stored in variable on the left • Value that was in total is overwritten 9278 9279 9280 9281 9282 9283 55 16 total Assignment • The assignment operator has a lower precedence than the arithmetic operators First the expression on the right hand side of the = operator is evaluated answer = 4 sum / 4 + MAX * lowest; 2 3 1 Then the result is stored in the variable on the left hand side Assignment • The right and left hand sides of an assignment statement can contain the same variable First, one is added to the original value of count count = count + 1; Then the result is stored back into count (overwriting the original value) Questions What is stored in the memory location referred to by the identifier num after each of the following statements is executed in order? int num num num num num; = 3; = 5 + 4 - 2; = num * 2; = 3.4 + 5; nothing would give an error since 3.4 + 5 would not result in an int 3 7 14 14 Questions 1. Write Java statements to accomplish the following: Declare int variables x and y int x, y; 2. Update the value of an int variable x by adding 5 to it x = x + 5; 3. Declare and initialize an int variable x to 10 and a char variable ch to 'B' 4. int x = 10; char ch = 'B'; Declare int variables to store four integers int num1, num2, num3, num4; The Value of Variables • We can use variables to save the result of expressions for use later in our programs. int sum, count; double average; sum = 3 + 4 + 5; count = 3; average = (double) sum / count; Questions Which of the following are valid Java assignment statements? Assume that i, x, and percent have been declared as double variables and properly initialized. 1. 2. 3. 4. i = i + x + 2 = x = 2.5 percent 5; x; * x; = 10% valid invalid valid invalid Reading Keyboard Input • We can let the user assign values to variables through keyboard input • Java input is accomplished using objects that represent streams of data • A stream is an ordered sequence of bytes • The System.in object represents a standard input stream, which defaults to the keyboard Reading Keyboard Input import java.util.Scanner; ... Scanner scan = new Scanner(System.in); int a = scan.nextInt(); double d = scan.nextDouble(); String s = scan.nextString(); String s = scan.next(); //for a token. String s = scan.nextLine(); String to Numbers • String to int Integer.parseInt(strExpression) Integer.parseInt("6723") 6723 • String to float Float.parseFloat(strExpression) Float.parseFloat("345.76") 345.76 • String to double Double.parseDouble(strExpression) Double.parseDouble("1234.56") 1234.56 Initializing Variables • • • Initialize - give a variable some initial value Must initialize variables before using them (e.g., before they appear on the right-hand side of an assignment statement) Two ways to initialize variables: 1. assignment statement feet = 35; 2. user input create Scanner object scan ask user for input feet = Integer.parseInt (scan.next()); or feet = scan.nextInt(); Questions What is stored in the variables numStudents and line after the following statements have been executed? (Assume that scan is a Scanner object). int numStudents; String line; // user asked for # of students // user enters 140 line = scan.nextLine(); numStudents = Integer.parseInt(line); numStudents nothing nothing nothing 140 line n/a nothing “140” “140” More Operators Increment and Decrement • Increment (++) – adds 1 to any integer or floating point count++; count = count + 1; • Decrement (--) – subtracts 1 from any integer or floating point count--; count = count - 1; Increment and Decrement • Prefix (++count or --count) – value used in a larger expression is the new value of count (after the increment/decrement) • Postfix (count++ or count--) – value used in a larger expression is the original value of count (before the increment/decrement) – increment/decrement is the last operation performed (even after assignment) Increment and Decrement • If count currently contains 45, then the statement total = count++; assigns 45 to total and then 46 to count • If count currently contains 45, then the statement total = ++count; assigns the value 46 to both total and count Questions • What is stored in total and count in the following statements? double total = 15.5; total++; total 16.5 int total = 10, count = 5; total = total + count++; total 15 count 6 int total = 20, count = 3; total = total / --count; total 10 count 2 String Concatenation • A string cannot be split between two lines String greeting = "How are you doing today"; X • Concatenation (+) - produces one string where the second string has been appended to the first string String greeting = “How are you doing” + “ today?”; greeting How are you doing today? String Concatenation • Operator + can be used to concatenate two strings or a string and a numeric value or character • Precedence rules still apply • Example: String str; int num1 = 12, num2 = 26; str = "The sum = " + num1 + num2; str The sum = 1226 Questions What is the result of the following String concatenations? String str1 = "Hello"; String str2 = "World"; String str3 = str1 + " " + str2; str3 Hello World int num1 = 10; int num2 = 2; String str = "The difference is " + (num1 - num2); str The difference is 8 Summary • Constants final datatype IDENTIFIER = value; – cannot be changed • Variables declaration datatype identifier; – can be changed • Assignment identifier = expression; Summary • Assignment – overwrites previous value – can use the variable on both sides of the expression • count = count + 1; • Increment/Decrement – prefix / postfix – count++; – ++count; Summary • Reading Keyboard Input Scanner scan = new Scanner(); int num = scan.nextInt(); • String Concatenation int courseNum = 110; String str = "This is COMP " + courseNum; str This is COMP 110 Take a Breath….And more • Output – printing to the screen • Parts of a Java Program • Reading: Ch 2,3 Review Questions • Assume that a and b are int variables. What is the value of b? a = 3; b = 4 + (++a); 8 • Given the following assignments, What is the value in str? String str; The answer is 1017 str = "The answer is "; str = str + 10 + (13 + 4); Output • Standard output device is usually the monitor • Access the monitor using the standard output object – System.out • Two methods to output a string: 1.print 2.println Using System.out System.out.print (stringExp); System.out.println (stringExp); • print vs. println – after displaying stringExp, println will advance to the next line, while print does not • stringExp – can be any expression where the result is a String, including string concatenation – if stringExp results in a primitive data type, it will automatically be converted to a String and output Examples System.out.println ("Hi"); System.out.println ("There"); Hi There System.out.print ("Hi"); System.out.println ("There"); HiThere int num = 5+3; System.out.println (num); 8 int num = 5; System.out.println ("The sum is " + (num + 3)); The sum is 8 Escape Sequences • Escape character \ • Used to represent special characters inside Strings • Escape sequences – – – – – – – \n - newline \t - tab \b - backspace \r - return \\ - backslash \' - single quote \" - double quote Examples System.out.println ("I said, \"Hi There!\""); I said, "Hi There!" System.out.println ("Hi\b\bHello"); Hello System.out.println ("Hello\rWorld"); Hello World System.out.println ("Hello\tWorld"); Hello World System.out.print ("Hello\n"); System.out.println ("World"); Hello World Questions What is output by the following statements? System.out.println ("Helen says " + "\"What\'s up?\""); Helen says "What's up?" System.out.print ("Enter a number "); System.out.println ("between 1-10"); System.out.print ("\n\tplease!"); Enter a number between 1-10 please! Glossary Terms • Class - used to group a set of related operations (methods), allows users to create their own data types • Method - set of instructions designed to accomplish a specific task • Package - collection of related classes • Library - collection of packages Class Libraries • A collection of classes that we can use when developing programs • The Java standard class library is part of any Java development environment • The System class and the String class are part of the Java standard class library Packages • The classes of Java library are organized into packages. • Some of the packages in the standard class library are: Package Purpose java.lang java.applet java.awt javax.swing java.net java.util javax.xml.parsers General support Creating applets for the web Graphics and graphical user interfaces Additional graphics capabilities and components Network communication Utilities XML document processing Using Packages We need to import some of the packages we want to use – java.util for Scanner – not java.lang because it's automatically imported for us import packageName; – import java.util.*; • imports all of the classes in the java.io package – import java.util.Scanner; • imports only the Scanner class from the java.util package Using Predefined Classes and Methods • long Math::round (double); • To use a method you must know: – Name of class containing method (Math) – Name of package containing class (java.lang) – Name of method (round), its parameters (double a), what it returns (long), and function (rounds a to the nearest integer) Using Predefined Classes and Methods • Example method call: int num = (int) Math.round (4.6); – why don't we have to import the Math class? • (Dot) . Operator: used to access the method in the class Creating a Java Program • Java application program - collection of one or more classes – every application must have at least one class • Class – basic unit of a Java program – collection of methods and data members • Method - set of instructions designed to accomplish a specific task – print, readLine Programming in Java • Java programming language – object-oriented approach to problem solving • In the Java programming language: – a program is made up of one or more classes – a class contains one or more methods – a method contains program statements • A Java application always contains a method called main Creating a Java Program • All Java application programs must have a method called main – there can be only one main method in any Java application program • For most of the semester, our programs will have only one class • Name of source file must be ClassNameWithMain.java Anatomy of a Java Program • Syntax of class public class ClassName { classMembers } • Syntax of main method public static void main (String[] args) throws clause { statement1 ... statementn } Throws Clause • throws clause - exceptions thrown by the main method • exception - occurrence of an undesirable situation that can be detected during program execution – can either be handled or thrown • readLine throws the exception IOException • We won't handle the exception, we'll just throw it Throws • If we're allowing user input to the program, the heading of the main method may look like: public static void main (String[] args) throws IOException Import Statements • Tell the compiler which packages are used in the program • Import statements and program statements constitute the source code • Source code saved in a file with the extension .java • Source code file must have the same name as the class with the main method The main method • Heading public static void main (String[] args) • Body – statements enclosed by { } – declaration statements • used to declare things such as variables – executable statements • perform calculations, manipulate data, create output, accept input, etc. Skeleton import statements if any public class ClassName { declare named constants and/or stream objects public static void main (String[] args) throws IOException { variable declarations executable statements } } static • Heading of the main method has the reserved word static • Statements to declare named constants and input stream objects are outside the main method • These must also be declared with the static reserved word Syntax • Syntax – beware! a syntax error in one place might lead to syntax errors in several other places • Use of semicolons, braces, commas – all Java statements end with semicolon – braces {} enclose the body of a method and cut it off from other parts of the program (also have other uses) – commas separate list items Style • Semantics – set of rules that gives meaning to a language – beware! the compiler will not be able to tell you about semantic errors (example: missing parentheses in mathematical expression) • Documentation – comments - shown in green in Eclipse – naming rules • use meaningful identifiers – prompt lines • let the user know what type of input is expected Style and White Space • White space – – – – blanks, tabs, blank lines used to separate words and symbols extra space is ignored by computer blank line between variable declaration and rest of code • Programs should be formatted to enhance readability, using consistent indentation Comments • Not used by the computer – only for human consumption • Used to help others understand code – explain and show steps in algorithm – comments are essential! • Should be well-written and clear • Comment while coding • Also called inline documentation Java Comments // this is a one-line comment – “comments out” the rest of the line after marker // /* this is a multi-line comment */ – “comments out” everything between markers /* and */ Block-Like Multi-Line Comment • Example Start /*************************************************************** * Program Insert assignment number: Insert assignment name * * Programmer: Insert your name * * Due Date: Insert due date * * Class: CSCI 51 Instructor: Dr. Joshua Stough * Recitation Section: Insert section **************************************************************/ End /**************************************************************** * Program 0: Hello World * * Programmer: Joshua Stough * * Due Date: September 2, 2008 * * Class: COMP 14 Instructor: Dr. Joshua Stough * * * Description: This program prints out a greeting to the world. * * Input: None * comment * Output: A friendly greeting ***************************************************************/ public class HelloWorld { public static void main(String[] args) { System.out.println ("Hello World!"); } method call } main method class declaration Summary • Output System.out.print (stringExp); System.out.println (stringExp); – print vs. println • Comments // this is a one-line comment – “comments out” the rest of the line after // /* this is a multi-line comment */ – “comments out” everything between /* and */ Next Time in CSCI 51 • Objects • Methods • The String class • Graphical User Interface (GUI)’s.