```Programming Logic and
Design
Fourth Edition, Introductory
Chapter 2
Understanding Structure
Objectives
• Describe the features of unstructured spaghetti code
• Describe the three basic structures – sequence,
selection, and loop
• Appreciate the need for structure
• Recognize structure
Programming Logic and Design, Introductory, Fourth Edition
2
Objectives (continued)
• Describe three special structures – case, do-while,
and do-until
Programming Logic and Design, Introductory, Fourth Edition
3
Understanding Unstructured
Spaghetti Code
• Spaghetti code – logically snarled program
statements
• Can be the result of poor program design
Programming Logic and Design, Introductory, Fourth Edition
4
Understanding Unstructured
Spaghetti Code (continued)
Programming Logic and Design, Introductory, Fourth Edition
5
Understanding Unstructured
Spaghetti Code (continued)
• Spaghetti code programs often work, but are difficult
• Convoluted logic usually requires more code
Programming Logic and Design, Introductory, Fourth Edition
6
Understanding the Three Basic
Structures
• Structure: a basic unit of programming logic
• Any program can be constructed from only three
basic types of structures
– Sequence
– Selection
– Loop
Programming Logic and Design, Introductory, Fourth Edition
7
Understanding the Three Basic
Structures (continued)
• Sequence structure
– A set of instructions, performed sequentially with no
branching
Programming Logic and Design, Introductory, Fourth Edition
8
Understanding the Three Basic
Structures (continued)
• Selection structure
– Asks a question, then takes one of two possible
courses of action based on the answer
– Also called a decision structure or an if-then-else
Programming Logic and Design, Introductory, Fourth Edition
9
Understanding the Three Basic
Structures (continued)
• Dual-alternative if: contains two alternatives
Programming Logic and Design, Introductory, Fourth Edition
10
Understanding the Three Basic
Structures (continued)
•
Single-alternative if: contains one alternative
Programming Logic and Design, Introductory, Fourth Edition
11
Understanding the Three Basic
Structures (continued)
•
Single-alternative if
•
•
Else clause is not required
Null case: situation where nothing is done
Programming Logic and Design, Introductory, Fourth Edition
12
Understanding the Three Basic
Structures (continued)
• Loop structure
– Repeats a set of actions based on the answer to a
question
– Also called repetition or iteration
– Question is asked first in the most common form of loop
Programming Logic and Design, Introductory, Fourth Edition
13
Understanding the Three Basic
Structures (continued)
• Loop structure
Programming Logic and Design, Introductory, Fourth Edition
14
Understanding the Three Basic
Structures (continued)
• All logic problems can be solved using only these
three structures
• Structures can be combined in an infinite number of
ways
• Stacking: attaching structures end-to-end
• End-structure statements
– Indicate the end of a structure
– endif: ends an if-then-else structure
– endwhile: ends a loop structure
Programming Logic and Design, Introductory, Fourth Edition
15
Understanding the Three Basic
Structures (continued)
Programming Logic and Design, Introductory, Fourth Edition
16
Understanding the Three Basic
Structures (continued)
• Any individual task or step in a structure can be
replaced by a structure
• Nesting: placing one structure within another
• Indent the nested structure’s statements
• Block: group of statements that execute as a
single unit
Programming Logic and Design, Introductory, Fourth Edition
17
Understanding the Three Basic
Structures (continued)
Programming Logic and Design, Introductory, Fourth Edition
18
Understanding the Three Basic
Structures (continued)
Programming Logic and Design, Introductory, Fourth Edition
19
Understanding the Three Basic
Structures (continued)
Programming Logic and Design, Introductory, Fourth Edition
20
Understanding the Three Basic
Structures (continued)
• Each structure has one entry and one exit point
• Structures attach to others only at entry or exit points
Programming Logic and Design, Introductory, Fourth Edition
21
•
– Reads the first input data record
– Outside the loop that reads the rest of the records
– Helps keep the program structured
•
•
Analyze a flowchart for structure one step at a time
Watch for unstructured loops that do not follow this
order:
2. Take action based on the answer
Programming Logic and Design, Introductory, Fourth Edition
22
• Unstructured loop:
Programming Logic and Design, Introductory, Fourth Edition
23
• Structured but nonfunctional loop
Programming Logic and Design, Introductory, Fourth Edition
24
• Functional but non-structured loop
Programming Logic and Design, Introductory, Fourth Edition
25
• Functional and structured loop
Programming Logic and Design, Introductory, Fourth Edition
26
• Priming read sets up the process so the loop can be
structured
• To analyze a flowchart’s structure, try writing
pseudocode for it
Programming Logic and Design, Introductory, Fourth Edition
27
• What is wrong with this design?
Programming Logic and Design, Introductory, Fourth Edition
28
Understanding the Reasons for
Structure
–
–
–
–
–
Provides clarity
Professionalism
Efficiency
Ease of maintenance
Supports modularity
Programming Logic and Design, Introductory, Fourth Edition
29
Understanding the Reasons for
Structure (continued)
Programming Logic and Design, Introductory, Fourth Edition
30
Understanding the Reasons for
Structure (continued)
Programming Logic and Design, Introductory, Fourth Edition
31
Recognizing Structure
• Any set of instructions can be expressed in structured
format
• Is this flowchart structured?
Programming Logic and Design, Introductory, Fourth Edition
32
Recognizing Structure (continued)
• Is this flowchart structured?
Programming Logic and Design, Introductory, Fourth Edition
33
Recognizing Structure (continued)
• To make it structured, pull each symbol out and rework
• B begins a selection structure
Programming Logic and Design, Introductory, Fourth Edition
34
Recognizing Structure (continued)
• Pull up on the flowline from the left side of B
Programming Logic and Design, Introductory, Fourth Edition
35
Recognizing Structure (continued)
• Next, pull up the flowline on the right side of B
Programming Logic and Design, Introductory, Fourth Edition
36
Recognizing Structure (continued)
• Pull up the flowline on the left side of D and untangle
it from the B selection by repeating C
Programming Logic and Design, Introductory, Fourth Edition
37
Recognizing Structure (continued)
• Now pull up the flowline on the right side of D
Programming Logic and Design, Introductory, Fourth Edition
38
Recognizing Structure (continued)
• Bring together the loose ends of D and of B
Programming Logic and Design, Introductory, Fourth Edition
39
Three Special Structures – Case, Do
While, and Do Until
• Many languages allow three additional structures:
– case structure
– do-while structure
– do-until structure
• Case Structure:
– Decisions with more than two alternatives
– Tests a variable against a series of values and takes
action based on a match
– Nested if-then-else statements will do what a
case structure does
Programming Logic and Design, Introductory, Fourth Edition
40
Three Special Structures – Case, Do
While, and Do Until (continued)
• Using nested if-then-else for multiple alternatives
Programming Logic and Design, Introductory, Fourth Edition
41
Three Special Structures – Case, Do
While, and Do Until (continued)
• Using a case structure for multiple alternatives
Programming Logic and Design, Introductory, Fourth Edition
42
Three Special Structures – Case, Do
While, and Do Until (continued)
• do-while and do-until loops
– Question is asked at the end of the loop structure
– Ensures that the loop statements are always used at
least once
Programming Logic and Design, Introductory, Fourth Edition
43
Three Special Structures – Case, Do
While, and Do Until (continued)
• do-while loop executes as long as the question’s
• do-until loop executes as long as the question’s
answer is No or False (until it becomes Yes or
True)
Programming Logic and Design, Introductory, Fourth Edition
44
Three Special Structures – Case, Do
While, and Do Until (continued)
• while loop with question at beginning is called a
pretest loop
• do-while and do-until with question at end are
called posttest loops
• A posttest loop can be replaced with a sequence
followed by a pretest while loop
Programming Logic and Design, Introductory, Fourth Edition
45
Three Special Structures – Case, Do
While, and Do Until (continued)
Programming Logic and Design, Introductory, Fourth Edition
46
Three Special Structures – Case, Do
While, and Do Until (continued)
Programming Logic and Design, Introductory, Fourth Edition
47
Three Special Structures – Case, Do
While, and Do Until (continued)
• How can this design be made structured?
Programming Logic and Design, Introductory, Fourth Edition
48
Three Special Structures – Case, Do
While, and Do Until (continued)
• Repeat the needed step to enforce structure
Programming Logic and Design, Introductory, Fourth Edition
49
Summary
• Spaghetti code: snarled program logic
• Three basic structures: sequence, selection, loop
• These three can be combined by stacking and
nesting
data record
• Structured techniques promote clarity,
professionalism, efficiency, and modularity
Programming Logic and Design, Introductory, Fourth Edition
50
Summary (continued)
• Flowchart can be made structured by untangling
• case structure: handles questions with multiple
alternatives
• while loop: a pretest loop that asks the question
first
• while loop statements may never be executed if
• do-while and do-until loops: posttest loops
Programming Logic and Design, Introductory, Fourth Edition
51
Summary (continued)
• do-while and do-until loop statements are
always executed at least once
• Posttest loop can be replaced by a sequence
followed by a while loop
Programming Logic and Design, Introductory, Fourth Edition
52
```