C++ Programming: From Problem Analysis to Program Design, Second Edition Chapter 5: Control Structures II (Repetition)

Slides:



Advertisements
Similar presentations
Chapter 5: Control Structures II (Repetition)
Advertisements

Computer Science 1620 Loops.
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL Adrian Ilie COMP 14 Introduction to Programming Adrian Ilie July 5, 2005.
1 Lecture 11:Control Structures II (Repetition) (cont.) Introduction to Computer Science Spring 2006.
Starting Out with C++: Early Objects 5/e © 2006 Pearson Education. All Rights Reserved Starting Out with C++: Early Objects 5 th Edition Chapter 5 Looping.
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Starting Out with C++ Early Objects Sixth Edition Chapter 5: Looping by Tony.
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.
Chapter 5: Control Structures II (Repetition)
1 Lecture 10:Control Structures II (Repetition) Introduction to Computer Science Spring 2006.
COMP 14 Introduction to Programming Miguel A. Otaduy May 20, 2004.
Chapter 5: Control Structures II (Repetition)
COMP 110 Introduction to Programming Mr. Joshua Stough September 24, 2007.
CHAPTER 5 CONTROL STRUCTURES II (Repetition). In this chapter, you will:  Learn about repetition (looping) control structures  Explore how to construct.
Control Structures II. Why is Repetition Needed? There are many situations in which the same statements need to be executed several times. Example: Formulas.
Control Structures - Repetition Chapter 5 2 Chapter Topics Why Is Repetition Needed The Repetition Structure Counter Controlled Loops Sentinel Controlled.
Chapter 4: Control Structures II
Chapter 5: Control Structures II (Repetition)
C++ Programming: Program Design Including Data Structures, Fourth Edition Chapter 5: Control Structures II (Repetition)
CHAPTER 5 CONTROL STRUCTURES II (Repetition). In this chapter, you will:  Learn about repetition (looping) control structures  Explore how to construct.
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.
Java Programming: From Problem Analysis to Program Design, Second Edition1 Lecture 4 Objectives  Learn about repetition (looping) control structures.
Project 1 Due Date: September 25 th Quiz 4 is due September 28 th Quiz 5 is due October2th 1.
Chapter 5 Control Structure (Repetition). Objectives In this chapter, you will: Learn about repetition (looping) control structures Explore how to construct.
Chapter 5: Control Structures II (Repetition). Objectives In this chapter, you will: – Learn about repetition (looping) control structures – Learn how.
C++ for Engineers and Scientists, Third Edition1 Objectives In this chapter, you will learn about: Basic loop structures while loops Interactive while.
C++ Programming Lecture 6 Control Structure II (Repetition) By Ghada Al-Mashaqbeh The Hashemite University Computer Engineering Department.
Control Structures II (Repetition). Objectives In this chapter you will: Learn about repetition (looping) control structures Explore how to construct.
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.
Chapter 5: Control Structures II J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program Design,
Chapter 4: Control Structures II
CHAPTER 3 CONTROL STRUCTURES ( REPETITION ) I NTRODUCTION T O C OMPUTER P ROGRAMMING (CSC425)
Chapter 5: Control Structures II
Control Structures II: Repetition.  Learn about repetition (looping) control structures  Explore how to construct and use count-controlled, sentinel-controlled,
Using Java MINISTRY OF EDUCATION & HIGHER EDUCATION COLLEGE OF SCIENCE AND TECHNOLOGY KHANYOUNIS- PALESTINE Lecture 9 & 10 Repetition Statements.
Quiz 3 is due Friday September 18 th Lab 6 is going to be lab practical hursSept_10/exampleLabFinal/
Before we get started…. First, a few things… Weighted Grading System Programming Style Submitting your assignments… The char and string variable types.
CONTROL STATEMENTS LOOPS. WHY IS REPETITION NEEDED?  There are many situations in which the same statements need to be executed several times.  Example:
Repetition Statements (Loops) The do while Loop The last iteration structure in C++ is the do while loop. A do while loop repeats a statement or.
Copyright © 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 5: Looping.
C++ Programming: From Problem Analysis to Program Design, Fourth Edition Chapter 5: Control Structures II (Repetition)
Copyright © 2012 Pearson Education, Inc. Chapter 5: Loops.
Alternate Version of STARTING OUT WITH C++ 4 th Edition Chapter 5 Looping.
C++ Programming: Program Design Including Data Structures, Fourth Edition Chapter 5: Control Structures II (Repetition)
CONTROL STRUCTURE Chapter 3. CONTROL STRUCTURES ONE-WAY SELECTION Syntax: if (expression) statement Expression referred to as decision maker. Statement.
Chapter Looping 5. The Increment and Decrement Operators 5.1.
LECTURE # 8 : REPETITION STATEMENTS By Mr. Ali Edan.
Java Programming: From Problem Analysis to Program Design, 4e Chapter 5 Control Structures II: Repetition.
Java Programming: From Problem Analysis to Program Design, 3e Chapter 5 Control Structures II: Repetition.
Chapter Looping 5. The Increment and Decrement Operators 5.1.
C++ Programming: From Problem Analysis to Program Design, Fifth Edition Chapter 5: Control Structures II (Repetition)
C++ Programming: CS102 LOOP. Not everything that can be counted counts, and not every thing that counts can be counted. −Albert Einstein Who can control.
C++ Programming: From Problem Analysis to Program Design, Fifth Edition Chapter 2: Control Structures (Selection & Repetition)
Java Fundamentals 4. Java Programming: From Problem Analysis to Program Design, Second Edition2 Parsing Numeric Strings  Integer, Float, and Double are.
Topic 4: Looping Statements
REPETITION CONTROL STRUCTURE
Chapter 5: Control Structures II (Repetition)
Chapter 5: Control Structures II
Chapter 5: Control Structures II
Chapter 5: Control Structures II
Control Structures II (Repetition)
CiS 260: App Dev I Chapter 4: Control Structures II.
Java Programming: Guided Learning with Early Objects
Chapter 5: Control Structures II
Control Structures - Repetition
Control Statements Loops.
Chapter 5: Control Structures II (Repetition)
Control Statements Loops.
Presentation transcript:

C++ Programming: From Problem Analysis to Program Design, Second Edition Chapter 5: Control Structures II (Repetition)

C++ Programming: From Problem Analysis to Program Design, Second Edition2 Objectives In this chapter you will: Learn about repetition (looping) control structures Explore how to construct and use count- controlled, sentinel-controlled, flag-controlled, and EOF-controlled repetition structures Examine break and continue statements Discover how to form and use nested control structures

C++ Programming: From Problem Analysis to Program Design, Second Edition3 Why Is Repetition Needed? Repetition allows you to efficiently use variables Can input, add, and average multiple numbers using a limited number of variables For example, to add five numbers: −Declare a variable for each number, input the numbers and add the variables together −Create a loop that reads a number into a variable and adds it to a variable that contains the sum of the numbers

C++ Programming: From Problem Analysis to Program Design, Second Edition4 The while Loop The general form of the while statement is: while(expression) statement while is a reserved word Statement can be simple or compound Expression acts as a decision maker and is usually a logical expression Statement is called the body of the loop The parentheses are part of the syntax

C++ Programming: From Problem Analysis to Program Design, Second Edition5 The while Loop (continued) Expression provides an entry condition Statement executes if the expression initially evaluates to true Loop condition is then reevaluated Statement continues to execute until the expression is no longer true

C++ Programming: From Problem Analysis to Program Design, Second Edition6 The while Loop (continued) Infinite loop: continues to execute endlessly Can be avoided by including statements in the loop body that assure exit condition will eventually be false

C++ Programming: From Problem Analysis to Program Design, Second Edition8 Counter-Controlled while Loops If you know exactly how many pieces of data need to be read, the while loop becomes a counter-controlled loop The syntax is: counter = 0; while(counter < N) {. counter++;. }

C++ Programming: From Problem Analysis to Program Design, Second Edition9 Sentinel-Controlled while Loops Sentinel variable is tested in the condition and loop ends when sentinel is encountered The syntax is: cin>>variable; while(variable != sentinel) {. cin>> variable;. }

C++ Programming: From Problem Analysis to Program Design, Second Edition10 Flag-Controlled while Loops A flag-controlled while loop uses a Boolean variable to control the loop The flag-controlled while loop takes the form: found = false; while(!found) {. if(expression) found = true;. }

C++ Programming: From Problem Analysis to Program Design, Second Edition11 EOF-Controlled while Loops Use an EOF (End Of File)-controlled while loop The logical value returned by cin can determine if the program has ended input The syntax is: cin >> variable; while (cin) {. cin >> variable;. }

C++ Programming: From Problem Analysis to Program Design, Second Edition12 The eof Function The function eof can determine the end of file status Like other I/O functions (get, ignore, peek), eof is a member of data type istream The syntax for the function eof is: istreamVar.eof() where istreamVar is an input stream variable, such as cin

C++ Programming: From Problem Analysis to Program Design, Second Edition13 Programming Example A local bank in your town needs a program to calculate a customer’s checking account balance at the end of each month Data are stored in a file in the following form: W D 1200 W I

C++ Programming: From Problem Analysis to Program Design, Second Edition14 Programming Example (continued) The first line of data shows the account number followed by the account balance at the beginning of the month Thereafter each line has two entries: −Transaction code −Transaction amount Transaction codes −W or w means withdrawal −D or d means deposit −I or i means interest paid by the bank

C++ Programming: From Problem Analysis to Program Design, Second Edition15 Programming Example (continued) Program updates balance after each transaction During the month, if at any time the balance goes below $ , a $25.00 service fee is charged

C++ Programming: From Problem Analysis to Program Design, Second Edition16 Programming Example (continued) Program prints the following information: −Account number −Balance at the beginning of the month −Balance at the end of the month −Interest paid by the bank −Total amount of deposit −Number of deposits −Total amount of withdrawal −Number of withdrawals −Service charge if any

C++ Programming: From Problem Analysis to Program Design, Second Edition17 Input and Output Input: file consisting of data in the previous format Output is of the following form: Account Number: Beginning Balance: $ Ending Balance: $ Interest Paid: $ Amount Deposited: $ Number of Deposits: 3 Amount Withdrawn: $ Number of Withdrawals: 6

C++ Programming: From Problem Analysis to Program Design, Second Edition18 Program Analysis The first entry in the input file is the account number and the beginning balance Program first reads account number and beginning balance Thereafter, each entry in the file is of the following form: transactionCode transactionAmount To determine account balance, process each entry that contains transaction code and transaction amount

C++ Programming: From Problem Analysis to Program Design, Second Edition19 Program Analysis (continued) Begin with starting balance and then update the account balance after processing each entry If the transaction code is D or I, transaction amount is added to the account balance If the transaction code is W, the transaction amount is subtracted from the balance Keep separate counts of withdrawals and deposits

C++ Programming: From Problem Analysis to Program Design, Second Edition20 Analysis Algorithm This discussion translates into the following algorithm: 1.Declare the variables 2.Initialize the variables 3.Get the account number and beginning balance 4.Get transaction code and transaction amount 5.Analyze transaction code and update the appropriate variables 6.Repeat Steps 4 and 5 for all data 7.Print the result

C++ Programming: From Problem Analysis to Program Design, Second Edition21 Variables The following variables are included: acctNumber//store account number beginningBalance //store beginning balance accountBalance //store account balance at the //end of the month amountDeposited //store total amount deposited numberOfDeposits//store the number of deposits amountWithdrawn //store total amount withdrawn numberOfWithdrawals //store number of withdrawals interestPaid //store interest amount paid

C++ Programming: From Problem Analysis to Program Design, Second Edition22 Named Constants const double minimumBalance = ; const double serviceCharge = 25.00;

C++ Programming: From Problem Analysis to Program Design, Second Edition23 Steps 1.Declare variables as discussed previously 2.Initialize variables −isServicedCharged is initialized to false −Read the beginning balance in the variable beginningBalance from the file and initialize the variable accountBalance to the value of the variable beginningBalance −Since the data will be read from a file, you need to open input file

C++ Programming: From Problem Analysis to Program Design, Second Edition24 Steps (continued) 3.Get account number and starting balance infile>>acctNumber>>beginningBalance; 4.Get transaction code and transaction amount infile>>transactionCode>>transactionAmount; 5.Analyze transaction code and update appropriate variables

C++ Programming: From Problem Analysis to Program Design, Second Edition25 Steps (continued) 6.Repeat Steps 4 and 5 until there is no more data −Since the number of entries in the input file is not known, use an EOF-controlled while loop 7.Print the result

C++ Programming: From Problem Analysis to Program Design, Second Edition26 Main Algorithm 1.Declare and initialize variables 2.Open input file 3.If input file does not exist, exit 4.Open output file 5.Output numbers in appropriate formats 6.Read accountNumber and beginningBalance

C++ Programming: From Problem Analysis to Program Design, Second Edition27 Main Algorithm (continued) 7.Set accountBalance to beginningBalance 8.Read transactionCode and transactionAmount 9.While (not end of input file) −If transactionCode is 'D' i. Add transactionAmount to accountBalance ii. Increment numberOfDeposits −If transactionCode is 'I' i. Add transactionAmount to accountBalance ii. Add transactionAmount to interestPaid

C++ Programming: From Problem Analysis to Program Design, Second Edition28 Main Algorithm (continued) −If transactionCode is 'W' i. Subtract transactionAmount from accountBalance ii. Increment numberOfWithdrawals iii. If (accountBalance < minimumBalance && !isServicedCharged) 1. Subtract serviceCharge from accountBalance 2. Set isServiceCharged to true −If transactionCode is other than 'D', 'd', 'I', 'i', 'W', or 'w', output an error message 10.Output the results

C++ Programming: From Problem Analysis to Program Design, Second Edition29 The for Loop The general form of the for statement is: for(initial statement; loop condition; update statement) statement The initial statement, loop condition, and update statement are called for loop control statements

C++ Programming: From Problem Analysis to Program Design, Second Edition31 The for Loop (continued) The for loop executes as follows: −initial statement executes −loop condition is evaluated If loop condition evaluates to true Execute for loop statement Execute update statement Repeat previous step until the loop condition evaluates to false initial statement initializes a variable

C++ Programming: From Problem Analysis to Program Design, Second Edition32 The for Loop (continued) initial statement in the for loop is the first to be executed and is executed only once If the loop condition is initially false, the loop body does not execute The update expression changes the value of the loop control variable which eventually sets the value of the loop condition to false The for loop executes indefinitely if the loop condition is always true

C++ Programming: From Problem Analysis to Program Design, Second Edition33 The for Loop (continued) Fractional values can be used for loop control variables A semicolon at the end of the for statement is a semantic error −In this case, the action of the for loop is empty If the loop condition is omitted −It is assumed to be true

C++ Programming: From Problem Analysis to Program Design, Second Edition34 The for Loop (continued) In a for statement, all three statements (initial statement, loop condition, and update statement) can be omitted The following is a legal for loop: for(;;) cout<<"Hello"<<endl;

C++ Programming: From Problem Analysis to Program Design, Second Edition35 The do…while Loop The general form of a do...while statement is: do statement while(expression); The statement executes first, and then the expression is evaluated If the expression evaluates to true, the statement executes again As long as the expression in a do...while statement is true, the statement executes

C++ Programming: From Problem Analysis to Program Design, Second Edition36 The do…while Loop (continued) To avoid an infinite loop, the loop body must contain a statement that makes the expression false The statement can be simple or compound If compound, it must be in braces do...while loop has an exit condition and always iterates at least once (unlike for and while)

C++ Programming: From Problem Analysis to Program Design, Second Edition38 Break & Continue Statements break and continue alter the flow of control When the break statement executes in a repetition structure, it immediately exits The break statement, in a switch structure, provides an immediate exit The break statement can be used in while, for, and do...while loops

C++ Programming: From Problem Analysis to Program Design, Second Edition39 Break & Continue Statements (continued) The break statement is used for two purposes: 1.To exit early from a loop 2.To skip the remainder of the switch structure After the break statement executes, the program continues with the first statement after the structure The use of a break statement in a loop can eliminate the use of certain (flag) variables

C++ Programming: From Problem Analysis to Program Design, Second Edition40 Break & Continue Statements (continued) continue is used in while, for, and do-while structures When executed in a loop −It skips remaining statements and proceeds with the next iteration of the loop

C++ Programming: From Problem Analysis to Program Design, Second Edition41 Break & Continue Statements (continued) In a while and do-while structure −Expression (loop-continue test) is evaluated immediately after the continue statement In a for structure, the update statement is executed after the continue statement −Then the loop condition executes

C++ Programming: From Problem Analysis to Program Design, Second Edition42 Nested Control Structures Suppose we want to create the following pattern * ** *** **** ***** In the first line, we want to print one star, in the second line two stars and so on

C++ Programming: From Problem Analysis to Program Design, Second Edition43 Nested Control Structures (continued) Since five lines are to be printed, we start with the following for statement for(i = 1; i <= 5 ; i++) The value of i in the first iteration is 1, in the second iteration it is 2, and so on Can use the value of i as limit condition in another for loop nested within this loop to control the number of starts in a line

C++ Programming: From Problem Analysis to Program Design, Second Edition44 Nested Control Structures (continued) The syntax is: for(i = 1; i <= 5 ; i++) { for(j = 1; j <= i; j++) cout<<"*"; cout<<endl; }

C++ Programming: From Problem Analysis to Program Design, Second Edition45 Nested Control Structures (continued) What pattern does the code produce if we replace the first for statement with the following? for (i = 5; i >= 1; i--) Answer: ***** **** *** ** *

C++ Programming: From Problem Analysis to Program Design, Second Edition46 Summary C++ has three looping (repetition) structures: while, for, and do…while while, for, and do are reserved words while and for loops are called pre-test loops do...while loop is called a post-test loop while and for may not execute at all, but do...while always executes at least once

C++ Programming: From Problem Analysis to Program Design, Second Edition47 Summary while: expression is the decision maker, and the statement is the body of the loop In a counter-controlled while loop, −Initialize counter before loop −Body must contain a statement that changes the value of the counter variable A sentinel-controlled while loop uses a sentinel to control the while loop An EOF-controlled while loop executes until the program detects the end-of-file marker

C++ Programming: From Problem Analysis to Program Design, Second Edition48 Summary for loop: simplifies the writing of a count- controlled while loop Executing a break statement in the body of a loop immediately terminates the loop Executing a continue statement in the body of a loop skips to the next iteration After a continue statement executes in a for loop, the update statement is the next statement executed