Why Is Repetition Needed?

Similar documents
Chapter 5: Control Structures II (Repetition) Objectives (cont d.) Objectives. while Looping (Repetition) Structure. Why Is Repetition Needed?

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

Chapter 5: Control Structures II (Repetition)

C++ Programming: From Problem Analysis to Program Design, Third Edition

REPETITION CONTROL STRUCTURE LOGO

Islamic University of Gaza Computer Engineering Dept. C++ Programming. For Industrial And Electrical Engineering By Instructor: Ruba A.

Java. Programming: Chapter Objectives. Why Is Repetition Needed? Chapter 5: Control Structures II. Program Design Including Data Structures

Programming Language. Control Structures: Repetition (while) Eng. Anis Nazer Second Semester

University of Technology. Laser & Optoelectronics Engineering Department. C++ Lab.

1- Write a single C++ statement that: A. Calculates the sum of the two integrates 11 and 12 and outputs the sum to the consol.

Multiple Choice (Questions 1 13) 26 Points Select all correct answers (multiple correct answers are possible)

Loops! Loops! Loops! Lecture 5 COP 3014 Fall September 25, 2017

Chapter 3. More Flow of Control. Copyright 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

Java Programming: Guided Learning with Early Objects Chapter 5 Control Structures II: Repetition

CPE 112 Spring 2015 Exam II (100 pts) March 4, Definition Matching (8 Points)

C++ Programming Lecture 7 Control Structure I (Repetition) Part I

Looping. Arizona State University 1

Increment and the While. Class 15

Unit 7. 'while' Loops

LECTURE 5 Control Structures Part 2

CHAPTER 2.2 CONTROL STRUCTURES (ITERATION) Dr. Shady Yehia Elmashad

Java Programming: Guided Learning with Early Objects Chapter 5 Control Structures II: Repetition

In this chapter you will learn:

Multiple Choice (Questions 1 14) 28 Points Select all correct answers (multiple correct answers are possible)

Basic program The following is a basic program in C++; Basic C++ Source Code Compiler Object Code Linker (with libraries) Executable

Control Structures. Control Structures Conditional Statements COMPUTER PROGRAMMING. Electrical-Electronics Engineering Dept.

8. Control statements

To become familiar with array manipulation, searching, and sorting.

Structured Programming. Flowchart Symbols. Structured Programming. Selection. Sequence. Control Structures ELEC 330 1

causing a set of statements (the body) to be executed repeatedly. C++ provides three control structures to support iteration (or looping).

Multiple Choice (Questions 1 13) 26 Points Select all correct answers (multiple correct answers are possible)

Objectives. Chapter 4: Control Structures I (Selection) Objectives (cont d.) Control Structures. Control Structures (cont d.) Relational Operators

causing a set of statements (the body) to be executed repeatedly. C++ provides three control structures to support iteration (or looping).

o Counter and sentinel controlled loops o Formatting output o Type casting o Top-down, stepwise refinement

Computer Programming. Basic Control Flow - Loops. Adapted from C++ for Everyone and Big C++ by Cay Horstmann, John Wiley & Sons

Name SECTION: 12:45 2:20. True or False (12 Points)

Chapter 5 Control Statements: Part 2 Section 5.2 Essentials of Counter-Controlled Repetition

INTRODUCTION TO C++ PROGRAM CONTROL. Dept. of Electronic Engineering, NCHU. Original slides are from

Chapter 4: Control Structures I (Selection) Objectives. Objectives (cont d.) Control Structures. Control Structures (cont d.

5.1. Chapter 5: The Increment and Decrement Operators. The Increment and Decrement Operators. Looping. ++ is the increment operator.

CSC128 FUNDAMENTALS OF COMPUTER PROBLEM SOLVING Chapter 4: Repetition Control Structure

Programming Language. Functions. Eng. Anis Nazer First Semester

5.1. Chapter 5: The Increment and Decrement Operators. The Increment and Decrement Operators. The Increment and Decrement Operators

CSc Introduc/on to Compu/ng. Lecture 8 Edgardo Molina Fall 2011 City College of New York

Multiple Choice (Questions 1 14) 28 Points Select all correct answers (multiple correct answers are possible)

Name Section: M/W T/TH Number Definition Matching (8 Points)

Building on the foundation. Now that we know a little about cout cin math operators boolean operators making decisions using if statements

C++ Final Exam 2017/2018

Example 3. #include <iostream> using namespace std; int main()

Introduction. C provides two styles of flow control:

Control Structures of C++ Programming (2)

Understanding main() function Input/Output Streams

3/12/2018. Structures. Programming in C++ Sequential Branching Repeating. Loops (Repetition)

Week 2. Relational Operators. Block or compound statement. if/else. Branching & Looping. Gaddis: Chapters 4 & 5. CS 5301 Spring 2018.

C++ Programming: From Problem Analysis to Program Design, Third Edition

Quiz Determine the output of the following program:

CPE 112 Spring 2015 Exam III (100 pts) April 8, True or False (12 Points)

Chapter 5. Repetition. Contents. Introduction. Three Types of Program Control. Two Types of Repetition. Three Syntax Structures for Looping in C++

Chapter 3. More Flow of Control

Tutorial 13 Salary Survey Application: Introducing One- Dimensional Arrays

Introduction to Programming

while for do while ! set a counter variable to 0 ! increment it inside the loop (each iteration)

Discussion 1H Notes (Week 3, April 14) TA: Brian Choi Section Webpage:

int n = 10; int sum = 10; while (n > 1) { sum = sum + n; n--; } cout << "The sum of the integers 1 to 10 is " << sum << endl;

Computer Programming : C++

Chapter 2 - Control Structures

Repetition Structures

Condition-Controlled Loop. Condition-Controlled Loop. If Statement. Various Forms. Conditional-Controlled Loop. Loop Caution.

Superior University. Department of Electrical Engineering CS-115. Computing Fundamentals. Experiment No.5. for loop and do-while loop

Name Section: M/W T/TH Number Definition Matching (6 Points)

FORM 1 (Please put your name and form # on the scantron!!!!) CS 161 Exam I: True (A)/False(B) (2 pts each):

5. Assuming gooddata is a Boolean variable, the following two tests are logically equivalent. if (gooddata == false) if (!

DELHI PUBLIC SCHOOL TAPI

CS 103 Lecture 3 Slides

Chapter Four: Loops. Slides by Evan Gallagher. C++ for Everyone by Cay Horstmann Copyright 2012 by John Wiley & Sons. All rights reserved

C++ Programming: From Problem Analysis to Program. Design, Fifth Edition. Chapter 1: An Overview of Computers and Programming Languages

*Starting Out with C++: From Control Structures through Objects, 7/E* by *Tony Gaddis* COMPUTER PROGRAMMING LECTURE 05 LOOPS IMRAN IHSAN

Control Statements. Musa M. Ameen Computer Engineering Dept.

Chapter 3. More Flow of Control. Copyright 2008 Pearson Addison-Wesley. All rights reserved.

C++ PROGRAMMING SKILLS Part 2 Programming Structures

Chapter 4 C Program Control

c++ keywords: ( all lowercase ) Note: cin and cout are NOT keywords.

Chapter 5: Loops and Files

The following expression causes a divide by zero error:

Repetition and Loop Statements Chapter 5

1 Unit 8 'for' Loops

Lab Instructor : Jean Lai

Chapter 5: Prefix vs. Postfix 8/19/2018. The Increment and Decrement Operators. Increment and Decrement Operators in Program 5-1

Add Subtract Multiply Divide

CSCE 206: Structured Programming in C++

Theory of control structures

Chapter 2 - Control Structures

CSCI 1061U Programming Workshop 2. C++ Basics

Chapter 2 - Control Structures

Chapter 6 Topics. While Statement Syntax Count-Controlled Loops Event-Controlled Loops Using the End-of-File Condition to Control Input Data

2.11 Assignment Operators. Assignment expression abbreviations c = c + 3; can be abbreviated as c += 3; using the addition assignment operator

Lecture 7 Tao Wang 1

Simple File I/O.

Designing Loops and General Debug Pre-Defined Functions in C++ CS 16: Solving Problems with Computers I Lecture #6

Chapter Overview. More Flow of Control. Flow Of Control. Using Boolean Expressions. Using Boolean Expressions. Evaluating Boolean Expressions

Transcription:

Why Is Repetition Needed? Repetition allows efficient use of variables. It lets you process many values using a small number of variables. For example, to add five numbers: Inefficient way: Declare a variable for each number, input each number and add them. Efficient way: Create a loop that reads a number into a variable and adds it to another variable that contains the running total of the numbers.

Example: Inefficient Way of Adding Five Numbers

Example: Efficient Way of Adding Five Numbers

Three Kinds of Loops

for Loop for loop: also called a counted loop. Syntax of the for statement:

for Loop (cont.) The initial statement is executed only once, when execution of the for loop begins. The loop condition is checked at the beginning of each repetition. If it is true, the loop is repeated. If it is false, control passes to the first statement after the end of the loop. The update statement is executed at the end of each repetition.

for Loop (cont d.)

for Loop (cont d.)

for Loop (cont d.)

for Loop (cont d.) The following is a legal (but infinite) for loop: for (;;) cout << "Hello" << endl; The following is also legal, but probably not what the programmer wanted:

for Loop (cont d.)

for Loop (cont d.)

for Loop (cont d.) As expressions, they can, however, make use of the comma operator (,): This operator is an expression separator, and can separate multiple expressions where only one is generally expected. For example, using it, it would be possible for a for loop to handle two counter variables, initializing and increasing both: for ( n=0, i=100 ; n!=i ; ++n, --i ){// whatever here...} This loop will execute 50 times if neither n or i are modified within the loop:

for Loop (cont d.) Example: A for loop with no increment #include <iostream> using namespace std; int main() { int x; } for(x=0; x!= 123; ) { cout << "Enter a number: "; cin >> x; } return 0;

for Loop (cont d.) Example: The body of a for loop can be empty #include <iostream> using namespace std; int main() { int i; int sum = 0; // sum the numbers from 1 through 10 for(i=1; i <= 10; sum += i++) ; } cout << "Sum is " << sum; return 0;

while Loop Syntax of the while statement: 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.

while Loop (cont d.) 18

while Loop (cont d.) 19

while Loop (cont d.) The variable i in Example 5-1 is called the loop control variable (LCV). Infinite loop: continues to execute endlessly. Infinite loops are generally undesirable. They re avoided by including statements in the loop body that assure the exit condition is eventually false. 20

while Loop (cont d.)

Four Common Ways of Using while Loops There are many ways to use while loops. The following slides discuss four common ways. These differ mainly in the value that is used for the loop control variable: Counter-controlled while loops Sentinel-controlled while loops Flag-controlled while loops EOF-controlled while loops

Case 1: Counter-Controlled while Loops Use a counter-controlled while loop when you know exactly how many times the statements need to be executed.

Case 2: Sentinel-Controlled while Loops In a sentinel-controlled while loop, the condition checks to see whether a variable is equal to a special value called the sentinel value.

Example 5-5: Telephone Digits Example 5-5 provides an example of a sentinelcontrolled loop. The program converts uppercase letters to their corresponding telephone digit.

Case 3: Flag-Controlled while Loops Flag-controlled while loop: uses a bool variable to control the loop.

Number Guessing Game Example 5-6 implements a number guessing game using a flag-controlled while loop. It also uses the function rand of the header file cstdlib to generate a random number. rand() returns an int value between 0 and 32767 To convert to an integer >= 0 and < 100: rand() % 100

Case 4: EOF-Controlled while Loops EOF stands for end-of-file. An EOF-controlled while loop reads data from a file until it encounters a special end-of-file character that is automatically included at the end every file on a disk.

eof Function The function eof can determine the end of file status. eof is a member of data type istream. Syntax for the function eof: where istreamvar is an input stream variable, such as cin.

More on Expressions in while Statements The expression in a while statement can be complex. Example: while ((noofguesses < 5) && (!isguessed)) { }...

do while Loop Syntax of a do...while loop: The statement executes first, and then the expression is evaluated. As long as expression is true, loop continues. To avoid an infinite loop, body must contain a statement that makes the expression false.

do while Loop (cont d.) The statement can be simple or compound. Loop always iterates at least once.

do while Loop (cont d.)

do while Loop (cont d.)

do while Loop (cont d.)

Choosing the Right Kind of Loop All three loops have their place in C++. If you can determine in advance the number of repetitions needed, the for loop is the best choice. If you cannot determine in advance the number of repetitions needed, and it could be zero, use a while loop. If you cannot determine in advance the number of repetitions needed, and it is at least one, use a do...while loop.

break and continue Statements break and continue alter the flow of control. break statement is used for two purposes: To skip the remainder of a switch structure. To exit early from a loop. Can eliminate the use of certain (flag) variables. After break executes, the program continues with the first statement after the structure.

Example: Using break in a while Loop

break and continue Statements (cont d.) continue is used in while, for, and do while structures. When executed in a loop, it skips the remaining statements in the loop and proceeds with the loop s next iteration.

Example: Using continue in a while Loop

Nested Loops To create the following pattern: * ** *** **** ***** We can use the following code: for (i = 1; i <= 5 ; i++) { for (j = 1; j <= i; j++) cout << "*"; cout << endl; }

Debugging Loops Loops are harder to debug than sequence and selection structures. While debugging, insert temporary cout statements in your loop so that you can see how the values of variables are changing as the loop repeats. Most common error associated with loops is off-byone.

Programming Example: Fibonacci Number Consider the following sequence of numbers: 1, 1, 2, 3, 5, 8, 13, 21, 34,... This is called a Fibonacci sequence. Given the first two numbers of the sequence (say, a 1 and a 2 ) n th number a n, n >= 3, of this sequence is given by: a n = a n-1 + a n-2

Programming Example: Fibonacci Number (cont d.) Fibonacci sequence n th Fibonacci number a 2 = 1 a 1 = 1 Determine the n th number a n, n >= 3

Programming Example: Fibonacci Number (cont d.) Suppose a 2 = 6 and a 1 = 3 a 3 = a 2 + a 1 = 6 + 3 = 9 a 4 = a 3 + a 2 = 9 + 6 = 15 Write a program that determines the n th Fibonacci number, given the first two numbers.

Programming Example: Input and Output Input: first two Fibonacci numbers and the desired Fibonacci number. Output: n th Fibonacci number.

Programming Example: Problem Analysis Algorithm: and Algorithm Design Get the first two Fibonacci numbers. Get the position, n, of the desired number in the sequence. Calculate the next Fibonacci number. Add the previous two elements of the sequence. Repeat Step 3 until the n th Fibonacci number is found. Output the n th Fibonacci number.

Programming Example: Variables

Programming Example: Main Algorithm Prompt the user for the first two numbers that is, previous1 and previous2. Read (input) the first two numbers into previous1 and previous2. Output the first two Fibonacci numbers. Prompt the user for the position of the desired Fibonacci number.

Programming Example: Main Algorithm (cont d.) Read the position of the desired Fibonacci number into nthfibonacci. if (nthfibonacci == 1) The desired Fibonacci number is the first Fibonacci number; copy the value of previous1 into current. else if (nthfibonacci == 2) The desired Fibonacci number is the second Fibonacci number; copy the value of previous2 into current.

Programming Example: Main Algorithm (cont d.) else calculate the desired Fibonacci number as follows: Initialize counter to 3 to keep track of which Fibonacci numbers we re currently calculating. Calculate the next Fibonacci number, as follows: current = previous2 + previous1; Assign the value of previous2 to previous1. Assign the value of current to previous2. Increment counter. Repeat until Fibonacci number is calculated.

Programming Example: Main Algorithm (cont d.) Here s the code that implements the algorithm s loop. while (counter <= nthfibonacci) { current = previous2 + previous1; previous1 = previous2; previous2 = current; counter++; }

Programming Example: Main Algorithm (cont d.) Output the nthfibonacci number, which is current.