Presentation is loading. Please wait.

Presentation is loading. Please wait.

CS 180 Problem Solving and Object Oriented Programming Fall 2010 Notes for Week 5: September 20-24, 2010 Aditya Mathur Department of Computer Science Purdue.

Similar presentations


Presentation on theme: "CS 180 Problem Solving and Object Oriented Programming Fall 2010 Notes for Week 5: September 20-24, 2010 Aditya Mathur Department of Computer Science Purdue."— Presentation transcript:

1 CS 180 Problem Solving and Object Oriented Programming Fall 2010 Notes for Week 5: September 20-24, 2010 Aditya Mathur Department of Computer Science Purdue University West Lafayette, IN, USA http://www.cs.purdue.edu/homes/apm/courses/CS180Fall2010/ 1.Feedback for Week 4 2.Quiz 3.Review 4.Straight line vs. “wiggly” programs 5.if-then-else 6.Conditions 7.Loops 9/20 9/22 This Week:

2 Readings and Exercises for Week 5 Readings: Chapter 3: 3.1, 3.2, 3.3 [Exclude switch statement] Exercises: 3.1, 3.2, 3.3, 3.4 9/22/2010©Aditya Mathur. CS 180. Fall 2010. Week 52

3 Special help session Sunday September 26: 2-4pm LWSN B158 9/22/2010©Aditya Mathur. CS 180. Fall 2010. Week 53

4 Announcements 1.Project 1 due on Friday September 24. 1.If you wish to participate in the programming competition send mail to ndcao@purdue.edu with the following information: Your name [leader] and a list of team members with their email addresses; team size must be 3 or 4. A brief description of what application does your team plan to develop. Your app will be for a smart phone or a robot 9/22/2010©Aditya Mathur. CS 180. Fall 2010. Week 54

5 Announcements 3.If you cannot see me during my regular office hours then send me email and we can arrange to meet at another mutually convenient time. 4.Work hard! Read Chapters 1, 2, and 3 of the textbook. Solve as many exercises at the end of each chapter. 9/22/2010©Aditya Mathur. CS 180. Fall 2010. Week 55

6 Feedback for Week 4 9/22/2010©Aditya Mathur. CS 180. Fall 2010. Week 56

7 Q1. The lab exercises were useful (Use scale of 1-10: 10 most useful, 1 not useful at all) (a)8-10 (b)4-7 (c)1-3 (d)Missed Week 4 lab 9/22/2010©Aditya Mathur. CS 180. Fall 2010. Week 57

8 Q2. The recitation exercises were useful (Use scale of 1-10: 10 most useful, 1 not useful at all) (a)8-10 (b)4-7 (c)1-3 (d)Missed 4 recitation 9/22/2010©Aditya Mathur. CS 180. Fall 2010. Week 58

9 Q3. The recitation instructor was helpful. (Use scale of 1-10: 10 most helpful, 1 not helpful at all) (a)8-10 (b)4-7 (c)1-3 (d)Missed week 4 recitation 9/22/2010©Aditya Mathur. CS 180. Fall 2010. Week 59

10 Q4. I am confident that I will be able to complete and turnin project 1 prior to the September 24 deadline. (a)Yes, I am confident. (b)No, I am not confident. 9/22/2010©Aditya Mathur. CS 180. Fall 2010. Week 510

11 Q5. I understand the meaning of overflow in an arithmetic expression. (a)Yes (b)No 9/22/2010©Aditya Mathur. CS 180. Fall 2010. Week 511

12 Q6. I understand what is type mismatch. (a)Yes (b)No 9/22/2010©Aditya Mathur. CS 180. Fall 2010. Week 512

13 Q7. So far I am liking the course (10 liking a lot, 1 not liking at all). (a)8-10 (b)4-7 (c)1-3 9/22/2010©Aditya Mathur. CS 180. Fall 2010. Week 513

14 Quiz: 9/20/2010 9/22/2010©Aditya Mathur. CS 180. Fall 2010. Week 514

15 Q1. If double tax=Math.pow(3,2); then the value of tax is (a)9 (integer) (b)9.0 (double) (c)3 (integer) 9/22/2010©Aditya Mathur. CS 180. Fall 2010. Week 515

16 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 9/22/2010©Aditya Mathur. CS 180. Fall 2010. Week 516

17 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 9/22/2010©Aditya Mathur. CS 180. Fall 2010. Week 517

18 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 9/22/2010©Aditya Mathur. CS 180. Fall 2010. Week 518

19 Q5. In the statement double tax= computeTax(salary, taxRate); method computeTax (a)has one parameter (b)has two parameters (c)has no parameters 9/22/2010©Aditya Mathur. CS 180. Fall 2010. Week 519

20 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 9/22/2010©Aditya Mathur. CS 180. Fall 2010. Week 520

21 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 9/22/2010©Aditya Mathur. CS 180. Fall 2010. Week 521

22 Q8. Suppose r is a random number between 0 and 1. 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 9/22/2010©Aditya Mathur. CS 180. Fall 2010. Week 522

23 End of Quiz: 9/20/2010 Any project related questions? 9/22/2010©Aditya Mathur. CS 180. Fall 2010. Week 523

24 Review: First four weeks 9/22/2010©Aditya Mathur. CS 180. Fall 2010. Week 524

25 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? 9/22/2010©Aditya Mathur. CS 180. Fall 2010. Week 525

26 Conditional execution 9/22/2010©Aditya Mathur. CS 180. Fall 2010. Week 526

27 Straight line program: Single path of execution 9/22/2010 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. Fall 2010. Week 527

28 Program: Multiple paths of execution 9/22/2010 Start Execute a statement Execute statements Execute a statement End.. condition Execute statements true false true path false path ©Aditya Mathur. CS 180. Fall 2010. Week 528

29 Example: Obama Tax Plan: The problem 9/22/2010 Given the net income, compute tax to be paid. ©Aditya Mathur. CS 180. Fall 2010. Week 529

30 Example: Obama Tax Plan: Algorithm (Graphical) 9/22/2010 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. Fall 2010. Week 530

31 Example: Obama Tax Plan: Algorithm (Textual) 9/22/2010 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. Fall 2010. Week 531

32 Example: Traffic Light: The problem 9/22/2010 Given the current state of a traffic light, find its new state when it is time to change. ©Aditya Mathur. CS 180. Fall 2010. Week 532

33 Example: Traffic Light: Algorithm (Textual) 9/22/2010 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. Fall 2010. Week 533

34 Example: Traffic light: Algorithm (Graphical) 9/22/2010 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. Fall 2010. Week 534

35 Example: Patient Care: The problem 9/22/2010 Administer medicine to a patient if it is time to do so. ©Aditya Mathur. CS 180. Fall 2010. Week 535

36 Example: Patient Care: Algorithm (Textual) 9/22/2010 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. Fall 2010. Week 536

37 Example: Patient care: Algorithm [Graphical] 9/22/2010 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. Fall 2010. Week 537

38 Example: DJ: The problem 9/22/2010 Play music given the genre of user’s choice (R&B or classical). ©Aditya Mathur. CS 180. Fall 2010. Week 538

39 Example: DJ: Algorithm (Textual) 9/22/2010 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. Fall 2010. Week 539

40 Example: DJ: Algorithm (Graphical) 9/22/2010 Start Get request End Play Mozart true false Classical R&B? Play Byoncè Apologize How many execution paths? truefalse ©Aditya Mathur. CS 180. Fall 2010. Week 540

41 Conditional execution in Java: Obama tax Plan 9/22/2010 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. Fall 2010. Week 541

42 Conditional execution in Java: Traffic Light 9/22/2010 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. Fall 2010. Week 542

43 Conditional Execution in Java: Live demo 9/22/2010©Aditya Mathur. CS 180. Fall 2010. Week 543

44 Three questions from Monday’s class 9/22/2010©Aditya Mathur. CS 180. Fall 2010. Week 544

45 Class ordering in a file 9/22/2010 Q1: Can we place two classes in any order in a file? A: (a) If the two classes are disjoint, and public, then they must be placed in separate files. Hence order does not matter. (b) If one class is inside another (inner class) then too the order does not matter. The outermost class will be saved in a file. ©Aditya Mathur. CS 180. Fall 2010. Week 545

46 Example: Class order 9/22/2010 public class OrderTest{ public static void main(String args[]){ new AnotherOrderTest(); } class AnotherOrderTest{ } Note: this is not public If AnotherOrderTest is made public then it must be in its own file. ©Aditya Mathur. CS 180. Fall 2010. Week 546

47 AudioClip: Constructor 9/22/2010 Q2: Does AudioClip have a constructor? A: No, it does not. AudioClip is an interface. We will discuss interfaces later in this course. ©Aditya Mathur. CS 180. Fall 2010. Week 547

48 Loop() 9/22/2010 Q3: Is loop() executed in a separate thread? A: Yes. Check it out by removing the stop() method from the example we discussed on Monday. You will note that the main() method has terminated but the sound continues to play! ©Aditya Mathur. CS 180. Fall 2010. Week 548

49 Conditions 9/22/2010©Aditya Mathur. CS 180. Fall 2010. Week 549

50 Conditions: Simple 9/22/2010 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. Fall 2010. Week 550

51 Conditions: Compound 9/22/2010 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. Fall 2010. Week 551

52 Conditions: Dangerous! But survived 9/22/2010 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. Fall 2010. Week 552

53 Conditions: Dangerous! May not survive 9/22/2010 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. Fall 2010. Week 553

54 Quiz: 9/22/2010 9/22/2010©Aditya Mathur. CS 180. Fall 2010. Week 554

55 Q1. Value of x after executing the following ? (a) 2 (b) 1 (c) 3 9/22/2010 if (true) { x=1; }else{ x=2; } ©Aditya Mathur. CS 180. Fall 2010. Week 555

56 Q2. Value of z after executing the following? (a) 11 (b) 7 (c) 16 9/22/2010 int x=10, y=15, z=7; if (x+1==y || z>=0) { z=x+1; }else{ z=y+1; }; ©Aditya Mathur. CS 180. Fall 2010. Week 556

57 Q3. Value of z after executing the following? (a) 11 (b) 7 (c) 16 9/22/2010 int x=10, y=15, z=7; if (x+1==y && z>=0) { z=x+1; }else{ z=y+1; }; ©Aditya Mathur. CS 180. Fall 2010. Week 557

58 Q4. Value of z after executing the following? (a) 11 (b) 16 (c) None of the above 9/22/2010 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. Fall 2010. Week 558

59 Q5. Value of x after executing the following? (a) 11 (b) 16 (c) None of the above 9/22/2010 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. Fall 2010. Week 559

60 Q6. Value of x after executing the following? (a) 19 (b) 20 (c) None of the above 9/22/2010 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. Fall 2010. Week 560

61 Loops 9/22/2010©Aditya Mathur. CS 180. Fall 2010. Week 561

62 Problem 9/22/2010 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. Fall 2010. Week 562

63 Algorithm (Graphical) 9/22/2010 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. Fall 2010. Week 563

64 Algorithm [Textual] 9/22/2010 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. Fall 2010. Week 564

65 Problem 9/22/2010 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. Fall 2010. Week 565

66 Algorithm [Textual] 9/22/2010 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. Fall 2010. Week 566

67 Algorithm (Graphical) 9/22/2010 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. Fall 2010. Week 567

68 Loops in Java 9/22/2010 Start condition statements Initialization true statements false End initialization statements; while (condition){ statements; } statements; ©Aditya Mathur. CS 180. Fall 2010. Week 568

69 9/22/2010 Java program for pulse rate monitoring and display. Live demo. ©Aditya Mathur. CS 180. Fall 2010. Week 569

70 Week 5: September 20-24, 2010 Hope you enjoyed this week! Questions? Contact your recitation instructor. Make full use of our office hours. 9/22/2010©Aditya Mathur. CS 180. Fall 2010. Week 570


Download ppt "CS 180 Problem Solving and Object Oriented Programming Fall 2010 Notes for Week 5: September 20-24, 2010 Aditya Mathur Department of Computer Science Purdue."

Similar presentations


Ads by Google