1 / 122

ITP 100

ITP 100

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

1. ITP 100 ITP 100 SOFTWARE DESIGN UNDERSTANDING STRUCTURE and PROGRAMMING LANGUAGES Programming Logic and Design, Seventh Edition, Comprehensive

2. Programming Logic and DesignComprehensiveby Joyce Farrell Chapter 2 Understanding Structure Programming Logic and Design, Seventh Edition, Comprehensive

3. 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, do-while, and do-until Programming Logic and Design, Fifth Edition, Comprehensive Programming Logic and Design, Seventh Edition, Comprehensive 3

4. Understanding Unstructured (Spaghetti) Code Spaghetticode: 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 Programming Logic and Design, Seventh Edition, Comprehensive 4

5. 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 Programming Logic and Design, Seventh Edition, Comprehensive 5

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

7. Understanding the 3 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) IF-THEN-ELSE Ask a question, take one of two actions Dual-alternative or single-alternative Loop (iteration) Repeat actions based on answer to a question Programming Logic and Design, Fifth Edition, Comprehensive Programming Logic and Design, Seventh Edition, Comprehensive 7

8. Understanding the Three Basic Control Structures (cont’d) Sequence structure Figure 2-3 Sequence structure Programming Logic and Design, Fifth Edition, Comprehensive Programming Logic and Design, Seventh Edition, Comprehensive 8

9. Understanding the Three Basic Structures (continued) Selection structure (IF-THEN-ELSE) Figure 2-4 Selection structure Programming Logic and Design, Fifth Edition, Comprehensive Programming Logic and Design, Seventh Edition, Comprehensive 9

10. Understanding the Three Basic Structures (continued) Dual-alternative if: contains two alternatives if someCondition is true then do oneProcess else do theOtherProcess Programming Logic and Design, Fifth Edition, Comprehensive Programming Logic and Design, Seventh Edition, Comprehensive 10

11. 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 Programming Logic and Design, Seventh Edition, Comprehensive 11

12. Understanding the Three Basic Structures (continued) Single-alternative if Else clause is not required Null case: situation where nothing is done if employee belongs to dentalPlan then deduct \$40 from employeeGrossPay Programming Logic and Design, Fifth Edition, Comprehensive Programming Logic and Design, Seventh Edition, Comprehensive 12

13. Understanding the Three Basic Structures (continued) Loop structure (repetition or iteration) 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 Programming Logic and Design, Seventh Edition, Comprehensive 13

14. Understanding the Three Basic Structures (continued) Loop structure while testCondition continues to be true do someProcess while quantityInInventory remains low continue to orderItems Programming Logic and Design, Fifth Edition, Comprehensive Programming Logic and Design, Seventh Edition, Comprehensive 14

15. 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 Theendifstatement ends an if-then-else structure Theendwhile ends a loop structure Programming Logic and Design, Fifth Edition, Comprehensive Programming Logic and Design, Seventh Edition, Comprehensive 15

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

17. 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 Programming Logic and Design, Seventh Edition, Comprehensive 17

18. 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 Programming Logic and Design, Seventh Edition, Comprehensive 18

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

20. 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 Programming Logic and Design, Seventh Edition, Comprehensive 20

21. 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 Programming Logic and Design, Seventh Edition, Comprehensive 21

22. Using the Priming Read Priming read (or priming input): Reads the first input data record before the loop The loop that follows 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 Programming Logic and Design, Seventh Edition, Comprehensive 22

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

24. 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 Programming Logic and Design, Seventh Edition, Comprehensive 24

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

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

27. 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 DoubleNumber read inputNumber while not at eof calculatedAnswer = inputNumber * 2 print calculatedAnswer read inputNumber end while End DoubleNumber Programming Logic and Design, Fifth Edition, Comprehensive Programming Logic and Design, Seventh Edition, Comprehensive 27

28. Using the Priming Read (continued) What is wrong with this design? (It should read first, then check for an EOF) Figure 2-18 Structured but incorrect solution to the number-doubling problem Programming Logic and Design, Fifth Edition, Comprehensive Programming Logic and Design, Seventh Edition, Comprehensive 28

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

30. 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 Programming Logic and Design, Seventh Edition, Comprehensive 30

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

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

33. 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 Programming Logic and Design, Seventh Edition, Comprehensive 33

34. 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 Programming Logic and Design, Seventh Edition, Comprehensive 34

35. 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 Programming Logic and Design, Seventh Edition, Comprehensive 35

36. 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 Programming Logic and Design, Seventh Edition, Comprehensive 36

37. 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 Programming Logic and Design, Seventh Edition, Comprehensive 37

38. 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 Programming Logic and Design, Seventh Edition, Comprehensive 38

39. 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 Programming Logic and Design, Seventh Edition, Comprehensive 39

40. Three Special Structures – CASE, DO-WHILE, and DO-UNTIL Many languages allow three additional structures: Thecase 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 Programming Logic and Design, Seventh Edition, Comprehensive 40

41. Three Special Structures – Case, DoWhile, and DoUntil (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 Programming Logic and Design, Seventh Edition, Comprehensive 41

42. Three Special Structures – Case, DoWhile, and DoUntil (continued) Using a case structure for multiple alternatives Figure 2-32 Flowchart and pseudocode of case structure Programming Logic and Design, Fifth Edition, Comprehensive Programming Logic and Design, Seventh Edition, Comprehensive 42

43. Three Special Structures – Case, DoWhile, and DoUntil (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 is a pretest loop Figure 2-34 Structure of a do-while or do-until loop, which are posttest loops Programming Logic and Design, Fifth Edition, Comprehensive Programming Logic and Design, Seventh Edition, Comprehensive 43

44. Three Special Structures – Case, DoWhile, and DoUntil (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 Programming Logic and Design, Seventh Edition, Comprehensive 44

45. Three Special Structures – Case, DoWhile, and DoUntil (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 pay a bill endwhile Programming Logic and Design, Fifth Edition, Comprehensive Programming Logic and Design, Seventh Edition, Comprehensive 45

46. Three Special Structures – Case, DoWhile, and DoUntil (continued) Figure 2-35 Flowchart and pseudocode for do-while loop Programming Logic and Design, Fifth Edition, Comprehensive Programming Logic and Design, Seventh Edition, Comprehensive 46

47. Three Special Structures – Case, DoWhile, and DoUntil (continued) Figure 2-36 Flowchart and pseudocode for sequence followed by while loop Programming Logic and Design, Fifth Edition, Comprehensive Programming Logic and Design, Seventh Edition, Comprehensive 47

48. Three Special Structures – Case, DoWhile, and DoUntil (continued) How can this design be made structured? Figure 2-37 Unstructured loop Programming Logic and Design, Fifth Edition, Comprehensive Programming Logic and Design, Seventh Edition, Comprehensive 48

49. Three Special Structures – Case, DoWhile, and DoUntil (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 Programming Logic and Design, Seventh Edition, Comprehensive 49

50. 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 Programming Logic and Design, Seventh Edition, Comprehensive 50