Presentation is loading. Please wait.

Presentation is loading. Please wait.

© 2010 Pearson Addison-Wesley. All rights reserved. Addison Wesley is an imprint of Chapter 5: Repetition and Loop Statements Problem Solving & Program.

Similar presentations


Presentation on theme: "© 2010 Pearson Addison-Wesley. All rights reserved. Addison Wesley is an imprint of Chapter 5: Repetition and Loop Statements Problem Solving & Program."— Presentation transcript:

1 © 2010 Pearson Addison-Wesley. All rights reserved. Addison Wesley is an imprint of Chapter 5: Repetition and Loop Statements Problem Solving & Program Design in C Sixth Edition By Jeri R. Hanly & Elliot B. Koffman

2 1-2 © 2010 Pearson Addison-Wesley. All rights reserved. 5-2 Introduction to Repetition Structures A repetition structure causes a statement or set of statements to execute repeatedly Allow a programmer to avoid duplicate code –Duplicate code makes a program large –Write a long sequence of statements is time consuming –If part of the duplicate code has to be corrected or changed, then the change has to be done many times

3 1-3 © 2010 Pearson Addison-Wesley. All rights reserved. 5-3 Condition-Controlled Loops While Loop –While a condition is true, do some task Do-While Loop –Do some task, while condition is true Do-Until Loop –Do some task, while a condition is false (or until its true) With all loops, be careful not to create infinite loops – always provide a way to break out

4 1-4 © 2010 Pearson Addison-Wesley. All rights reserved. 5-4 Condition-Controlled Loops The While Loop – pretest loop While condition Statement End While Figure 5-1 The logic of a While loop

5 1-5 © 2010 Pearson Addison-Wesley. All rights reserved. 5-5 Condition-Controlled Loops Working with Modules and Loops To run a program multiple times, modules can be put within a loop Figure 5-5 The main module of Program 5-3

6 1-6 © 2010 Pearson Addison-Wesley. All rights reserved. 5-6 Condition-Controlled Loops The Do-While Loop – posttest loop Do Statement While condition Figure 5-8 Flowchart for the main module in Program 5-4

7 1-7 © 2010 Pearson Addison-Wesley. All rights reserved. 5-7 Condition-Controlled Loops The Do-Until Loop Loop iterates until a condition is true, but not all languages support this type of loop Figure 5-10 The logic of a Do-Until loop

8 1-8 © 2010 Pearson Addison-Wesley. All rights reserved. 5-8 Count-Controlled Loops A count-controlled loop iterates a specific number of times A for loop is best used for this situation For counterVariable = startingValue to maxValue statement End for There is an Initialization, Test, and Increment expression that controls the loop

9 1-9 © 2010 Pearson Addison-Wesley. All rights reserved. 5-9 Count-Controlled Loops For loops can also increment by more than one, count backwards by decrementing, or allow the user to control the number of interactions The for loop in action Figure 5-14 Flowchart for Program 5-8

10 1-10 © 2010 Pearson Addison-Wesley. All rights reserved. 5-10 Count-Controlled Loops General loop concerns Do not forget to initialize the loop control variable Do not forget to modify the loop control variable Many loops are interchangeable, but generally –Use while loop when loop may not have to process –Use do while when it must process at least once –Use for loop with specific number of iterations

11 1-11 © 2010 Pearson Addison-Wesley. All rights reserved. 5-11 5.4 Calculating a Running Total A running total is a sum of number that accumul ates with each iteration of a loop

12 1-12 © 2010 Pearson Addison-Wesley. All rights reserved. 5-12 Sentinels A sentinel is a special value that marks the end of a list of values, used as stop values for loops How it can be done –Ask the user at the end of each loop iteration, if there is another value to process –Ask the user at the beginning of the loop, how many times the loop should process

13 1-13 © 2010 Pearson Addison-Wesley. All rights reserved. 5-13 Sentinels – Controlled loop 1.Initialize sum to zero. 2.Get first Score 3.While score is not the sentinel a.Add score to sum b.Get the next score #define SENTINEL -99 printf(Enter first score (or %d to quit),SENTINEL); scanf(%d, &score); while (score != SENTINEL){ sum += score; printf(Enter next score (%d to quit), SENTINEL); scanf(%d, &score); } printf(\nSum of exam scores is %d\n, sum); printf(Enter first score (or %d to quit),SENTINEL); for ( scanf(%d, &score); score != SENTINEL; scanf(%d, &score)) { sum += score; printf(Enter next score (%d to quit), SENTINEL); }

14 1-14 © 2010 Pearson Addison-Wesley. All rights reserved. 5-14 Nested Loops All loops can be nested, that is, a loop inside of a loop Figure 5-21 Flowchart for a clock simulator

15 1-15 © 2010 Pearson Addison-Wesley. All rights reserved. 1-15 Figure 5.1 Flow Diagram of Loop Choice Process

16 1-16 © 2010 Pearson Addison-Wesley. All rights reserved. 1-16 Figure 5.2 Program Fragment with a Loop

17 1-17 © 2010 Pearson Addison-Wesley. All rights reserved. 1-17 Figure 5.3 Flowchart for a while Loop

18 1-18 © 2010 Pearson Addison-Wesley. All rights reserved. 1-18 Figure 5.4 Program to Compute Company Payroll

19 1-19 © 2010 Pearson Addison-Wesley. All rights reserved. 1-19 Figure 5.4 Program to Compute Company Payroll

20 1-20 © 2010 Pearson Addison-Wesley. All rights reserved. 1-20 Figure 5.5 Using a for Statement in a Counting Loop

21 1-21 © 2010 Pearson Addison-Wesley. All rights reserved. 1-21 *Multiplication Table of 9*/ /* Displays the 9s Table */ #include /* printf, scanf definitions */ #define MULT_NUM 9 int main(void) { int num, answer = 0; /* Display 9s Table */ printf("The 9's Multiplication Table \n\n"); for (num = 0; num < 10; ++num) { answer = num * MULT_NUM; printf("%d times %d = %d \n", num, MULT_NUM, answer); } printf(" \n"); return (0); }

22 1-22 © 2010 Pearson Addison-Wesley. All rights reserved. 1-22 /*Multiplication Tables*/ /* Displays all the tables */ #include /* printf, scanf definitions */ int main(void) { int num, mult_num, answer = 0; /* Display 9s Table */ printf("The Multiplication Tables \n\n"); for (num = 0; num < 10; ++num) { for(mult_num = 0; mult_num < 10; ++mult_num){ answer = num * mult_num; printf("%d times %d = %d \n", num, mult_num, answer); } printf(" \n"); } printf(" \n"); return (0); }

23 1-23 © 2010 Pearson Addison-Wesley. All rights reserved. 1-23 Figure 5.6 Comparison of Prefix and Postfix Increments

24 1-24 © 2010 Pearson Addison-Wesley. All rights reserved. 1-24 Figure 5.7 Function to Compute Factorial

25 1-25 © 2010 Pearson Addison-Wesley. All rights reserved. 1-25 Figure 5.8 Displaying a Celsius-to-Fahrenheit Conversion Table

26 1-26 © 2010 Pearson Addison-Wesley. All rights reserved. 1-26 Figure 5.9 Program to Monitor Gasoline Storage Tank

27 1-27 © 2010 Pearson Addison-Wesley. All rights reserved. 1-27 Figure 5.9 Program to Monitor Gasoline Storage Tank

28 1-28 © 2010 Pearson Addison-Wesley. All rights reserved. 1-28 Figure 5.9 Program to Monitor Gasoline Storage Tank

29 1-29 © 2010 Pearson Addison-Wesley. All rights reserved. 1-29 Figure 5.10 Sentinel-Controlled while Loop

30 1-30 © 2010 Pearson Addison-Wesley. All rights reserved. 1-30 Figure 5.11 Batch Version of Sum of Exam Scores Program

31 1-31 © 2010 Pearson Addison-Wesley. All rights reserved. 1-31 Figure 5.12 Program to Process Bald Eagle Sightings for a Year

32 1-32 © 2010 Pearson Addison-Wesley. All rights reserved. 1-32 Figure 5.12 Program to Process Bald Eagle Sightings for a Year

33 1-33 © 2010 Pearson Addison-Wesley. All rights reserved. 1-33 Figure 5.13 Nested Counting Loop Program

34 1-34 © 2010 Pearson Addison-Wesley. All rights reserved. 1-34 Figure 5.14 Validating Input Using do-while Statement

35 1-35 © 2010 Pearson Addison-Wesley. All rights reserved. 1-35 Figure 5.15 Structure Chart for Computing Solar Collecting Area Size

36 1-36 © 2010 Pearson Addison-Wesley. All rights reserved. 1-36 Figure 5.16 Program to Approximate Solar Collecting Area Size

37 1-37 © 2010 Pearson Addison-Wesley. All rights reserved. 1-37 Figure 5.16 Program to Approximate Solar Collecting Area Size

38 1-38 © 2010 Pearson Addison-Wesley. All rights reserved. 1-38 Figure 5.16 Program to Approximate Solar Collecting Area Size

39 1-39 © 2010 Pearson Addison-Wesley. All rights reserved. 1-39 Figure 5.16 Program to Approximate Solar Collecting Area Size


Download ppt "© 2010 Pearson Addison-Wesley. All rights reserved. Addison Wesley is an imprint of Chapter 5: Repetition and Loop Statements Problem Solving & Program."

Similar presentations


Ads by Google