1 / 53

An Object-Oriented Approach to Programming Logic and Design

An Object-Oriented Approach to Programming Logic and Design Chapter 4 Understanding Structure 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

albert
Télécharger la présentation

An Object-Oriented Approach to Programming Logic and Design

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  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 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 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 • Otherpublicmethods: to accomplish tasks using the object’s data 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 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 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 An Object-Oriented Approach to Programming Logic and Design

  8. Drawing Flowcharts (continued) 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 An Object-Oriented Approach to Programming Logic and Design

  10. Understanding Unstructured Spaghetti Code (continued) 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 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 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 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 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 An Object-Oriented Approach to Programming Logic and Design

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

  17. Building Structured Methods (continued) 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 An Object-Oriented Approach to Programming Logic and Design

  19. Building Structured Methods (continued) 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 An Object-Oriented Approach to Programming Logic and Design

  21. Building Structured Methods (continued) 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 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 An Object-Oriented Approach to Programming Logic and Design

  24. Using a Priming Read (continued) 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 An Object-Oriented Approach to Programming Logic and Design

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

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

  28. Using a Priming Read (continued) Example: It works, and it’s structured! 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 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 An Object-Oriented Approach to Programming Logic and Design

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

  32. Understanding the Reasons for Structure (continued) 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 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 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  An Object-Oriented Approach to Programming Logic and Design

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

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

  38. Recognizing Structure (continued) Untangling Example: Step 4 – the “Yes” side of Question B 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 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 An Object-Oriented Approach to Programming Logic and Design

  41. Recognizing Structure (continued) 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 • dountil loop: an alternative to the while loop • case and do until are not needed, but are convenient, acceptable structures 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 An Object-Oriented Approach to Programming Logic and Design

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

  45. The case Structure (continued) Example: using a case statement instead 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 • dountil loop performs the action, then tests the condition; the action is always performed at least once An Object-Oriented Approach to Programming Logic and Design

  47. The do until Loop (continued) 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 An Object-Oriented Approach to Programming Logic and Design

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

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

More Related