Presentation is loading. Please wait.

Presentation is loading. Please wait.

COMP 110: Introduction to Programming Tyler Johnson January 28, 2009 MWF 11:00AM-12:15PM Sitterson 014.

Similar presentations


Presentation on theme: "COMP 110: Introduction to Programming Tyler Johnson January 28, 2009 MWF 11:00AM-12:15PM Sitterson 014."— Presentation transcript:

1 COMP 110: Introduction to Programming Tyler Johnson January 28, 2009 MWF 11:00AM-12:15PM Sitterson 014

2 COMP 110: Spring 20092 Announcements Lab 1 due tomorrow by midnight TA Office Hours (SN 043) Nick Dragan - Tues/Thurs 2-3pm ndragan@email.unc.edu Georgi Tsankov – Tues 4-6pm gtsankov@cs.unc.edu

3 COMP 110: Spring 20093 Questions?

4 COMP 110: Spring 20094 Today in COMP 110 Documentation and Style Branching

5 COMP 110: Spring 20095 Documentation & Style The programs you write should be correct They should also be easy to read and understand

6 COMP 110: Spring 20096 Variable Names Part of creating good programs is choosing meaningful variable names If a variable stores a count, call it count, if a variable represents a cost, call it cost

7 COMP 110: Spring 20097 Variable Names Variables are typically named using only numbers and digits int count; int grade1, grade2; Underscores are generally avoided in variable names

8 COMP 110: Spring 20098 Capitalization in Variable Names Variable and object names are generally written in lower case double cost, ratio; Names consisting of multiple words should use capital letters at word boundaries int numberOfTries; double costOfLiving;

9 COMP 110: Spring 20099 Capitalization in Class Names Class names generally have the first letter capitalized Scanner, String

10 COMP 110: Spring 200910 Naming Examples String sentence; Scanner keyboard; String personalGreeting; YourClass yourObject;

11 COMP 110: Spring 200911 Comments The best programs are self- documenting It should be obvious what the program does just by reading the program itself

12 COMP 110: Spring 200912 Comments Choosing meaningful variables names is sometime not enough Comments allow the programmer to leave notes in the code to aid in understanding

13 COMP 110: Spring 200913 Comments in Java Two Types Single-line comment Begins with // int i; //this is a single-line comment, write whatever you want Multi-line comment Everything within /* */ public class Program { /* This is a multi-line comment. The compiler will completely ignore this text */ public static void main(String[] args) {

14 COMP 110: Spring 200914 Comments Using a program header is a great way to give basic information about a program Author Description of the program Inputs Outputs

15 COMP 110: Spring 200915 Comments You should use comments to explain any non-obvious details in your programs double radius; //in inches double area; //in square inches

16 COMP 110: Spring 200916 Indentation Programs have a nested structure Your indentation should reflect this import java.util.Scanner; public class FirstProgram { public static void main(String[] args) { System.out.println("Hello out there."); System.out.println("I will add two numbers for you."); System.out.println("Enter two whole numbers on a line:"); int n1, n2; Scanner keyboard = new Scanner(System.in); n1 = keyboard.nextInt(); n2 = keyboard.nextInt(); System.out.println("The sum of those two numbers is"); System.out.println(n1 + n2); } }

17 COMP 110: Spring 200917 Placement of Braces Some prefer public class FirstProgram { … } Others prefer public class FirstProgram { … } It doesnt matter what you choose, just be consistent

18 COMP 110: Spring 200918 Using Named Constants You should always give a name to constants such as PI It may not be obvious to the reader where such a number comes from final double PI = 3.14159; area = PI * radius * radius; //is much clearer than area = 3.14159 * radius * radius;

19 COMP 110: Spring 200919 Naming Constants The style for naming constants if different than for variables Typically use all caps with underscores separating words final int DAYS_PER_WEEK = 7; final double MASS_OF_EARTH = 5.9742e24; //kg final float INTEREST_RATE = 5.55;

20 COMP 110: Spring 200920 Branching Sometimes, it is necessary to make decisions in programs Example The remainder operator can be used to determine if a number n is even or odd If n%2 equals 0, n is even If n%2 equals 1, n is odd

21 COMP 110: Spring 200921 Branching int result = n % 2; Evaluate result is 0? Execute Print n is even Execute Print n is odd true false

22 COMP 110: Spring 200922 If-Else Statement An if-else statement allows us to make decisions in a program int result = n % 2; if(result == 0) System.out.println(That number is even!); else System.out.println(That number is odd!);

23 COMP 110: Spring 200923 If-Else Example int n = 2 int result = n % 2; if(result == 0) System.out.println(That number is even!); else System.out.println(That number is odd!); System.out.println(Finished!); result = 0

24 COMP 110: Spring 200924 If-Else Example int n = 3 int result = n % 2; if(result == 0) System.out.println(That number is even!); else System.out.println(That number is odd!); System.out.println(Finished!); result = 1

25 COMP 110: Spring 200925 Boolean Expressions (result == 0) is a boolean expression Boolean expressions evaluate to either true or false Examples 10 > 5, (true) 4 > 6, (false) Integers are whole numbers, (true)

26 COMP 110: Spring 200926 Java Comparison Operators Math Java Name ===Equal to !=Not equal to >>Greater than >=Greater than or equal to <<Less than <=Less than or equal to

27 COMP 110: Spring 200927 If-Else Statement Syntax Syntax if(Boolean_Expression) Statement_1 else Statement_2 If Boolean_Expression is true, Statement_1 is executed; otherwise Statement_2 is executed

28 COMP 110: Spring 200928 Compound Statements Multiple statements can be included in each branch Called a compound statement Enclose between {…} if(Boolean_Expression) { Statements_1 } else { Statements_2 }

29 COMP 110: Spring 200929 If without Else Syntax if(Boolean_Expression) Statement_1 Example if(accntBalance < 0) //subtract a fee for overdrafts accntBalance = accntBalance – FEE;

30 COMP 110: Spring 200930 Common Comparison Mistakes Dont confuse the assignment operator (=) with the comparison operator (==)! if(x == y) //valid if(x = y) //syntax error

31 COMP 110: Spring 200931 Common Comparison Mistakes Dont use a semi-colon here if(x == y) ; //syntax error System.out.println(x equals y);

32 COMP 110: Spring 200932 Common Comparison Mistakes Dont use == to compare Strings Use string.equals(A_String) or string.equalsIgnoreCase(A_String) Example String s1 = keyboard.next(); //read in a string if(s1.equals(Hello)) System.out.println(The String is Hello.); else System.out.println(The String is not Hello.);

33 COMP 110: Spring 200933 The && Operator (AND) We can check for multiple conditions using the && (AND) operator Meaning is similar to that of English and if (temperature > 50 && temperature < 75) { // walk to school if 50 < temperature < 75 } else { //otherwise drive to school }

34 COMP 110: Spring 200934 The || Operator (OR) We can also join boolean expression with || (OR) Meaning is similar to that of English or boolean raining, runningLate; … if (raining || runningLate) { //drive to school }

35 COMP 110: Spring 200935 The ! Operator (NOT) Boolean negation !false is true !true is false Example boolean cloudy; … if (!cloudy) { // walk to school if its not cloudy }

36 COMP 110: Spring 200936 Effect of Boolean Operators ABA && BA || B!A true false truefalse truefalse truefalsetrue false true

37 COMP 110: Spring 200937 Boolean Expression Examples Using x = 5, y = 10, z = 15 (x x) (false && true) -> false (x x) (true || true) -> true (x > 3 || z != 15) (true || false) -> true (!(x > 3) && x + y == z) (false && true) -> false

38 COMP 110: Spring 200938 Avoiding the Negation Op !(A !(A > B) --> !(A >= B) --> !(A == B) --> !(A != B) --> (A >= B) (A > B) (A <= B) (A < B) (A != B) (A == B) Its best to avoid use of the negation operator (!) when possible

39 COMP 110: Spring 200939 Nested If-Statements Its possible to have if statements inside other if statements if(Boolean_Expression_1) { if(BooleanExpression_2) { … }

40 COMP 110: Spring 200940 Nested If Statements Example We want to perform some checks on the users account balance If the balance is >= 0, well add interest only if the interest rate is >= 0, and print an error message if interest rate is < 0. If the balance is < 0, well subtract a fee.

41 COMP 110: Spring 200941 Nested If Statements Evaluate balance >= 0 Evaluate INTEREST_RATE >= 0 Execute balance -= FEE truefalse Execute balance = balance + balance*INTEREST_RATE Execute Print Error Message a truefalse

42 COMP 110: Spring 200942 Nested If Statements if(balance >= 0) { if(INTEREST_RATE >= 0) balance = balance + INTEREST_RATE*balance; else System.out.println(Negative Interest!); } else balance = balance – FEE;

43 COMP 110: Spring 200943 Nested If Statements What if we didnt need to print the error message? if(balance >= 0 && INTEREST_RATE >= 0) balance = balance + INTEREST_RATE*balance; else balance = balance – FEE;

44 COMP 110: Spring 200944 Multi-Branch If Statements What if we need to decide between many possibilities? Example Given a numeric score (0..100) determine whether the grade is an A,B,C,D, or F

45 COMP 110: Spring 200945 Multi-Branch If Statements A if: score >= 90 B if: 90 > score >= 80 C if: 80 > score >= 70 D if: 70 > score >= 60 F in all other cases

46 COMP 110: Spring 200946 Multi-Branch If Statements We could write this as follows if(score >=90) grade = A; else if(score >=80) grade = B; else if(score >=70) grade = C; else if(score >=60) grade = D; else grade = F;

47 COMP 110: Spring 200947 Multi-Branch If Statements The preferred way to write this is if(score >=90) grade = A; else if(score >=80) grade = B; else if(score >=70) grade = C; else if(score >=60) grade = D; else grade = F;

48 COMP 110: Spring 200948 Multi-Branch If Statement Syntax if(Boolean_Expression_1) Action_1 else if(Boolean_Expression_2) Action_2 … else if(Boolean_Expression_n) Action_n else Default_Action

49 COMP 110: Spring 200949 Programming Demo Write a program to read in three distinct nonnegative integers from the keyboard and display them in increasing order

50 COMP 110: Spring 200950 Programming Demo Call the three numbers a,b,c Designing the algorithm Determine which of a,b,c is the smallest If its not a, is it b? If its not a or b, must be c Determine which of the two remaining integers is smaller than the other

51 COMP 110: Spring 200951 Programming Demo Evaluate a is smallest? true false a < b < ca < c < b Evaluate b < c true false b < a < cb < c < a Evaluate a < c true false c < a < bc < b < a Evaluate a < b true false Evaluate b is smallest? truefalse

52 COMP 110: Spring 200952 Programming Demo Pseudocode Ask user for three integers, a,b,c Determine which of a,b,c is the smallest Determine which of the remaining two is smaller Print a,b,c in ascending order

53 COMP 110: Spring 200953 Friday Recitation Bring Laptop (fully charged) Textbook Any questions about Program 1


Download ppt "COMP 110: Introduction to Programming Tyler Johnson January 28, 2009 MWF 11:00AM-12:15PM Sitterson 014."

Similar presentations


Ads by Google