1 Chapter 6 Looping Dale/Weems/Headington. 2 l Physical order vs. logical order l A loop is a repetition control structure based on a condition. l it.

Slides:



Advertisements
Similar presentations
Nested Loops. Nested loops Just as a selection structure can be nested within another selection structure (or within a loop), a loop can also be nested.
Advertisements

CSE 1301 Lecture 6B More Repetition Figures from Lewis, “C# Software Solutions”, Addison Wesley Briana B. Morrison.
Computer Science 1620 Loops.
A loop is a repetition control structure. it causes a single statement or block to be executed repeatedly What is a loop?
Chapter 5: Control Structures II (Repetition)
Chapter 6 - Repetition. Introduction u Many applications require certain operations to be carried out more than once. Such situations require repetition.
1 Lecture 15 Chapter 6 Looping Dale/Weems/Headington.
Chapter 6 Loops and Files. 2 Knowledge Goals Understand the semantics of while loop Understand when a count-controlled loop is appropriate Understand.
1 Lecture 16 Chapter 6 Looping Dale/Weems/Headington.
Chapter 5: Loops and Files.
Loops Repeat after me …. Loops A loop is a control structure in which a statement or set of statements execute repeatedly How many times the statements.
1 Lecture 14 Chapter 6 Looping Dale/Weems/Headington.
Chapter 6 Looping Dale/Weems. 2 Chapter 6 Topics l While Statement Syntax l Count-Controlled Loops l Event-Controlled Loops l Using the End-of-File Condition.
1 Chapter 5 File Objects and Looping Statements. 2 Chapter 9 Topics l Using Data Files for I/O l While Statement Syntax l Count-Controlled Loops l Event-Controlled.
COMP 14 Introduction to Programming Miguel A. Otaduy May 20, 2004.
CS 1 Lesson 5 Loops and Files CS 1 -- John Cole.
1 Chapter 5 File Objects and Looping Statements (Some slides have been modified from their original format)
CHAPTER 5 CONTROL STRUCTURES II (Repetition). In this chapter, you will:  Learn about repetition (looping) control structures  Explore how to construct.
Control Structures - Repetition Chapter 5 2 Chapter Topics Why Is Repetition Needed The Repetition Structure Counter Controlled Loops Sentinel Controlled.
Chapter 5: Control Structures II (Repetition)
C++ Programming: Program Design Including Data Structures, Fourth Edition Chapter 5: Control Structures II (Repetition)
Chapter 6 Looping.
Chapter 5: Control Structures II (Repetition)
CHAPTER 5: CONTROL STRUCTURES II INSTRUCTOR: MOHAMMAD MOJADDAM.
EGR 2261 Unit 5 Control Structures II: Repetition  Read Malik, Chapter 5.  Homework #5 and Lab #5 due next week.  Quiz next week.
1 What is a loop? A loop is a repetition control structure that causes a single statement or block to be executed repeatedly Loops.
1 Chapter 9 Additional Control Structures Dale/Weems/Headington.
Quiz Answers 1. Show the output from the following code fragment: int a = 5, b = 2, c = 3; cout
Additional Control Structures. Chapter 9 Topics Switch Statement for Multi-way Branching Do-While Statement for Looping For Statement for Looping Using.
1 Chapter 9 Additional Control Structures Dale/Weems.
Chapter 5: Control Structures II (Repetition). Objectives In this chapter, you will: – Learn about repetition (looping) control structures – Learn how.
Chapter 7 Additional Control Structures. 2 2 void GetYesOrNo (/* out */ char& response) // Inputs a character from the user // Postcondition: response.
Chapter 5 Loops. Overview u Loop Statement Syntax  Loop Statement Structure: while, for, do-while u Count-Controlled Loops u Nested Loops u Loop Testing.
Control Structures II (Repetition). Objectives In this chapter you will: Learn about repetition (looping) control structures Explore how to construct.
Chapter 6 Looping CS185/09 - Introduction to Programming Caldwell College.
Chapter 6 Looping. 2 Chapter 6 Topics l While Statement Syntax l Count-Controlled Loops l Event-Controlled Loops l Using the End-of-File Condition to.
1 Looping. 2 Chapter 6 Topics  While Statement Syntax  Phases of Loop Execution  Two Types of Loops: Count-Controlled Loops &Event-Controlled Loops.
Control Structures II Repetition (Loops). Why Is Repetition Needed? How can you solve the following problem: What is the sum of all the numbers from 1.
Control Structures Repetition or Iteration or Looping Part II.
Copyright 2003 Scott/Jones Publishing Standard Version of Starting Out with C++, 4th Edition Chapter 5 Looping.
A loop is a repetition control structure. body - statements to be repeated control statement - decides whether another repetition needs to be made leading.
Overview Go over parts of quiz? Another iteration structure for loop.
Loops cause a section of a program to be repeated a certain number of times. The repetition continues while a condition remains true. When a condition.
Before we get started…. First, a few things… Weighted Grading System Programming Style Submitting your assignments… The char and string variable types.
REPETITION STATEMENTS - Part2 Structuring Input Loops Counter-Controlled Repetition Structure Sentinel-Controlled Repetition Structure eof()-Controlled.
Loops and Files. 5.1 The Increment and Decrement Operators.
A loop is a repetition control structure. body - statements to be repeated control statement - decides whether another repetition needs to be made leading.
1 Standard Version of Starting Out with C++, 4th Brief Edition Chapter 5 Looping.
Copyright © 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 5: Looping.
Looping ROBERT REVAES. Logical Operators  && AND  Both have to be true for it to evaluate to be true.  || OR  One or the other has to be true for.
1 For Loops l From Chapter 9 l A shorthand way of coding count loops.
C++ Programming: From Problem Analysis to Program Design, Fourth Edition Chapter 5: Control Structures II (Repetition)
1 Programming in C++ Dale/Weems/Headington Chapter 9 Additional Control Structures (Switch, Do..While, For statements)
Chapter Looping 5. The Increment and Decrement Operators 5.1.
Beginning C For Engineers Fall 2005 Lecture 3: While loops, For loops, Nested loops, and Multiple Selection Section 2 – 9/14/05 Section 4 – 9/15/05 Bettina.
1 Programming in C++ Dale/Weems/Headington Chapter 6 Looping.
Chapter Looping 5. The Increment and Decrement Operators 5.1.
Lecture 7 – Repetition (Loop) FTMK, UTeM – Sem /2014.
C++ Programming: From Problem Analysis to Program Design, Fifth Edition Chapter 5: Control Structures II (Repetition)
1 Looping Chapter 6 2 Getting Looped in C++ Using flags to control a while statement Trapping for valid input Ending a loop with End Of File condition.
Chapter 4 Repetition Statements Program Development and Design Using C++, Third Edition.
Chapter 6 Looping. 2 l A loop is a repetition control structure. l it causes a single statement or block to be executed repeatedly What is a loop?
A loop is a repetition control structure. it causes a single statement or block to be executed repeatedly What is a loop?
REPETITION CONTROL STRUCTURE
Chapter 6 Looping.
Loop Structures.
Chapter 5: Looping Copyright © 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley.
Loops A loop is a repetition control structure.
Based on slides created by Bjarne Stroustrup & Tony Gaddis
Based on slides created by Bjarne Stroustrup & Tony Gaddis
Presentation transcript:

1 Chapter 6 Looping Dale/Weems/Headington

2 l Physical order vs. logical order l A loop is a repetition control structure based on a condition. l it causes a single statement or block to be executed repeatedly While loop TRUE – execute the body, FALSE – exit loop Exits the loop only at the top Errors: = vs. == Semicolon at end of While Braces What is a loop?

3 While Statement SYNTAX while ( Expression ) {.. // loop body. } NOTE: Loop body can be a single statement, a null statement, or a block.

4 Two Types of Loops count controlled loops – executes a number of times loop control variable - initialize and test – multiple roles infinite loop – omit incrementation repeat a specified number of times event-controlled loops – termination depends on some event some condition within the loop body changes and this causes the repeating to stop

5 int count ; count = 4; // initialize loop variable while (count > 0) // test expression { cout << count << endl ; // repeated action count -- ; // update loop variable } cout << “Done” << endl ; Count-controlled Loop

6 Infinite loops Other loops: Do while For Looping problems are difficult to solve Easier to read than design Phases Loop entry Iteration – before each iteration – loop test After iteration – to statement following loop

7 myInfile contains 100 blood pressures Use a while loop to read the 100 blood pressures and find their total Count-Controlled Loop Example

8 ifstream myInfile ; int thisBP ; int total ; int count ; count = 0 ; // initialize while ( count < 100 ) // test expression { myInfile >> thisBP ; total = total + thisBP ; count++ ; // update } cout << “The total = “ << total << endl ;

9 Event-controlled Loops l Sentinel controlled – long lists of data keep processing data until a special value which is not a possible data value is entered to indicate that processing should stop l End-of-file controlled keep processing data as long as there is more data in the file l Flag controlled keep processing data until the value of a flag changes in the loop body

10 Examples of Kinds of Loops Count controlled loop Read exactly 100 blood pressures from a file. End-of-file controlled loop Read all the blood pressures from a file no matter how many are there.

11 Examples of Kinds of Loops Sentinel controlled loop Read blood pressures until a special value (like -1) selected by you is read. Flag controlled loop Read blood pressures until a dangerously high BP (200 or more) is read.

12 A Sentinel-controlled Loop l requires a “priming read” – read before first test l “priming read” means you read one set of data before the while l Another read at end of loop

13 // Sentinel controlled loop total = 0; cout << “Enter a blood pressure (-1 to stop ) ”; cin >> thisBP; while (thisBP != -1)// while not sentinel { total = total + thisBP; cout << “Enter a blood pressure (-1 to stop ) ”; cin >> thisBP; } cout << total;

14 End-of-File Controlled Loop l depends on fact that a file goes into fail state when you try to read a data value beyond the end of the file

15 total = 0; myInfile >> thisBP; // priming read while (myInfile) // while last read successful { total = total + thisBP; myInfile >> thisBP; // read another } cout << total; // End-of-file controlled loop

16 //End-of-file at keyboard total = 0; cout << “Enter blood pressure (Ctrl-Z to stop)”; cin >> thisBP; // priming read while (cin) // while last read successful { total = total + thisBP; cout << “Enter blood pressure”; cin >> thisBP; // read another } cout << total;

17 Flag-controlled Loops l you initialize a flag (to true or false) l use meaningful name for the flag l a condition in the loop body changes the value of the flag l test for the flag in the loop test expression

18 countGoodReadings = 0; isSafe = true; // initialize Boolean flag while (isSafe) { cin >> thisBP; if ( thisBP >= 200 ) isSafe = false; // change flag value else countGoodReadings++; } cout << countGoodReadings << endl;

19 Loops often used to l count all data values l count special data values l sum data values l keep track of previous and current values

20 Previous and Current Values l write a program that counts the number of != operators in a program file l read one character in the file at a time l keep track of current and previous characters

21 Keeping Track of Values (x != 3) { cout << endl; } FILE CONTENTS previous current count ( x 0 ! = 1 = ‘ ‘ 1 x ‘ ‘ 0 3 ) 1 ‘ ‘ 3 1 ‘ ‘ ! 0

22 int count; char previous; char current; count = 0 ; inFile.get (previous); // priming reads inFile.get(current); while (inFile) { if ( (current == ‘ = ‘) && (previous == ‘!’) ) count++; previous = current;// update inFile.get(current); // read another }

23 initialize outer loop while ( outer loop condition ) {... initialize inner loop while ( inner loop condition ) { inner loop processing and update }... } Pattern of a Nested Loop

24 Patient Data A file contains blood pressure data for different people. Each line has a patient ID, the number of readings for that patient, followed by the actual readings. ID howManyReadings

There were 432 patients in file. Read the data and display a chart Patient ID BP Average

26 Algorithm Uses Nested Loops l initialize patientCount to 0 l read first ID and howMany from file l while not end-of-file n increment patientCount n display ID n use a count-controlled loop to read and sum up this patient’s howMany BP’s n calculate and display average for patient n read next ID and howMany from file l display patientCount

27 To design a nested loop l begin with outer loop l when you get to where the inner loop appears, make it a separate module and come back to its design later

28 #include #include using namespace std; int main ( ) { int patientCount; // declarations int thisID; int howMany; int thisBP; int totalForPatient; int count; float average; ifstream myInfile;

29 myInfile.open(“A:\\BP.dat”); if (!myInfile ) // opening failed { cout > thisID >> howMany; // priming read

30 while ( myInfile ) // last read successful { patientCount++; cout << thisID; totalForPatient = 0; // initialize inner loop count = 0; while ( count < howMany) { myInfile >> thisBP; count ++; totalForPatient = totalForPatient + thisBP; } average = totalForPatient / float(howMany); cout << int (average +.5) << endl; // round myInfile >> thisID >> howMany; // another read }

31 cout << “There were “ << patientCount << “patients on file.” << endl; cout << “Program terminated.\n”; return 0; }

32 Information About 20 Books in Diskfile “A:\\myIn.dat” 3.98 P 7.41 H 8.79 P. Price of book Hardback or Paperback? WRITE A PROGRAM TO FIND TOTAL VALUE OF ALL BOOKS

33 #include // for cout #include // for file I/O using namespace std; int main (void) { float price ; // declarations char kind ; ifstream myInfile ; float total = 0.0 ; int count = 1; Program to Read Info about 20 Books From a Disk File

34 Rest of Program myInfile.open(“A:\\myIn.dat”) ; // count-controlled processing loop while ( count <= 20 ) { myInfile >> price >> kind ; total = total + price ; count ++ ; } cout << “Total is: “ << total << endl ; myInfile.close( ) ; return 0 ; }

35 Trace of Program Variables count price kind total ‘P’ ‘H’ ‘P’ etc so loop terminates

36 Complexity l is a measure of the amount of work involved in executing an algorithm relative to the size of the problem

37 Polynomial Times N N 0 N 1 N 2 N 3 constant linear quadratic cubic , ,000 1,000,000 1,0001 1,000 1,000,000 1,000,000,000 10, , ,000,000 1,000,000,000,000

38 Loop Testing and Debugging test data should test all sections of program l beware of infinite loops -- program doesn’t stop l check loop termination condition, and watch for “off-by-1” problem l use get function for loops controlled by detection of ‘\n’ character l use algorithm walk-through to verify pre- and postconditions l trace execution of loop by hand with code walk-through l use a debugger to run program in “slow motion” or use debug output statements

39 Program #2 - pg. 233 l Input integers larger than 1 - loop for entry l calculate sum of squares - 1 through that integer - inner loop l output results n declare variables n initialize variables to 0 n priming read-input n while loop - while >1 –count = 1 - loop control variable - input - outer variable l while count <= integer l calculate square l add to totaling variable l add to counting variable –output results n input next number n return 0

40 l Assignment #12 n pg prog warm-up exercises 1,4 n pg prog problems #2 l Assignment #13 n pg exam prep exercises - #2-7,9-14.