2003 prentice hall, inc. all rights reserved. 1 outline 4.1 introduction 4.2 algorithms 4.3...

40
2003 Prentice Hall, Inc. All rights reserved. 1 Outline 4.1 Introduction 4.2 Algorithms 4.3 Pseudocode 4.4 Control Structures 4.5 if Single-Selection Statement 4.6 if else Selection Statement 4.7 while Repetition Statement 4.8 Formulating Algorithms: Case Study 1 (Counter- Controlled Repetition) 4.9 Formulating Algorithms with Top-Down, Stepwise Refinement: Case Study 2 (Sentinel-Controlled Repetition) 4.10 Formulating Algorithms with Top-Down, Stepwise Refinement: Case Study 3 (Nested Control Structures) 4.11 Compound Assignment Operators 4.12 Increment and Decrement Operators 4.13 Primitive Types 4.14 (Optional Case Study) Thinking About Objects: Identifying Class Attributes Chapter 4 - Control Structures: Part 1

Post on 22-Dec-2015

219 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: 2003 Prentice Hall, Inc. All rights reserved. 1 Outline 4.1 Introduction 4.2 Algorithms 4.3 Pseudocode 4.4 Control Structures 4.5 if Single-Selection

2003 Prentice Hall, Inc. All rights reserved.

1

Outline4.1 Introduction4.2 Algorithms4.3 Pseudocode4.4 Control Structures4.5 if Single-Selection Statement 4.6 if else Selection Statement 4.7 while Repetition Statement 4.8 Formulating Algorithms: Case Study 1 (Counter-

Controlled Repetition) 4.9 Formulating Algorithms with Top-Down, Stepwise Refinement: Case Study 2 (Sentinel-Controlled Repetition) 4.10 Formulating Algorithms with Top-Down, Stepwise Refinement: Case Study 3 (Nested Control Structures)4.11 Compound Assignment Operators 4.12 Increment and Decrement Operators 4.13 Primitive Types4.14 (Optional Case Study) Thinking About Objects: Identifying Class Attributes

Chapter 4 - Control Structures: Part 1

Page 2: 2003 Prentice Hall, Inc. All rights reserved. 1 Outline 4.1 Introduction 4.2 Algorithms 4.3 Pseudocode 4.4 Control Structures 4.5 if Single-Selection

2003 Prentice Hall, Inc. All rights reserved.

2

4.1  Introduction

• We learn about Control Structures– Structured-programming principle

– Control structures help build and manipulate objects (Chapter 8)

Page 3: 2003 Prentice Hall, Inc. All rights reserved. 1 Outline 4.1 Introduction 4.2 Algorithms 4.3 Pseudocode 4.4 Control Structures 4.5 if Single-Selection

2003 Prentice Hall, Inc. All rights reserved.

3

4.2 Algorithms

• Algorithm– Series of actions in specific order

• The actions executed

• The order in which actions execute

• Program control– Specifying the order in which actions execute

• Control structures help specify this order

Page 4: 2003 Prentice Hall, Inc. All rights reserved. 1 Outline 4.1 Introduction 4.2 Algorithms 4.3 Pseudocode 4.4 Control Structures 4.5 if Single-Selection

2003 Prentice Hall, Inc. All rights reserved.

4

4.3 Pseudocode

• Pseudocode– Informal language for developing algorithms

– Not executed on computers

– Helps developers “think out” algorithms

Page 5: 2003 Prentice Hall, Inc. All rights reserved. 1 Outline 4.1 Introduction 4.2 Algorithms 4.3 Pseudocode 4.4 Control Structures 4.5 if Single-Selection

2003 Prentice Hall, Inc. All rights reserved.

5

4.4 Control Structures

• Sequential execution– Program statements execute one after the other

• Transfer of control– Three control statements can specify order of statements

• Sequence structure

• Selection structure

• Repetition structure

• Activity diagram– Models the workflow

• Action-state symbols

• Transition arrows

Page 6: 2003 Prentice Hall, Inc. All rights reserved. 1 Outline 4.1 Introduction 4.2 Algorithms 4.3 Pseudocode 4.4 Control Structures 4.5 if Single-Selection

2003 Prentice Hall, Inc. All rights reserved.

6

Fig 4.1 Sequence structure activity diagram.

add grade to total

add 1 to counter

Corresponding Java statement:total = total + grade;

Corresponding Java statement:counter = counter + 1;

Page 7: 2003 Prentice Hall, Inc. All rights reserved. 1 Outline 4.1 Introduction 4.2 Algorithms 4.3 Pseudocode 4.4 Control Structures 4.5 if Single-Selection

2003 Prentice Hall, Inc. All rights reserved.

7

J ava Keywords abstract assert boolean break byte case catch char class continue default do double else extends final finally float for if implements import instanceof int interface long native new package private protected public return short static strictfp super switch synchronized this throw throws transient try void volatile while Keywords that are reserved, but not currently used const goto Fig. 4.2 J ava keywords.

Page 8: 2003 Prentice Hall, Inc. All rights reserved. 1 Outline 4.1 Introduction 4.2 Algorithms 4.3 Pseudocode 4.4 Control Structures 4.5 if Single-Selection

2003 Prentice Hall, Inc. All rights reserved.

8

4.4 Control Structures

• Java has a sequence structure “built-in”• Java provides three selection structures

– if– If…else– switch

• Java provides three repetition structures– while– do…while– do

• Each of these words is a Java keyword

Page 9: 2003 Prentice Hall, Inc. All rights reserved. 1 Outline 4.1 Introduction 4.2 Algorithms 4.3 Pseudocode 4.4 Control Structures 4.5 if Single-Selection

2003 Prentice Hall, Inc. All rights reserved.

9

4.5 if Single-Selection Statement

• Single-entry/single-exit control structure• Perform action only when condition is true• Action/decision programming model

Page 10: 2003 Prentice Hall, Inc. All rights reserved. 1 Outline 4.1 Introduction 4.2 Algorithms 4.3 Pseudocode 4.4 Control Structures 4.5 if Single-Selection

2003 Prentice Hall, Inc. All rights reserved.

10

Fig 4.3 if single-selections statement activity diagram.

[grade >= 60]

[grade < 60]

print “Passed”

Page 11: 2003 Prentice Hall, Inc. All rights reserved. 1 Outline 4.1 Introduction 4.2 Algorithms 4.3 Pseudocode 4.4 Control Structures 4.5 if Single-Selection

2003 Prentice Hall, Inc. All rights reserved.

11

4.6 if…else Selection Statement

• Perform action only when condition is true• Perform different specified action when condition

is false• Conditional operator (?:)• Nested if…else selection structures (p.128)• Dangling-else problem • Blocks

Page 12: 2003 Prentice Hall, Inc. All rights reserved. 1 Outline 4.1 Introduction 4.2 Algorithms 4.3 Pseudocode 4.4 Control Structures 4.5 if Single-Selection

2003 Prentice Hall, Inc. All rights reserved.

12

Fig 4.4 if…else double-selections statement activity diagram.

[grade >= 60][grade < 60]print “Failed” print “Passed”

Page 13: 2003 Prentice Hall, Inc. All rights reserved. 1 Outline 4.1 Introduction 4.2 Algorithms 4.3 Pseudocode 4.4 Control Structures 4.5 if Single-Selection

2003 Prentice Hall, Inc. All rights reserved.

13

• Conditional Operator

• Dangling Else

if (x > 5)

if (y > 5)

System.out.println( “x > 5, y > 5”);

else

System.out.println(“x <= 5”);

System.out.println(StudentGrade >= 60? “Passed”: “Failed”);

Page 14: 2003 Prentice Hall, Inc. All rights reserved. 1 Outline 4.1 Introduction 4.2 Algorithms 4.3 Pseudocode 4.4 Control Structures 4.5 if Single-Selection

2003 Prentice Hall, Inc. All rights reserved.

14

Exercise 4.21

• Test 1: x=9, y=11• Test 2: x=11, y=9

(a) if (x <10)

if (y > 10)

System.out.println( “***”);

else

System.out.println(“###”);

System.out.println(“$$$”);

(b) if (x <10) {

if (y > 10)

System.out.println( “***”);

}

else {

System.out.println(“###”);

System.out.println(“$$$”);

}

Page 15: 2003 Prentice Hall, Inc. All rights reserved. 1 Outline 4.1 Introduction 4.2 Algorithms 4.3 Pseudocode 4.4 Control Structures 4.5 if Single-Selection

2003 Prentice Hall, Inc. All rights reserved.

15

4.7 while Repetition Statement

• Repeat action while condition remains true

int product = 2;

while (product <= 1000 )

product = 2*product;

Page 16: 2003 Prentice Hall, Inc. All rights reserved. 1 Outline 4.1 Introduction 4.2 Algorithms 4.3 Pseudocode 4.4 Control Structures 4.5 if Single-Selection

2003 Prentice Hall, Inc. All rights reserved.

16

Fig 4.5 while repetition statement activity diagram.

[product <= 1000]

[product > 1000]

double product value

merge

decision

Corresponding Java statement:product = 2 * product;

Page 17: 2003 Prentice Hall, Inc. All rights reserved. 1 Outline 4.1 Introduction 4.2 Algorithms 4.3 Pseudocode 4.4 Control Structures 4.5 if Single-Selection

2003 Prentice Hall, Inc. All rights reserved.

174.8 Formulating Algorithms: Case Study 1 (Counter-Controlled

Repetition)• Counter

– Variable that controls number of times set of statements executes

• Average1.java calculates grade averages– uses counters to control repetition

– Fig 4.7

Page 18: 2003 Prentice Hall, Inc. All rights reserved. 1 Outline 4.1 Introduction 4.2 Algorithms 4.3 Pseudocode 4.4 Control Structures 4.5 if Single-Selection

2003 Prentice Hall, Inc. All rights reserved.

18

 Set total to zeroSet grade counter to one

While grade counter is less than or equal to tenInput the next gradeAdd the grade into the totalAdd one to the grade counter

Set the class average to the total divided by tenPrint the class average

Fig. 4.6 Pseudocode algorithm that uses counter-controlled repetition to solve the class-average problem.

Page 19: 2003 Prentice Hall, Inc. All rights reserved. 1 Outline 4.1 Introduction 4.2 Algorithms 4.3 Pseudocode 4.4 Control Structures 4.5 if Single-Selection

2003 Prentice Hall, Inc.All rights reserved.

Outline19

Average1.java gradeCounter

Line 21

1 // Fig. 4.7: Average1.java2 // Class-average program with counter-controlled repetition.3 import javax.swing.JOptionPane;4 5 public class Average1 {6 7 public static void main( String args[] ) 8 {9 int total; // sum of grades input by user10 int gradeCounter; // number of grade to be entered next11 int grade; // grade value12 int average; // average of grades13 14 String gradeString; // grade typed by user15 16 // initialization phase17 total = 0; // initialize total18 gradeCounter = 1; // initialize loop counter19 20 // processing phase21 while ( gradeCounter <= 10 ) { // loop 10 times22 23 // prompt for input and read grade from user24 gradeString = JOptionPane.showInputDialog(25 "Enter integer grade: " );26 27 // convert gradeString to int28 grade = Integer.parseInt( gradeString );29

Declare variables; gradeCounter is the counter

Continue looping as long as gradeCounter is less than or

equal to 10

Page 20: 2003 Prentice Hall, Inc. All rights reserved. 1 Outline 4.1 Introduction 4.2 Algorithms 4.3 Pseudocode 4.4 Control Structures 4.5 if Single-Selection

2003 Prentice Hall, Inc.All rights reserved.

Outline20

Average1.java

30 total = total + grade; // add grade to total31 gradeCounter = gradeCounter + 1; // increment counter32 33 } // end while34 35 // termination phase36 average = total / 10; // integer division37 38 // display average of exam grades39 JOptionPane.showMessageDialog( null, "Class average is " + average,40 "Class Average", JOptionPane.INFORMATION_MESSAGE );41 42 System.exit( 0 ); // terminate the program43 44 } // end main45 46 } // end class Average1

Page 21: 2003 Prentice Hall, Inc. All rights reserved. 1 Outline 4.1 Introduction 4.2 Algorithms 4.3 Pseudocode 4.4 Control Structures 4.5 if Single-Selection

2003 Prentice Hall, Inc.All rights reserved.

Outline21

Average1.java

Page 22: 2003 Prentice Hall, Inc. All rights reserved. 1 Outline 4.1 Introduction 4.2 Algorithms 4.3 Pseudocode 4.4 Control Structures 4.5 if Single-Selection

2003 Prentice Hall, Inc. All rights reserved.

224.9 Formulating Algorithms with Top-Down, Stepwise Refinement: Case Study 2 (Sentinel-Controlled

Repetition)• Sentinel value

– Used to indicated the end of data entry

• Average2.java has indefinite repetition– User enters sentinel value (-1) to end repetition

Page 23: 2003 Prentice Hall, Inc. All rights reserved. 1 Outline 4.1 Introduction 4.2 Algorithms 4.3 Pseudocode 4.4 Control Structures 4.5 if Single-Selection

2003 Prentice Hall, Inc. All rights reserved.

23

Initialize total to zeroInitialize counter to zero

Input the first grade (possibly the sentinel)

While the user has not as yet entered the sentinel Add this grade into the running totalAdd one to the grade counterInput the next grade (possibly the sentinel)

If the counter is not equal to zeroSet the average to the total divided by the counterPrint the average

elsePrint “No grades were entered”

Fig. 4.8 Class-average problem pseudocode algorithm with sentinel-controlled repetition.

Page 24: 2003 Prentice Hall, Inc. All rights reserved. 1 Outline 4.1 Introduction 4.2 Algorithms 4.3 Pseudocode 4.4 Control Structures 4.5 if Single-Selection

2003 Prentice Hall, Inc.All rights reserved.

Outline24

Average2.java

1 // Fig. 4.9: Average2.java2 // Class-average program with sentinel-controlled repetition.3 import java.text.DecimalFormat; // class to format numbers4 import javax.swing.JOptionPane;5 6 public class Average2 {7 8 public static void main( String args[] )9 {10 int total; // sum of grades11 int gradeCounter; // number of grades entered12 int grade; // grade value13 14 double average; // number with decimal point for average15 16 String gradeString; // grade typed by user17 18 // initialization phase19 total = 0; // initialize total20 gradeCounter = 0; // initialize loop counter21 22 // processing phase23 // get first grade from user 24 gradeString = JOptionPane.showInputDialog(25 "Enter Integer Grade or -1 to Quit:" );26 27 // convert gradeString to int 28 grade = Integer.parseInt( gradeString ); 29

Page 25: 2003 Prentice Hall, Inc. All rights reserved. 1 Outline 4.1 Introduction 4.2 Algorithms 4.3 Pseudocode 4.4 Control Structures 4.5 if Single-Selection

2003 Prentice Hall, Inc.All rights reserved.

Outline25

Average2.java

Line 31

Line 45

30 // loop until sentinel value read from user31 while ( grade != -1 ) { 32 total = total + grade; // add grade to total33 gradeCounter = gradeCounter + 1; // increment counter34 35 // get next grade from user 36 gradeString = JOptionPane.showInputDialog(37 "Enter Integer Grade or -1 to Quit:" );38 39 // convert gradeString to int 40 grade = Integer.parseInt( gradeString ); 41 42 } // end while43 44 // termination phase45 DecimalFormat twoDigits = new DecimalFormat( "0.00" );46 47 // if user entered at least one grade...48 if ( gradeCounter != 0 ) {49 50 // calculate average of all grades entered51 average = (double) total / gradeCounter; 52 53 // display average with two digits of precision54 JOptionPane.showMessageDialog( null,55 "Class average is " + twoDigits.format( average ),56 "Class Average", JOptionPane.INFORMATION_MESSAGE );57 58 } // end if part of if...else59

loop until gradeCounter equals sentinel value (-1)

Format numbers to nearest hundredth

Page 26: 2003 Prentice Hall, Inc. All rights reserved. 1 Outline 4.1 Introduction 4.2 Algorithms 4.3 Pseudocode 4.4 Control Structures 4.5 if Single-Selection

2003 Prentice Hall, Inc.All rights reserved.

Outline26

Average2.java

60 else // if no grades entered, output appropriate message61 JOptionPane.showMessageDialog( null, "No grades were entered",62 "Class Average", JOptionPane.INFORMATION_MESSAGE );63 64 System.exit( 0 ); // terminate application65 66 } // end main67 68 } // end class Average2

Page 27: 2003 Prentice Hall, Inc. All rights reserved. 1 Outline 4.1 Introduction 4.2 Algorithms 4.3 Pseudocode 4.4 Control Structures 4.5 if Single-Selection

2003 Prentice Hall, Inc. All rights reserved.

274.10 Formulating Algorithms with

Top-Down, Stepwise Refinement: Case Study 3

(Nested Control Structures)• Nested control structures

Page 28: 2003 Prentice Hall, Inc. All rights reserved. 1 Outline 4.1 Introduction 4.2 Algorithms 4.3 Pseudocode 4.4 Control Structures 4.5 if Single-Selection

2003 Prentice Hall, Inc. All rights reserved.

28

Initialize passes to zeroInitialize failures to zeroInitialize student to one 

While student counter is less than or equal to ten Input the next exam result

If the student passed Add one to passes

else Add one to failures

  Add one to student counter

Print the number of passesPrint the number of failures

If more than eight students passed Print “Raise tuition”

Fig 4.10 Pseudocode for examination-results problem.

Page 29: 2003 Prentice Hall, Inc. All rights reserved. 1 Outline 4.1 Introduction 4.2 Algorithms 4.3 Pseudocode 4.4 Control Structures 4.5 if Single-Selection

2003 Prentice Hall, Inc.All rights reserved.

Outline29

Analysis.java

Line 19

Line 29

1 // Fig. 4.11: Analysis.java2 // Analysis of examination results.3 import javax.swing.JOptionPane;4 5 public class Analysis {6 7 public static void main( String args[] ) 8 {9 // initializing variables in declarations10 int passes = 0; // number of passes 11 int failures = 0; // number of failures12 int studentCounter = 1; // student counter 13 int result; // one exam result14 15 String input; // user-entered value16 String output; // output string17 18 // process 10 students using counter-controlled loop19 while ( studentCounter <= 10 ) {20 21 // prompt user for input and obtain value from user22 input = JOptionPane.showInputDialog(23 "Enter result (1 = pass, 2 = fail)" );24 25 // convert result to int26 result = Integer.parseInt( input );27 28 // if result 1, increment passes; if...else nested in while29 if ( result == 1 ) 30 passes = passes + 1;

Loop until student counter is greater than 10

Nested control structure

Page 30: 2003 Prentice Hall, Inc. All rights reserved. 1 Outline 4.1 Introduction 4.2 Algorithms 4.3 Pseudocode 4.4 Control Structures 4.5 if Single-Selection

2003 Prentice Hall, Inc.All rights reserved.

Outline30

Analysis.java

31 32 else // if result not 1, increment failures 33 failures = failures + 1; 34 35 // increment studentCounter so loop eventually terminates36 studentCounter = studentCounter + 1; 37 38 } // end while39 40 // termination phase; prepare and display results41 output = "Passed: " + passes + "\nFailed: " + failures;42 43 // determine whether more than 8 students passed44 if ( passes > 8 )45 output = output + "\nRaise Tuition";46 47 JOptionPane.showMessageDialog( null, output,48 "Analysis of Examination Results",49 JOptionPane.INFORMATION_MESSAGE );50 51 System.exit( 0 ); // terminate application52 53 } // end main54 55 } // end class Analysis

Page 31: 2003 Prentice Hall, Inc. All rights reserved. 1 Outline 4.1 Introduction 4.2 Algorithms 4.3 Pseudocode 4.4 Control Structures 4.5 if Single-Selection

2003 Prentice Hall, Inc. All rights reserved.

31

4.11 Compound Assignment Operators

• Assignment Operators– Abbreviate assignment expressions

– Any statement of form• variable = variable operator expression;

– Can be written as• variable operator= expression;

– e.g., addition assignment operator +=• c = c + 3

– can be written as• c += 3

Page 32: 2003 Prentice Hall, Inc. All rights reserved. 1 Outline 4.1 Introduction 4.2 Algorithms 4.3 Pseudocode 4.4 Control Structures 4.5 if Single-Selection

2003 Prentice Hall, Inc. All rights reserved.

32

Assignment operator

Sample expression

Explanation Assigns

Assume: int c = 3, d = 5, e = 4, f = 6, g = 12;

+= c += 7 c = c + 7 10 to c -= d -= 4 d = d - 4 1 to d *= e *= 5 e = e * 5 20 to e /= f /= 3 f = f / 3 2 to f %= g %= 9 g = g % 9 3 to g Fig. 4.12 Arithmetic assignment operators.

Page 33: 2003 Prentice Hall, Inc. All rights reserved. 1 Outline 4.1 Introduction 4.2 Algorithms 4.3 Pseudocode 4.4 Control Structures 4.5 if Single-Selection

2003 Prentice Hall, Inc. All rights reserved.

33

4.12 Increment and Decrement Operators

• Unary increment operator (++)– Increment variable’s value by 1

• Unary decrement operator (--)– Decrement variable’s value by 1

• Preincrement / predecrement operator• Post-increment / post-decrement operator

Page 34: 2003 Prentice Hall, Inc. All rights reserved. 1 Outline 4.1 Introduction 4.2 Algorithms 4.3 Pseudocode 4.4 Control Structures 4.5 if Single-Selection

2003 Prentice Hall, Inc. All rights reserved.

34

Operator Called Sample expression

Explanation

++ preincrement ++a Increment a by 1, then use the new value of a in the expression in which a resides.

++ postincrement a++ Use the current value of a in the expression in which a resides, then increment a by 1.

-- predecrement --b Decrement b by 1, then use the new value of b in the expression in which b resides.

-- postdecrement b-- Use the current value of b in the expression in which b resides, then decrement b by 1.

Fig. 4.13 The increment and decrement operators.

Page 35: 2003 Prentice Hall, Inc. All rights reserved. 1 Outline 4.1 Introduction 4.2 Algorithms 4.3 Pseudocode 4.4 Control Structures 4.5 if Single-Selection

2003 Prentice Hall, Inc.All rights reserved.

Outline35

Increment.java

Line 13 postincrement

Line 21 preincrement

1 // Fig. 4.14: Increment.java2 // Preincrementing and postincrementing operators.3 4 public class Increment {5 6 public static void main( String args[] )7 {8 int c;9 10 // demonstrate postincrement11 c = 5; // assign 5 to c12 System.out.println( c ); // print 513 System.out.println( c++ ); // print 5 then postincrement14 System.out.println( c ); // print 6 15 16 System.out.println(); // skip a line17 18 // demonstrate preincrement19 c = 5; // assign 5 to c20 System.out.println( c ); // print 521 System.out.println( ++c ); // preincrement then print 622 System.out.println( c ); // print 6 23 24 } // end main25 26 } // end class Increment

556 

566

Line 13 postincrements c

Line 21 preincrements c

Page 36: 2003 Prentice Hall, Inc. All rights reserved. 1 Outline 4.1 Introduction 4.2 Algorithms 4.3 Pseudocode 4.4 Control Structures 4.5 if Single-Selection

2003 Prentice Hall, Inc. All rights reserved.

36

Operators Associativity Type ++ -- right to left unary postfix

++ -- + - (type) right to left unary * / % left to right multiplicative + - left to right additive < <= > >= left to right relational == != left to right equality ?: right to left conditional = += -= *= /= %= right to left assignment Fig. 4.15 Precedence and associativity of the operators discussed so far.

Page 37: 2003 Prentice Hall, Inc. All rights reserved. 1 Outline 4.1 Introduction 4.2 Algorithms 4.3 Pseudocode 4.4 Control Structures 4.5 if Single-Selection

2003 Prentice Hall, Inc. All rights reserved.

37

4.13 Primitive Types

• Primitive types– “building blocks” for more complicated types

• Java is strongly typed– All variables in a Java program must have a type

• Java primitive types– portable across computer platforms that support Java

Page 38: 2003 Prentice Hall, Inc. All rights reserved. 1 Outline 4.1 Introduction 4.2 Algorithms 4.3 Pseudocode 4.4 Control Structures 4.5 if Single-Selection

2003 Prentice Hall, Inc. All rights reserved.

38

Type Size in bits Values Standard boolean true or false

[Note: The representation of a boolean is specific to the Java Virtual Machine on each computer platform.]

char 16 '\u0000' to '\uFFFF' (0 to 65535)

(ISO Unicode character set)

byte 8 –128 to +127 (–27 to 27 – 1)

short 16 –32,768 to +32,767 (–215 to 215 – 1)

int 32 –2,147,483,648 to +2,147,483,647 (–231 to 231 – 1)

long 64 –9,223,372,036,854,775,808 to +9,223,372,036,854,775,807 (–263 to 263 – 1)

float 32 Negative range: –3.4028234663852886E+38 to –1.40129846432481707e–45 Positive range: 1.40129846432481707e–45 to 3.4028234663852886E+38

(IEEE 754 floating point)

double 64 Negative range: –1.7976931348623157E+308 to –4.94065645841246544e–324 Positive range: 4.94065645841246544e–324 to 1.7976931348623157E+308

(IEEE 754 floating point)

Fig. 4.16 The J ava primitive types.

Page 39: 2003 Prentice Hall, Inc. All rights reserved. 1 Outline 4.1 Introduction 4.2 Algorithms 4.3 Pseudocode 4.4 Control Structures 4.5 if Single-Selection

2003 Prentice Hall, Inc. All rights reserved.

394.14 (Optional Case Study) Thinking About Objects: Identifying

Class Attributes• Classes have attributes (data)

– Implemented in Java programs as variables

– Attributes of real-world objects• Radio (object)

– Station setting, volume setting, AM or FM (attributes)

• Identify attributes– Look for descriptive words and phrases in problem statement

– Each identified word and phrase is a candidate attribute• e.g., “the elevator is moving”

– “is moving” corresponds to boolean attribute moving• e.g., “the elevator takes five seconds to travel between floors”

– corresponds to int attribute travelTime• int travelTime = 5; (in Java)

Page 40: 2003 Prentice Hall, Inc. All rights reserved. 1 Outline 4.1 Introduction 4.2 Algorithms 4.3 Pseudocode 4.4 Control Structures 4.5 if Single-Selection

2003 Prentice Hall, Inc. All rights reserved.

40

Class Descriptive words and phrases ElevatorShaft [no descriptive words or phrases]

Elevator moving summoned current floor destination floor capacity of only one person five seconds to travel between floors

Person unique waiting / moving current floor

Floor first or second; capacity for only one person FloorButton pressed / reset ElevatorButton pressed / reset FloorDoor door closed / door open ElevatorDoor door closed / door open

Bell [no descriptive words or phrases] Light turned on / turned off Fig. 4.17 Descriptive words and phrases from problem statement.