Programming Logic and Design Fifth Edition Comprehensive Chapter

  • Slides: 50
Download presentation
Programming Logic and Design Fifth Edition, Comprehensive Chapter 2 Understanding Structure

Programming Logic and Design Fifth Edition, Comprehensive Chapter 2 Understanding Structure

Objectives • Learn about the features of unstructured spaghetti code • Understand the three

Objectives • Learn about the features of unstructured spaghetti code • Understand the three basic structures: sequence, selection, and loop • Use a priming read • Appreciate the need for structure • Recognize structure • Learn about three special structures: case, dowhile, and do-until Programming Logic and Design, Fifth Edition, Comprehensive 2

Understanding Unstructured Spaghetti Code • Spaghetti code: logically snarled program statements – Can be

Understanding Unstructured Spaghetti Code • Spaghetti code: logically snarled program statements – Can be the result of poor program design • Spaghetti code programs often work, but are difficult to read and maintain • Convoluted logic usually requires more code Programming Logic and Design, Fifth Edition, Comprehensive 3

Understanding Unstructured Spaghetti Code (continued) • Example: College Admissions – Admit students who score

Understanding Unstructured Spaghetti Code (continued) • Example: College Admissions – Admit students who score >= 90 on admissions test if upper 75 percent of high-school graduating class – Admit students who score >= 80 on test if upper 50 percent of high-school graduating class – Admit students who score >= 70 on admission test if upper 25 percent of high-school graduating class Programming Logic and Design, Fifth Edition, Comprehensive 4

Understanding Unstructured Spaghetti Code (continued) Figure 2 -2 Spaghetti code example Programming Logic and

Understanding Unstructured Spaghetti Code (continued) Figure 2 -2 Spaghetti code example Programming Logic and Design, Fifth Edition, Comprehensive 5

Understanding the Three Basic Structures • Structure: basic unit of programming logic • Any

Understanding the Three Basic Structures • Structure: basic unit of programming logic • Any program can be constructed from only three basic types of structures – Sequence • Perform actions in order • No branching or skipping any task – Selection (decision) • Ask a question, take one of two actions • Dual-alternative or single-alternative – Loop • Repeat actions based on answer to a question Programming Logic and Design, Fifth Edition, Comprehensive 6

Understanding the Three Basic Structures (continued) • Sequence structure Figure 2 -3 Sequence structure

Understanding the Three Basic Structures (continued) • Sequence structure Figure 2 -3 Sequence structure Programming Logic and Design, Fifth Edition, Comprehensive 7

Understanding the Three Basic Structures (continued) • Selection structure Figure 2 -4 Selection structure

Understanding the Three Basic Structures (continued) • Selection structure Figure 2 -4 Selection structure Programming Logic and Design, Fifth Edition, Comprehensive 8

Understanding the Three Basic Structures (continued) • Dual-alternative if: contains two alternatives if some.

Understanding the Three Basic Structures (continued) • Dual-alternative if: contains two alternatives if some. Condition is true then do one. Process else do the. Other. Process Programming Logic and Design, Fifth Edition, Comprehensive 9

Understanding the Three Basic Structures (continued) • Single-alternative if: contains one alternative Figure 2

Understanding the Three Basic Structures (continued) • Single-alternative if: contains one alternative Figure 2 -5 Single-alternative selection structure Programming Logic and Design, Fifth Edition, Comprehensive 10

Understanding the Three Basic Structures (continued) • Single-alternative if if employee belongs to dental.

Understanding the Three Basic Structures (continued) • Single-alternative if if employee belongs to dental. Plan then deduct $40 from employee. Gross. Pay • Else clause is not required • Null case: situation where nothing is done Programming Logic and Design, Fifth Edition, Comprehensive 11

Understanding the Three Basic Structures (continued) • Loop structure – Repeats a set of

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 Figure 2 -6 Loop structure Programming Logic and Design, Fifth Edition, Comprehensive 12

Understanding the Three Basic Structures (continued) • Loop structure while test. Condition continues to

Understanding the Three Basic Structures (continued) • Loop structure while test. Condition continues to be true do some. Process while quantity. Inventory remains low continue to order. Items Programming Logic and Design, Fifth Edition, Comprehensive 13

Understanding the Three Basic Structures (continued) • All logic problems can be solved using

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 – The endif statement ends an if-then-else structure – The endwhile ends a loop structure Programming Logic and Design, Fifth Edition, Comprehensive 14

Understanding the Three Basic Structures (continued) Figure 2 -7 Structured flowchart and pseudocode Programming

Understanding the Three Basic Structures (continued) Figure 2 -7 Structured flowchart and pseudocode Programming Logic and Design, Fifth Edition, Comprehensive 15

Understanding the Three Basic Structures (continued) • Any individual task or step in a

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, Fifth Edition, Comprehensive 16

Understanding the Three Basic Structures (continued) Figure 2 -8 Flowchart and pseudocode showing a

Understanding the Three Basic Structures (continued) Figure 2 -8 Flowchart and pseudocode showing a sequence nested within a selection Programming Logic and Design, Fifth Edition, Comprehensive 17

Understanding the Three Basic Structures (continued) Figure 2 -9 Selection in a sequence within

Understanding the Three Basic Structures (continued) Figure 2 -9 Selection in a sequence within a selection Programming Logic and Design, Fifth Edition, Comprehensive 18

Understanding the Three Basic Structures (continued) Figure 2 -10 Flowchart and pseudocode for loop

Understanding the Three Basic Structures (continued) Figure 2 -10 Flowchart and pseudocode for loop within selection within sequence within selection Programming Logic and Design, Fifth Edition, Comprehensive 19

Understanding the Three Basic Structures (continued) • Each structure has one entry and one

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 Figure 2 -11 The three structures Programming Logic and Design, Fifth Edition, Comprehensive 20

Using the Priming Read • Priming read (or priming input): – Reads the first

Using the Priming Read • Priming read (or priming input): – 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: – First ask a question – Take action based on the answer – Return to ask the question again Programming Logic and Design, Fifth Edition, Comprehensive 21

Using the Priming Read (continued) • Unstructured loop Figure 2 -12 Unstructured flowchart of

Using the Priming Read (continued) • Unstructured loop Figure 2 -12 Unstructured flowchart of a number-doubling program Programming Logic and Design, Fifth Edition, Comprehensive 22

Using the Priming Read (continued) • Structured but nonfunctional loop Figure 2 -15 Structured,

Using the Priming Read (continued) • Structured but nonfunctional loop Figure 2 -15 Structured, but nonfunctional, flowchart of number-doubling problem Programming Logic and Design, Fifth Edition, Comprehensive 23

Using the Priming Read (continued) • Functional but nonstructured loop Figure 2 -16 Functional,

Using the Priming Read (continued) • Functional but nonstructured loop Figure 2 -16 Functional, but nonstructured, flowchart Programming Logic and Design, Fifth Edition, Comprehensive 24

Using the Priming Read (continued) • Functional and structured loop Figure 2 -17 Functional,

Using the Priming Read (continued) • Functional and structured loop Figure 2 -17 Functional, structured flowchart and pseudocode for the number-doubling problem Programming Logic and Design, Fifth Edition, Comprehensive 25

Using the Priming Read (continued) • Priming read sets up the process so the

Using the Priming Read (continued) • Priming read sets up the process so the loop can be structured • To analyze a flowchart’s structure, try writing pseudocode for it start get input. Number while not eof calculated. Answer = input. Number * 2 print calculated. Answer get input. Number endwhile stop Programming Logic and Design, Fifth Edition, Comprehensive 26

Using the Priming Read (continued) • What is wrong with this design? Figure 2

Using the Priming Read (continued) • What is wrong with this design? Figure 2 -18 Structured but incorrect solution to the number-doubling problem Programming Logic and Design, Fifth Edition, Comprehensive 27

Understanding the Reasons for Structure • • • Provides clarity Professionalism Efficiency Ease of

Understanding the Reasons for Structure • • • Provides clarity Professionalism Efficiency Ease of maintenance Supports modularity Programming Logic and Design, Fifth Edition, Comprehensive 28

Recognizing Structure • Any set of instructions can be expressed in structured format •

Recognizing Structure • Any set of instructions can be expressed in structured format • Any task to which you can apply rules can be expressed logically using sequence, selection, loop • It can be difficult to detect whether a flowchart is structured Programming Logic and Design, Fifth Edition, Comprehensive 29

Recognizing Structure (continued) • Is this flowchart structured? Figure 2 -22 Example 2 Programming

Recognizing Structure (continued) • Is this flowchart structured? Figure 2 -22 Example 2 Programming Logic and Design, Fifth Edition, Comprehensive 30

Recognizing Structure (continued) • Is this flowchart structured? Figure 2 -23 Example 3 Programming

Recognizing Structure (continued) • Is this flowchart structured? Figure 2 -23 Example 3 Programming Logic and Design, Fifth Edition, Comprehensive 31

Recognizing Structure (continued) • Single process like A is part of an unacceptable structure

Recognizing Structure (continued) • Single process like A is part of an unacceptable structure – At least the beginning of a sequence structure Figure 2 -24 Untangling Example 3, first step Programming Logic and Design, Fifth Edition, Comprehensive 32

Recognizing Structure (continued) • B begins a selection structure – Sequences never have decisions

Recognizing Structure (continued) • B begins a selection structure – Sequences never have decisions in them – Logic never returns to B Figure 2 -25 Untangling Example 3, second step Programming Logic and Design, Fifth Edition, Comprehensive 33

Recognizing Structure (continued) • Pull up on the flowline from the left side of

Recognizing Structure (continued) • Pull up on the flowline from the left side of B Figure 2 -26 Untangling Example 3, third step Programming Logic and Design, Fifth Edition, Comprehensive 34

Recognizing Structure (continued) • Next, pull up the flowline on the right side of

Recognizing Structure (continued) • Next, pull up the flowline on the right side of B Figure 2 -27 Untangling Example 3, fourth step Programming Logic and Design, Fifth Edition, Comprehensive 35

Recognizing Structure (continued) • Pull up the flowline on the left side of D

Recognizing Structure (continued) • Pull up the flowline on the left side of D and untangle it from the B selection by repeating C Figure 2 -28 Untangling Example 3, fifth step Programming Logic and Design, Fifth Edition, Comprehensive 36

Recognizing Structure (continued) • Now pull up the flowline on the right side of

Recognizing Structure (continued) • Now pull up the flowline on the right side of D Figure 2 -29 Untangling Example 3, sixth step Programming Logic and Design, Fifth Edition, Comprehensive 37

Recognizing Structure (continued) • Bring together the loose ends of D and of B

Recognizing Structure (continued) • Bring together the loose ends of D and of B Figure 2 -30 Finished flowchart and pseudocode for untangling Example 3 Programming Logic and Design, Fifth Edition, Comprehensive 38

Three Special Structures – CASE, DOWHILE, and DO-UNTIL • Many languages allow three additional

Three Special Structures – CASE, DOWHILE, and DO-UNTIL • Many languages allow three additional structures: – The case structure – The do-while structure – The 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, Fifth Edition, Comprehensive 39

Three Special Structures – Case, Do While, and Do Until (continued) • Using nested

Three Special Structures – Case, Do While, and Do Until (continued) • Using nested if-then-else for multiple alternatives Figure 2 -31 Flowchart and pseudocode of tuition decisions Programming Logic and Design, Fifth Edition, Comprehensive 40

Three Special Structures – Case, Do While, and Do Until (continued) • Using a

Three Special Structures – Case, Do While, and Do Until (continued) • Using a case structure for multiple alternatives Figure 2 -32 Flowchart and pseudocode of case structure Programming Logic and Design, Fifth Edition, Comprehensive 41

Three Special Structures – Case, Do While, and Do Until (continued) • do-while and

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 – Loop statements always used at least once Figure 2 -33 The while loop, which Figure 2 -34 Structure of a do-while or do-until loop, which are posttest loops is a pretest loop Programming Logic and Design, Fifth Edition, Comprehensive 42

Three Special Structures – Case, Do While, and Do Until (continued) • do-while: executes

Three Special Structures – Case, Do While, and Do Until (continued) • do-while: executes as long as the question’s answer is Yes or True • do-until: executes as long as the question’s answer is No or False do wash a dish until all dishes are washed do wash a dish while more dishes remain to be washed Programming Logic and Design, Fifth Edition, Comprehensive 43

Three Special Structures – Case, Do While, and Do Until (continued) • while loop

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 – Posttest loop can be replaced with a sequence followed by a pretest while loop pay a bill while there are more bills to pay a bill endwhile Programming Logic and Design, Fifth Edition, Comprehensive 44

Three Special Structures – Case, Do While, and Do Until (continued) Figure 2 -35

Three Special Structures – Case, Do While, and Do Until (continued) Figure 2 -35 Flowchart and pseudocode for do-while loop Programming Logic and Design, Fifth Edition, Comprehensive 45

Three Special Structures – Case, Do While, and Do Until (continued) Figure 2 -36

Three Special Structures – Case, Do While, and Do Until (continued) Figure 2 -36 Flowchart and pseudocode for sequence followed by while loop Programming Logic and Design, Fifth Edition, Comprehensive 46

Three Special Structures – Case, Do While, and Do Until (continued) • How can

Three Special Structures – Case, Do While, and Do Until (continued) • How can this design be made structured? Figure 2 -37 Unstructured loop Programming Logic and Design, Fifth Edition, Comprehensive 47

Three Special Structures – Case, Do While, and Do Until (continued) • Repeat the

Three Special Structures – Case, Do While, and Do Until (continued) • Repeat the needed step to enforce structure Figure 2 -38 Sequence and structured loop that accomplish the same tasks as Figure 2 -37 Programming Logic and Design, Fifth Edition, Comprehensive 48

Summary • Spaghetti code: snarled program logic • Three basic structures: sequence, selection, loop

Summary • Spaghetti code: snarled program logic • Three basic structures: sequence, selection, loop – Combined by stacking and nesting • Priming read: statement that reads the first input data record • Structured techniques promote clarity, professionalism, efficiency, and modularity • Flowchart can be made structured by untangling Programming Logic and Design, Fifth Edition, Comprehensive 49

Summary (continued) • case structure: questions with multiple alternatives • while loop: a pretest

Summary (continued) • case structure: questions with multiple alternatives • while loop: a pretest loop asks the question first • while loop statements never execute if the answer is No • do-while and do-until loops: posttest loops that ask the question last • 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, Fifth Edition, Comprehensive 50