COMP 110 Worksheet review, debugger Luv Kohli September 29, 2008 MWF 2-2:50 pm Sitterson 014.

21
COMP 110 COMP 110 Worksheet review, debugger Worksheet review, debugger Luv Kohli September 29, 2008 MWF 2-2:50 pm Sitterson 014

Transcript of COMP 110 Worksheet review, debugger Luv Kohli September 29, 2008 MWF 2-2:50 pm Sitterson 014.

Page 1: COMP 110 Worksheet review, debugger Luv Kohli September 29, 2008 MWF 2-2:50 pm Sitterson 014.

COMP 110COMP 110Worksheet review, debuggerWorksheet review, debugger

Luv KohliSeptember 29, 2008

MWF 2-2:50 pmSitterson 014

Page 2: COMP 110 Worksheet review, debugger Luv Kohli September 29, 2008 MWF 2-2:50 pm Sitterson 014.

AnnouncementsAnnouncementsLab 4 due Wednesday, 2pm

◦Remember to also print out your code and hand it in

Extra office hours before Wednesday’s class?

2

Page 3: COMP 110 Worksheet review, debugger Luv Kohli September 29, 2008 MWF 2-2:50 pm Sitterson 014.

Questions?Questions?Any further questions on Lab 3?

How is Lab 4 going?

3

Page 4: COMP 110 Worksheet review, debugger Luv Kohli September 29, 2008 MWF 2-2:50 pm Sitterson 014.

Today in COMP 110Today in COMP 110Some comments about the type boolean

and boolean expressions

Go over in-class worksheet

Debugger

Revisiting classes

4

Page 5: COMP 110 Worksheet review, debugger Luv Kohli September 29, 2008 MWF 2-2:50 pm Sitterson 014.

booleanboolean type typeCan be either true or falseChoose variable names that sound true

when the value is trueboolean isAlive = true;

boolean isPositive = false;

boolean systemsAreOK = true;

if (isAlive) ...

if (isPositive) ...

if (systemsAreOK) ...

5

Page 6: COMP 110 Worksheet review, debugger Luv Kohli September 29, 2008 MWF 2-2:50 pm Sitterson 014.

booleanboolean type typeCan give boolean variable the value of a

boolean expression by using an assignment statement

int number = -5;

boolean isPositive = (number > 0);

6

Page 7: COMP 110 Worksheet review, debugger Luv Kohli September 29, 2008 MWF 2-2:50 pm Sitterson 014.

booleanboolean type typeOnce boolean variable has a value, you

can use it just like any other boolean expression

int number = -5;

boolean isPositive = (number > 0);

if (isPositive)

System.out.println(“The number is positive”);

else

System.out.println(“The number is not positive”);

7

Page 8: COMP 110 Worksheet review, debugger Luv Kohli September 29, 2008 MWF 2-2:50 pm Sitterson 014.

booleanboolean type typeCan use more complicated expressions

also

boolean systemsAreOK = (temperature <= 100) &&

(thrust >= 12000) && (cabinPressure > 30);

8

Page 9: COMP 110 Worksheet review, debugger Luv Kohli September 29, 2008 MWF 2-2:50 pm Sitterson 014.

Review in-class worksheetReview in-class worksheet

9

Page 10: COMP 110 Worksheet review, debugger Luv Kohli September 29, 2008 MWF 2-2:50 pm Sitterson 014.

&& vs. &, || vs. |&& vs. &, || vs. |In the if statement below, is the boolean

expression true or false?

int temperature = 100;

int rainFall = 40;

int humidity = 70;

if ((temperature > 95) || (rainFall > 20) || (humidity >= 60))

10

Page 11: COMP 110 Worksheet review, debugger Luv Kohli September 29, 2008 MWF 2-2:50 pm Sitterson 014.

&&, ||: short-circuit evaluation&&, ||: short-circuit evaluationEvaluate the first subexpression

◦ If that is enough information, do not evaluate subsequent subexpressions

if ((temperature > 95) || (rainFall > 20) || (humidity >= 60))

if ((assignmentsDone > 0) &&

((totalScore / assignmentsDone) > 60))

11

Page 12: COMP 110 Worksheet review, debugger Luv Kohli September 29, 2008 MWF 2-2:50 pm Sitterson 014.

&, |: complete evaluation&, |: complete evaluationEvaluate all subexpressions, alwaysWhat is wrong with this if statement?

if ((assignmentsDone > 0) &

((totalScore / assignmentsDone) > 60))

Possible divide by 0 error!◦assignmentsDone could be 0

Usually do not want or need to use complete evaluation

12

Page 13: COMP 110 Worksheet review, debugger Luv Kohli September 29, 2008 MWF 2-2:50 pm Sitterson 014.

&, |: bitwise operators&, |: bitwise operators&, | are not valid as boolean logical

operators in many C-based languages

Usually, they are bitwise operators◦ In Java, can be used as boolean logical

operators or bitwise operators

More advanced, will not discuss bitwise operators now

13

Page 14: COMP 110 Worksheet review, debugger Luv Kohli September 29, 2008 MWF 2-2:50 pm Sitterson 014.

Finding errorsFinding errorsTrace your variables

◦ Put output statements in your code to see what values are stored in your variables System.out.println(variable); Check whether the values are correct and what you expect

◦ Remove these extra output statements after the program runs correctly

◦ Read example in the book, p. 188 (4th edition), p. 218 (5th edition)

Use a debugger

14

Page 15: COMP 110 Worksheet review, debugger Luv Kohli September 29, 2008 MWF 2-2:50 pm Sitterson 014.

Debugger in jGRASPDebugger in jGRASPRead sections 2.10, 7.1-7.5 of jGRASP

tutorial (linked off of course schedule)

Try using debugger on your programs

It will not help if your program does not compile!

15

Page 16: COMP 110 Worksheet review, debugger Luv Kohli September 29, 2008 MWF 2-2:50 pm Sitterson 014.

Classes and ObjectsClasses and ObjectsJava programs (and programs in other

object-oriented programming languages) consist of objects of various class types

Objects can represent objects in the real world◦Automobiles, houses, employee records

Or abstract concepts◦Colors, shapes, words

16

Page 17: COMP 110 Worksheet review, debugger Luv Kohli September 29, 2008 MWF 2-2:50 pm Sitterson 014.

ClassClassA class is the definition of a kind of object

◦A blueprint for constructing specific objects

17

Class Name: Automobile

Data: amount of fuel speed license plate

Methods (actions): accelerate: How: Press on gas pedal. decelerate: How: Press on brake pedal.

Page 18: COMP 110 Worksheet review, debugger Luv Kohli September 29, 2008 MWF 2-2:50 pm Sitterson 014.

Objects, InstantiationObjects, Instantiation

18

Object Name: patsCar

amount of fuel: 10 gallonsspeed: 55 miles per hourlicense plate: “135 XJK”

Object Name: suesCar

amount of fuel: 14 gallonsspeed: 0 miles per hourlicense plate: “SUES CAR”

Object Name: ronsCar

amount of fuel: 2 gallonsspeed: 75 miles per hourlicense plate: “351 WLF”

Instantiations, or instances, of the class Automobile

Page 19: COMP 110 Worksheet review, debugger Luv Kohli September 29, 2008 MWF 2-2:50 pm Sitterson 014.

UML (Universal Modeling Language)UML (Universal Modeling Language)

19

Automobile

- fuel: double- speed: double- license: String

+ accelerate(double pedalPressure): void+ decelerate(double pedalPressure): void

Class name

Data

Methods (actions)

Page 20: COMP 110 Worksheet review, debugger Luv Kohli September 29, 2008 MWF 2-2:50 pm Sitterson 014.

Something we’ve seen beforeSomething we’ve seen beforeAutomobile suesCar = new Automobile();

Scanner keyboard = new Scanner(System.in);

20

Create an objectReturn memory address of object

Assign memory address of object to variable

Page 21: COMP 110 Worksheet review, debugger Luv Kohli September 29, 2008 MWF 2-2:50 pm Sitterson 014.

WednesdayWednesdayLab 4 due, 2pm

Go over program 2

2121