1 / 40

Programming Logic and Design Seventh Edition

Programming Logic and Design Seventh Edition. Chapter 5 Looping. Objectives. In this chapter, you will learn about: The advantages of looping Using a loop control variable (lcv) Nested loops Avoiding common loop mistakes Using a for loop Common loop applications

weldon
Download Presentation

Programming Logic and Design Seventh Edition

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Programming Logic and DesignSeventh Edition Chapter 5 Looping

  2. Objectives • In this chapter, you will learn about: • The advantages of looping • Using a loop control variable (lcv) • Nested loops • Avoiding common loop mistakes • Using a for loop • Common loop applications • Loop control structure in RAPTOR • RAPTOR Intermediate mode: user-defined procedure

  3. Understanding the Advantages of Looping • Looping makes computer programming efficient and worthwhile • Write one set of instructions to operate on multiple, separate sets of data • Loop: • control structure that repeats a set of actions (loop body) while some condition remains true or until some condition becomes true.

  4. Loop Control Structure in RAPTOR In RAPTOR: you repeat the body of the loop UNTIL the condition evaluates to true. RAPTOR lets you structure your loop as one of three types: Pre-Test loop ( while / for ) Mid-Test loopillegal in our book Post-Test loop ( do … while ) Our book only shows us pre-test loops. RAPTOR Loop Symbol Note: In most languages (including Java) you repeat the loop bodywhile the condition remains true

  5. Understanding the Advantages of Looping (continued) Figure 5-1 The loop structure (pre-test loop) Our book calls this a while loop

  6. LoopingDefinite and Indefinite Loops Looping may be achieved using either a definite loop or an indefinite loop • A definite loop is also referred to as a counter-controlled loop • An indefinite loop is also referred to as a sentinel-controlled loop • For a definite loop, you know when you are creating the loop how many times the loop body should be executed • For an indefinite loop, the number of times the body of the loop should be executed can be different for each run of a program

  7. Using a Counter-Controlled while loop • As long as a boolean expression (the condition) remains true, the while loop’s body executes • Essential Steps: • Create and initialize a loop control variable (lcv) • Determine the upper or lower limit for the lcv • Determine the step (increment or decrement) for the lcv • Determine the boolean expression (condition) that will control the loop • Each iteration of the loop, update the lcv • Note: for a counter-controlled loop, a loop control variable is also referred to as a counter

  8. Using a Definite (Counter-Controlled) Loop Must the condition be true or false for the loop body to be executed? In RAPTOR, what would the condition be? lcv is: count Figure 5-3 A counted while loop that outputs “Hello” four times

  9. Using an Indefinite Loop (Sentinel-Controlled) with a Sentinel Value • Indefinite loop • May be performed a different number of times each time the program executes • Essential steps: • Identify a sentinel value (value outside the range of valid input data) or sentinel module expression (such as RAPTOR's End_of_Input procedure) • Determine the boolean expression (condition) to be used to exit the loop • name = QUIT //where QUIT is a named constant sentinel value • End_of_input //RAPTOR sentinel module expression • Java  hasNext( ) //Java method to evaluate end of input condition • Each iteration of the loop get a new input value to compare to the sentinel value or evaluate the sentinel module expression

  10. Figure 5-4 An indefinite while loop that displays “Hello” as long as the user wants to continue

  11. Understanding the Loop in a Program’s Mainline Logic • Three steps that should occur in every properly functioning loop • Initialize the variable that will control the loop ( sentinel or counter value ) • Test the loop control variable ( lcv ) to determine whether the loop body executes • Update (aka alter) the loop control variable

  12. Nested Loops • Nested loops: • loop within another loop • Outer loop: • loop that contains the other loop • Inner loop: • loop that is contained • Needed when values of two (or more) variables repeat to produce every combination of values

  13. Figure 5-8 Flowchart and pseudocode for AnswerSheet program

  14. Common Loop Mistakes • Neglecting to initialize the loop control variable • Neglecting to alter the loop control variable • Using the wrong comparison with the loop control variable • Including statements inside the loop that belong outside the loop

  15. Avoiding Common Loop Mistakes (continued) • Mistake: • neglecting to initialize the loop control variable • Example: get name statement removed • Value of name unknown or garbage • Program may end before any labels printed • 100 labels printed with an invalid name

  16. Figure 5-10Incorrect logic for greeting program because the loop control variable initialization is missing

  17. Avoiding Common Loop Mistakes (continued) • Mistake: • neglecting to alter the loop control variable • Example: • Remove get name instruction from outer loop • User never enters a name after the first one • Inner loop executes infinitely • [ Always … ] incorrect to create a loop that cannot terminate

  18. Figure 5-10 Incorrect logic for greeting program because the loop control variable is not altered Programming Logic & Design, Sixth Edition

  19. Avoiding Common Loop Mistakes (continued) • Mistake: • using the wrong comparison with the loop control variable • Programmers must use correct comparison • Seriousness depends on actions performed within a loop • Overcharge insurance customer by one month • Overbook a flight on airline application • Dispense extra medication to patients in pharmacy

  20. Programming Logic & Design, Sixth Edition Figure 5-12 Incorrect logic for greeting program because the wrong test is made with the loop control variable

  21. Avoiding Common Loop Mistakes (continued) • Mistake: • including statements inside the loop that belong outside the loop • Example: • discount every item by 30 percent • Inefficient because the same value is calculated 100 separate times for each price that is entered • Move outside loop for efficiency

  22. Figure 5-13Inefficient way to produce 100 discount price stickers for differently priced items

  23. Figure 5-14Improved discount sticker-making program

  24. Using a forLoop • for statement or for loop is a definite loop • Puts all of the loop control expressions in the for loop header • Initialize • Test • Update • Takes the form: [initial, final] for loopControlVariable = initialValue to finalValue [step stepValue] do something endfor

  25. Using a forLoop (continued) • Example pseudocode for count = 0 to 3 step 1 [0,3] output “Hello” end for • Initializescount to 0 • Checks count against the limit value 3 (test) • If evaluation is true, for statement body prints the label • Increases count by 1 (update)

  26. Using a for Loop (continued) • while statement could be used in place of for statement • Step value: • number used to increase (decrease) a loop control variable on each pass through a loop • Programming languages can: • Require a statement that indicates the step value • Have a step value default of 1 • Specify step value when each pass through the loop changes the loop control variable by a value other than 1

  27. Common Loop Applications • Using a loop to count and accumulate totals • Examples • Business reports often include totals • List of real estate sold and total value • Count of number of records processed • Counters and Accumulators: • Counter usually is incremented by one each iteration • Accumulator has some value added to it each iteration • Running sum

  28. Common Loop Applications (continued) • Accumulate total real estate prices • Declare numeric variable at beginning • Initialize the accumulator to 0 • Read each transaction’s data record • Add its value to accumulator variable • Keep reading records until eof is encountered • Variables exist only for the life of the application • Run the application a second time; variables may occupy different memory location

  29. Common Loop Applications (continued) 5 records processed Figure 5-16 Month-end real estate sales report

  30. Figure 5-17 Flowchart and pseudocode for real estate sales report program

  31. Common Loop Applications (continued) • Use a loop to validate data • When prompting a user for data, no guarantee that data is valid • Validate data: • make sure data falls in acceptable ranges • Example: user enters birth month • If number is less than 1 or greater than 12 • Display error message and stop the program • Assign default value for the month • Reprompt the user for valid input

  32. Figure 5-18 Reprompting a user once after an invalid month is entered Programming Logic & Design, Sixth Edition

  33. Figure 5-19 Reprompting a user using a loop after an invalid month is entered Programming Logic & Design, Sixth Edition

  34. Common Loop Applications (continued) • Limiting a reprompting loop • Reprompting can be frustrating to a user if it continues indefinitely • Maintain count of the number of reprompts • Forcing a data item means: • Override incorrect data by setting the variable to a specific value

  35. Common Loop Applications (continued) • Validating a data type • Validating data requires a variety of methods • isNumeric() or similar method • Provided with the language translator you use to write your programs • Black box • isChar() or isWhitespace() • Accept user data as a string • Use a method to convert to correct to data type

  36. Common Loop Applications (continued) Figure 5-21 Checking data for correct type

  37. Common Loop Applications (continued) • Validating reasonableness and consistency of data • Many data items can be checked for reasonableness • Good defensive programs try to foresee all possible inconsistencies and errors

  38. Summary • Use a loop to: • write one set of instructions that operates on multiple, separate sets of data • Three steps must occur in every loop • Initialize loop control variable • Compare variable to some value • Alter the variable that controls the loop • Nested loops: • loops within loops • Nested loops maintain two individual loop control variables • Alter each at the appropriate time

  39. Summary (continued) • Common mistakes made by programmers • Neglecting to initialize loop control variable • Neglecting to alter loop control variable • Using wrong comparison with loop control variable • Including statements inside the loop that belong outside the loop • Most computer languages support a for statement • for loop used with definite loop • number of iterations is known • while loop used with indefinite loop • number of iterations is not known

  40. Summary (continued) • for loop expressions: • Initialize • Test • Update • Accumulator • variable that accumulates values creating a running sum • Counter • Variable used to keep track of the number of occurrences of something (records, customers processed, etc.) • Loops are often used to ensure user data is valid

More Related