Presentation is loading. Please wait.

Presentation is loading. Please wait.

CS 180 Problem Solving and Object Oriented Programming Spring 2011 February 16, 2011 Aditya Mathur Department of Computer Science Purdue University West.

Similar presentations


Presentation on theme: "CS 180 Problem Solving and Object Oriented Programming Spring 2011 February 16, 2011 Aditya Mathur Department of Computer Science Purdue University West."— Presentation transcript:

1 CS 180 Problem Solving and Object Oriented Programming Spring 2011 February 16, 2011 Aditya Mathur Department of Computer Science Purdue University West Lafayette, IN, USA http://www.cs.purdue.edu/homes/apm/courses/CS180Fall2010/ 1.Quiz 2.Review 3.Straight line vs. “wiggly” programs 4.if-then-else 5.Conditions 6.Loops Today:

2 Readings and Exercises Readings: Chapter 3: 3.1, 3.2, 3.3, 4.1-4.4 Exercises: 3.1, 3.2, 3.3, 3.4, 4.2, (4.5 or 4.6) 2/16/2011©Aditya Mathur. CS 180. Spring 20112

3 Quiz: 2/16/2011 2/16/2011©Aditya Mathur. CS 180. Spring 20113

4 Q1. If double tax=Math.pow(3,2); then the value of tax is (a)9 (integer) (b)9.0 (double) (c)3 (integer) 2/16/2011©Aditya Mathur. CS 180. Spring 20114

5 Q2. In the statement Random gen=new Random(); gen denotes (a)a variable of type Random (b)an object of type Random (c)a random number 2/16/2011©Aditya Mathur. CS 180. Spring 20115

6 Q3. In the statement Color c= myRose.getColor(); getColor (a)denotes an object (b)is the name of a method (c)is the name of a variable 2/16/2011©Aditya Mathur. CS 180. Spring 20116

7 Q4. In the statement Color c= myRose.getColor(); myRose (a)denotes an object (b)is the name of a method (c)is the name of a variable 2/16/2011©Aditya Mathur. CS 180. Spring 20117

8 Q5. In the statement double tax= computeTax(salary, taxRate); method computeTax (a)has one parameter (b)has two parameters (c)has no parameters 2/16/2011©Aditya Mathur. CS 180. Spring 20118

9 Q6. Suppose z=0 and the following is executed int x=y/z; then which of the following is true? (a)Value of x will be infinity (b)Value of x will be 0 (c)A divide by zero exception will be generated 2/16/2011©Aditya Mathur. CS 180. Spring 20119

10 Q7. Suppose z=0, and y and z are of type double, and the following is executed double x=y/z; then which of the following is true? (a)Value of x will be infinity (b)Value of x will be 0 (c)A divide by zero exception will be generated 2/16/2011©Aditya Mathur. CS 180. Spring 201110

11 Q8. Suppose r is a random number between 0 and 1 [inclusive]. Which formula is correct to scale r to a number between 5 and 12? (a) r +5 (b) r *5+12 (c) r *7+5 (d) r *5+7 2/16/2011©Aditya Mathur. CS 180. Spring 201111

12 End of Quiz: 2/16/2011 2/16/2011©Aditya Mathur. CS 180. Spring 201112

13 Review 2/16/2011©Aditya Mathur. CS 180. Spring 201113

14 1.What is a class and how is it defined? 2.What is an object? 3.How to generate an object from a class? 4.What is a primitive type? 5.What is a declaration? 6.What is a variable? 7.What is an assignment statement? 8.What is overflow and when does it occur? 9.When do we get the special numbers “infinity” and “NaN”? 10.How to read from console? 11.How to write onto console? 12.What is algorithmic thinking? 13.Where lies the challenge in programming? 2/16/2011©Aditya Mathur. CS 180. Spring 201114

15 Conditional execution 2/16/2011©Aditya Mathur. CS 180. Spring 201115

16 Straight line program: Single path of execution 2/16/2011 A program that has exactly one path that is traversed when the program is executed. Start Execute a statement End.. Single fixed path ©Aditya Mathur. CS 180. Spring 201116

17 Program: Multiple paths of execution 2/16/2011 Start Execute a statement Execute statements Execute a statement End.. condition Execute statements true false true path false path ©Aditya Mathur. CS 180. Spring 201117

18 Example: Obama Tax Plan [No longer valid]: The problem 2/16/2011 Given the net income, compute tax to be paid. ©Aditya Mathur. CS 180. Spring 201118

19 Example: Obama Tax Plan: Algorithm (Graphical) 2/16/2011 Start Get net income Use tax rate=0.30 Compute tax End.. income<250000 Use tax rate=0.20 true false true path false path ©Aditya Mathur. CS 180. Spring 201119

20 Example: Obama Tax Plan: Algorithm (Textual) 2/16/2011 Get net income. if net income < 250000 then tax rate=0.2; else tax rate=0.3; Tax to be paid=tax rate*net income; ©Aditya Mathur. CS 180. Spring 201120

21 Example: Traffic Light: The problem 2/16/2011 Given the current state of a traffic light, find its new state when it is time to change. ©Aditya Mathur. CS 180. Spring 201121

22 Example: Traffic Light: Algorithm (Textual) 2/16/2011 Get current state of the traffic light. if current state is Red then set next state to Green; else if current state is Green then set next state to Orange; else Set next state to Red; ©Aditya Mathur. CS 180. Spring 201122

23 Example: Traffic light: Algorithm (Graphical) 2/16/2011 Start Get current state of the traffic light End Next state=Orange true false state is Green? state is Red? Next state=Green Next state=Red How many execution paths? truefalse ©Aditya Mathur. CS 180. Spring 201123

24 Example: Patient Care: The problem 2/16/2011 Administer medicine to a patient if it is time to do so. ©Aditya Mathur. CS 180. Spring 201124

25 Example: Patient Care: Algorithm (Textual) 2/16/2011 Get current time. if current time>= time to give medicine then give medicine to the patient else do something else; Get time when the patient is to be given medicine. ©Aditya Mathur. CS 180. Spring 201125

26 Example: Patient care: Algorithm [Graphical] 2/16/2011 Start Get current time of the day Do something else End Time to administer medicine? Give medicine true false true path false path ©Aditya Mathur. CS 180. Spring 201126

27 Example: DJ: The problem 2/16/2011 Play music given the genre of user’s choice (R&B or classical). ©Aditya Mathur. CS 180. Spring 201127

28 Example: DJ: Algorithm (Textual) 2/16/2011 Get genre requested. if requested genre is R&B then play Byoncè’s “Put a ring on it” else if requested genre is classical then play Mozart’s “Eine Kleine Nacht Music” else Say “sorry I do not have the right music for you.” ©Aditya Mathur. CS 180. Spring 201128

29 Example: DJ: Algorithm (Graphical) 2/16/2011 Start Get request End Play Mozart true false Classical R&B? Play Byoncè Apologize How many execution paths? truefalse ©Aditya Mathur. CS 180. Spring 201129

30 Conditional execution in Java: Obama tax Plan 2/16/2011 Get net income. if net income < 250000 then tax rate=0.2; else tax rate=0.3; Tax to be paid= tax rate*net income; double netIncome=source.getDouble(); double taxRate, taxPaid; if (netIncome < 250000) { taxRate=0.2; } else { taxRate=0.3; } taxPaid=taxRate*netIncome; ©Aditya Mathur. CS 180. Spring 201130

31 Conditional execution in Java: Traffic Light 2/16/2011 Get current state of the traffic light. if current state is Red then set next state to Green; else if current State is Green then set next state to Orange; else Set next state to Red; String lightStatus=source.next(); if (lightStatus.equals(“Red”)) { lightStatus=“Green”; } else { if (lightStatus.equals(“Green”)) { lightStatus=“Orange”; }else{ lightStatus=“Red”; } ©Aditya Mathur. CS 180. Spring 201131

32 Conditions 2/16/2011©Aditya Mathur. CS 180. Spring 201132

33 Conditions: Simple 2/16/2011 An expression that evaluates to true or false. int x, y, z ; boolean b; true False x<y x>y+z Math.pow(x,3)>=y z*z-x==y x+3<=y !b Examples : ©Aditya Mathur. CS 180. Spring 201133

34 Conditions: Compound 2/16/2011 int x, y, z; boolean b; String s1, s2; x<y &&y==z (x>y+z) || (s1.equals(s2)) Math.pow(x,3)>=y && !(s1.equals(s2)) (z*(z-x))!=y (x+3)<=y && b !b || y==0 Examples : An expression that contains two or more simple conditions and evaluates to true or false. ©Aditya Mathur. CS 180. Spring 201134

35 Conditions: Dangerous! But survived 2/16/2011 int x, y, p; if (x=y){ p=1; }else { p=2; } if (x==y){ p=1; }else { p=2; } DesiredActual Compiler error! Not a problem, the program will not execute. ©Aditya Mathur. CS 180. Spring 201135

36 Conditions: Dangerous! May not survive 2/16/2011 int x, y, p; boolean door1Open=true, door2Open=false; if (door1Open=door2Open){ p=1; }else { p=2; } if (door1Open==door2Open){ p=1; }else { p=2; } DesiredActual No compiler error! Program will execute. What is the value of p? As expected? Then what is the problem? ©Aditya Mathur. CS 180. Spring 201136

37 Quiz: 2/16/2011 2/16/2011©Aditya Mathur. CS 180. Spring 201137

38 Q1. Value of x after executing the following ? (a) 2 (b) 1 (c) 3 2/16/2011 if (true) { x=1; }else{ x=2; } ©Aditya Mathur. CS 180. Spring 201138

39 Q2. Value of z after executing the following? (a) 11 (b) 7 (c) 16 2/16/2011 int x=10, y=15, z=7; if (x+1==y || z>=0) { z=x+1; }else{ z=y+1; }; ©Aditya Mathur. CS 180. Spring 201139

40 Q3. Value of z after executing the following? (a) 11 (b) 7 (c) 16 2/16/2011 int x=10, y=15, z=7; if (x+1==y && z>=0) { z=x+1; }else{ z=y+1; }; ©Aditya Mathur. CS 180. Spring 201140

41 Q4. Value of z after executing the following? (a) 11 (b) 16 (c) None of the above 2/16/2011 int x=10, y=15; int z; if ((x+1==y) && y==15) { int z=x+1; }else{ int z=y+1; }; ©Aditya Mathur. CS 180. Spring 201141

42 Q5. Value of x after executing the following? (a) 11 (b) 16 (c) None of the above 2/16/2011 int x=10, y=15; if ((x+1==y) && y==15) { int z=x+1; }else{ int z=y+1; }; x=z; ©Aditya Mathur. CS 180. Spring 201142

43 Q6. Value of x after executing the following? (a) 19 (b) 20 (c) None of the above 2/16/2011 int x=10, y=15; if ((x+1==y) && y==15) { int z=x+1; }else{ int z=y+1; }; int z=9; x=x+z; ©Aditya Mathur. CS 180. Spring 201143

44 Loops 2/16/2011©Aditya Mathur. CS 180. Spring 201144

45 Problem 2/16/2011 Monitor the pulse rate of a patient every 5 seconds. If the pulse rate is between 60 and 100 then display “Normal”. If the rate is below 60, then display “Low”. If the rate is above 100 then display “High”. ©Aditya Mathur. CS 180. Spring 201145

46 Algorithm (Graphical) 2/16/2011 Start if (c) Display “Low” Yes No pR<60 pR in range Display “Normal” Display “High” truefalse Get pulse rate (pR) true false End Range: 60-100 What should be c? Wait for 5 seconds” ©Aditya Mathur. CS 180. Spring 201146

47 Algorithm [Textual] 2/16/2011 do forever { get pulse rate; if the pulse rate is between 60 and 100 then Display “Normal”; else if the pulse rate is<60 then Display “Low”; else Display “High”; Wait for 5 seconds; } ©Aditya Mathur. CS 180. Spring 201147

48 Problem 2/16/2011 We are given yearly rainfall data for a region. Write a program to compute the average rainfall in that region. Understand the problem: 1.In what form is the data available? Integer? Float? Input via console? 2.How much data? ©Aditya Mathur. CS 180. Spring 201148

49 Algorithm [Textual] 2/16/2011 Initialize total rainfall to 0; Initialize count to 0; Get next rainfall data item; let us denote it by r. while (r>=0){ Add r to total rainfall; Add 1 to count; Get next rainfall data item; } average rainfall=total rainfall/count; // Is there a problem here? ©Aditya Mathur. CS 180. Spring 201149

50 Algorithm (Graphical) 2/16/2011 Start r>=0 average=total rainfall/count; Initialize total rainfall to 0; Initialize count to 0; true End Get rainfall data item; denote it by r. Add r to total rainfall; Add 1 to count; Get rainfall data item Display average false Any problem here? ©Aditya Mathur. CS 180. Spring 201150

51 Loops in Java 2/16/2011 Start condition statements Initialization true statements false End initialization statements; while (condition){ statements; } statements; ©Aditya Mathur. CS 180. Spring 201151

52 Conditional Execution in Java: Live demo 2/16/2011©Aditya Mathur. CS 180. Spring 201152

53 2/16/2011 Java program for pulse rate monitoring and display. Live demo. ©Aditya Mathur. CS 180. Spring 201153

54 Hope you enjoyed this class! Questions? 2/16/2011©Aditya Mathur. CS 180. Spring 201154


Download ppt "CS 180 Problem Solving and Object Oriented Programming Spring 2011 February 16, 2011 Aditya Mathur Department of Computer Science Purdue University West."

Similar presentations


Ads by Google