Presentation is loading. Please wait.

Presentation is loading. Please wait.

An Object-Oriented Approach to Programming Logic and Design Chapter 4 Understanding Structure.

Similar presentations


Presentation on theme: "An Object-Oriented Approach to Programming Logic and Design Chapter 4 Understanding Structure."— Presentation transcript:

1 An Object-Oriented Approach to Programming Logic and Design Chapter 4 Understanding Structure

2 An Object-Oriented Approach to Programming Logic and Design 2 Objectives Describe the role of structure in object-oriented methods Draw flowcharts Understand unstructured spaghetti code Understand the three basic structures of sequence, selection, and loop Build structured methods

3 An Object-Oriented Approach to Programming Logic and Design 3 Objectives (continued) Use a priming read Understand the need for structure Recognize structure Describe two special structures: –case –do until

4 An Object-Oriented Approach to Programming Logic and Design 4 The Role of Structure in Object-Oriented Methods Recall that classes can contain non-static instance methods such as –public get : to retrieve the object’s data –public set : to set values for the object’s data –Other public methods: to accomplish tasks using the object’s data

5 An Object-Oriented Approach to Programming Logic and Design 5 The Role of Structure in Object- Oriented Methods (continued) An application can also contain static methods No object exists for these methods, but they may manipulate objects instantiated from prewritten classes All methods should be structured methods

6 An Object-Oriented Approach to Programming Logic and Design 6 The Role of Structure in Object- Oriented Methods (continued) A structured method: –Follows a specific set of rules for logical design –Has a single entry and exit point

7 An Object-Oriented Approach to Programming Logic and Design 7 Drawing Flowcharts Symbols on a flowchart: –Lozenge: racetrack-shaped; marks the beginning or end of a method –Annotation symbol: three-sided box attached to flowchart by a dashed line; provides details for a step –Processing statement: rectangle; contains an action taken –Input/output: parallelogram; denotes data coming in from or going out on a device

8 An Object-Oriented Approach to Programming Logic and Design 8 Drawing Flowcharts (continued)

9 An Object-Oriented Approach to Programming Logic and Design 9 Understanding Unstructured Spaghetti Code Spaghetti code: unstructured code that is confusing and complex due to poor structure Flowchart of spaghetti code shows crossed flow paths with no clear path from beginning to end Unstructured code is difficult to read, understand, and modify

10 An Object-Oriented Approach to Programming Logic and Design 10 Understanding Unstructured Spaghetti Code (continued)

11 An Object-Oriented Approach to Programming Logic and Design 11 Three Basic Structures of Sequence, Selection, and Loop Structure – a basic unit of programming logic All programs are composed of 3 structures: –Sequence –Selection –Loop

12 An Object-Oriented Approach to Programming Logic and Design 12 Three Basic Structures of Sequence, Selection, and Loop (continued) Sequence structure: performs one or more actions in sequence, with no branching, skipping, or looping; continues step by step

13 An Object-Oriented Approach to Programming Logic and Design 13 Three Basic Structures of Sequence, Selection, and Loop (continued) Selection structure: allows one of two or more alternative paths to be taken –if-then-else when only 2 alternatives if hours-worked is more than 40 then calculate overtimePay else calculate regularPay

14 An Object-Oriented Approach to Programming Logic and Design 14 Three Basic Structures of Sequence, Selection, and Loop (continued) Loop structure: allows repetition or iteration –Asks a question and performs an action if a certain answer is given, then asks the question again. –Also called a while loop or a while-do loop while testCondition continues to be true, do someProcess

15 An Object-Oriented Approach to Programming Logic and Design 15 Building Structured Methods All logic problems can be solved with only the sequence, selection, and looping structures Structures can be stacked, one after another Structures can be nested, one within another

16 An Object-Oriented Approach to Programming Logic and Design 16 Building Structured Methods

17 An Object-Oriented Approach to Programming Logic and Design 17 Building Structured Methods (continued)

18 An Object-Oriented Approach to Programming Logic and Design 18 Building Structured Methods (continued) Block: group of statements that execute as a single unit All pseudocode statements inside a block should be indented Indentation in pseudocode reflects the logic shown graphically in a flowchart

19 An Object-Oriented Approach to Programming Logic and Design 19 Building Structured Methods (continued)

20 An Object-Oriented Approach to Programming Logic and Design 20 Building Structured Methods (continued) endif always matches the most recent if that is not already matched endwhile always matches with the most recent while that is not already matched

21 An Object-Oriented Approach to Programming Logic and Design 21 Building Structured Methods (continued)

22 An Object-Oriented Approach to Programming Logic and Design 22 Building Structured Methods (continued) Each structure has 1 entry and 1 exit point Other structures may attach only at an entry or exit point

23 An Object-Oriented Approach to Programming Logic and Design 23 Using a Priming Read Priming read (or priming input): the first read or data input statement that occurs before and outside the loop that handles the rest of the input Priming read is required to keep a method structured

24 An Object-Oriented Approach to Programming Logic and Design 24 Using a Priming Read (continued)

25 An Object-Oriented Approach to Programming Logic and Design 25 Using a Priming Read (continued) Rules for a structured loop: –You ask a question –If the answer indicates a task is to be performed, do so –After you perform the task, go back to ask the question again

26 An Object-Oriented Approach to Programming Logic and Design 26 Using a Priming Read (continued) Example: It’s structured, but doesn’t work!

27 An Object-Oriented Approach to Programming Logic and Design 27 Using a Priming Read (continued) Example: It works, but isn’t structured!

28 An Object-Oriented Approach to Programming Logic and Design 28 Using a Priming Read (continued) Example: It works, and it’s structured!

29 An Object-Oriented Approach to Programming Logic and Design 29 Using a Priming Read (continued) public void numberDoubling() numeric userNumber numeric answer while userNumber not = 0 answer = userNumber * 2 print answer input userNumber endwhile return

30 An Object-Oriented Approach to Programming Logic and Design 30 Understanding the Reasons for Structure Why structured methods are better: –Clarity: structured methods are less confusing –Professionalism: it is the expected standard in industry today –Efficiency: today’s programming languages are built expecting structure –Maintenance: easier to modify programs later –Modularity: facilitates reuse of modules

31 An Object-Oriented Approach to Programming Logic and Design 31 Understanding the Reasons for Structure (continued)

32 An Object-Oriented Approach to Programming Logic and Design 32 Understanding the Reasons for Structure (continued)

33 An Object-Oriented Approach to Programming Logic and Design 33 Recognizing Structure Example: Is this flowchart segment structured? Yes, it has a loop and a selection within the loop

34 An Object-Oriented Approach to Programming Logic and Design 34 Recognizing Structure (continued) Example: Is this flowchart segment structured? No, it is not constructed from the 3 basic structures

35 An Object-Oriented Approach to Programming Logic and Design 35 Recognizing Structure (continued) To untangle spaghetti code, pull one “strand” at a time and follow it Let’s “untangle” this flowchart 

36 An Object-Oriented Approach to Programming Logic and Design 36 Recognizing Structure (continued) Untangling Example: Steps 1 & 2

37 An Object-Oriented Approach to Programming Logic and Design 37 Recognizing Structure (continued) Untangling Example: Step 3 – the “No” side of Question B

38 An Object-Oriented Approach to Programming Logic and Design 38 Recognizing Structure (continued) Untangling Example: Step 4 – the “Yes” side of Question B

39 An Object-Oriented Approach to Programming Logic and Design 39 Recognizing Structure (continued) Untangling Example: Step 5 – left side of Question D: repeat step C to untangle it

40 An Object-Oriented Approach to Programming Logic and Design 40 Recognizing Structure (continued) Untangling Example: Step 6 – right side of Question D leads to the end

41 An Object-Oriented Approach to Programming Logic and Design 41 Recognizing Structure (continued)

42 An Object-Oriented Approach to Programming Logic and Design 42 Describing Two Special Structures: case and do until case structure: allows more than 2 alternative paths do until loop: an alternative to the while loop case and do until are not needed, but are convenient, acceptable structures

43 An Object-Oriented Approach to Programming Logic and Design 43 The case Structure Use a case when there are several distinct values for a variable, each of which requires a different action case eliminates the need for a set of nested if statements

44 An Object-Oriented Approach to Programming Logic and Design 44 The case Structure (continued) Example: using nested if statements

45 An Object-Oriented Approach to Programming Logic and Design 45 The case Structure (continued) Example: using a case statement instead

46 An Object-Oriented Approach to Programming Logic and Design 46 The do until Loop do until loop is similar to the while loop, but tests the condition at the end of the loop while loop tests the condition at the beginning of the loop; If the answer is no, the action is not performed do until loop performs the action, then tests the condition; the action is always performed at least once

47 An Object-Oriented Approach to Programming Logic and Design 47 The do until Loop (continued)

48 An Object-Oriented Approach to Programming Logic and Design 48 The do until Loop (continued) while loop pseudocode: pay bills while there are more bills to pay pay bills endwhile do until loop pseudocode: do pay bills until all bills are paid

49 An Object-Oriented Approach to Programming Logic and Design 49 The do until Loop (continued) Comparison: using a do until loop

50 An Object-Oriented Approach to Programming Logic and Design 50 The do until Loop (continued) Comparison: using a while loop

51 An Object-Oriented Approach to Programming Logic and Design 51 Summary Flowchart symbols: –Lozenge = method header and return –3-sided box = Annotation symbol –Rectangle = statement –Parallelogram = input/output action Spaghetti code is unstructured, hard to read and modify Structured code uses 3 basic structures: sequence, selection, and loop

52 An Object-Oriented Approach to Programming Logic and Design 52 Summary (continued) Structures can be stacked and nested Priming read – the first read or data input prior to beginning a loop Structured techniques result in clarity, professionalism, efficiency, and modularity if-then-else handles 2 path choices case structure handles 2 or more path choices

53 An Object-Oriented Approach to Programming Logic and Design 53 Summary (continued) while loop tests the condition first, then does the action; the action may be performed 0 or more times do until loop does the action, then tests the condition; it always performs the action at least once


Download ppt "An Object-Oriented Approach to Programming Logic and Design Chapter 4 Understanding Structure."

Similar presentations


Ads by Google