540 likes | 1.13k Views
An Object-Oriented Approach to Programming Logic and Design. 2. Objectives. Describe the role of structure in object-oriented methodsDraw flowchartsUnderstand unstructured spaghetti codeUnderstand the three basic structures of sequence, selection, and loopBuild structured methods. An Object-Ori
E N D
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
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
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)
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)
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)
29. An Object-Oriented Approach to Programming Logic and Design 29 Using a Priming Read (continued)
30. An Object-Oriented Approach to Programming Logic and Design 30 Understanding the Reasons for Structure
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
34. An Object-Oriented Approach to Programming Logic and Design 34 Recognizing Structure (continued)
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)
37. An Object-Oriented Approach to Programming Logic and Design 37 Recognizing Structure (continued)
38. An Object-Oriented Approach to Programming Logic and Design 38 Recognizing Structure (continued)
39. An Object-Oriented Approach to Programming Logic and Design 39 Recognizing Structure (continued)
40. An Object-Oriented Approach to Programming Logic and Design 40 Recognizing Structure (continued)
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)
45. An Object-Oriented Approach to Programming Logic and Design 45 The case Structure (continued)
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)
50. An Object-Oriented Approach to Programming Logic and Design 50 The do until Loop (continued)
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