Title: An ObjectOriented Approach to Programming Logic and Design
1An Object-Oriented Approach to Programming Logic
and Design
- Chapter 4
- Understanding Structure
2Objectives
- 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
3Objectives (continued)
- Use a priming read
- Understand the need for structure
- Recognize structure
- Describe two special structures
- case
- do until
4The Role of Structure in Object-Oriented Methods
- Recall that classes can contain non-static
instance methods such as - public get to retrieve the objects data
- public set to set values for the objects data
- Other public methods to accomplish tasks using
the objects data
5The 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
6The 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
7Drawing 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
8Drawing Flowcharts (continued)
9Understanding 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
10Understanding Unstructured Spaghetti Code
(continued)
11Three Basic Structures of Sequence, Selection,
and Loop
- Structure a basic unit of programming logic
- All programs are composed of 3 structures
- Sequence
- Selection
- Loop
12Three 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
13Three 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
14Three 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
15Building 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
16Building Structured Methods
17Building Structured Methods (continued)
18Building 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
19Building Structured Methods (continued)
20Building 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
21Building Structured Methods (continued)
22Building Structured Methods (continued)
- Each structure has 1 entry and 1 exit point
- Other structures may attach only at an entry or
exit point
23Using 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
24Using a Priming Read (continued)
25Using 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
26Using a Priming Read (continued)
Example Its structured, but doesnt work!
27Using a Priming Read (continued)
- Example It works, but isnt structured!
28Using a Priming Read (continued)
Example It works, and its structured!
29Using a Priming Read (continued)
- public void numberDoubling()
- numeric userNumber
- numeric answer
- while userNumber not 0
- answer userNumber 2
- print answer
- input userNumber
- endwhile
- return
30Understanding 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 todays programming languages are
built expecting structure - Maintenance easier to modify programs later
- Modularity facilitates reuse of modules
31Understanding the Reasons for Structure
(continued)
32Understanding the Reasons for Structure
(continued)
33Recognizing Structure
- Example Is this flowchart segment structured?
- Yes, it has a loop and a selection within the
loop
34Recognizing Structure (continued)
- Example Is this flowchart segment structured?
- No, it is not constructed from the 3 basic
structures
35Recognizing Structure (continued)
- To untangle spaghetti code, pull one strand at
a time and follow it - Lets untangle this
- flowchart ?
36Recognizing Structure (continued)
- Untangling Example Steps 1 2
37Recognizing Structure (continued)
- Untangling Example Step 3 the No side of
Question B
38Recognizing Structure (continued)
- Untangling Example Step 4 the Yes side of
Question B
39Recognizing Structure (continued)
- Untangling Example Step 5 left side of
Question D repeat step C to untangle it
40Recognizing Structure (continued)
- Untangling Example Step 6 right side of
Question D leads to the end
41Recognizing Structure (continued)
42Describing 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
43The 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
44The case Structure (continued)
- Example using nested if statements
45The case Structure (continued)
- Example using a case statement instead
46The 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
47The do until Loop (continued)
48The 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
49The do until Loop (continued)
- Comparison using a do until loop
50The do until Loop (continued)
- Comparison using a while loop
51Summary
- 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
52Summary (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
53Summary (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