lecture 8 (loops)
DESCRIPTION
computer programmingTRANSCRIPT
![Page 1: Lecture 8 (Loops)](https://reader034.vdocuments.site/reader034/viewer/2022042821/55cf913b550346f57b8bcbb4/html5/thumbnails/1.jpg)
Intro to ProgrammingWeek # 4
Control StructureLecture # 8
By: Saqib Rasheed
Department of Computer Science & EngineeringAir University
![Page 2: Lecture 8 (Loops)](https://reader034.vdocuments.site/reader034/viewer/2022042821/55cf913b550346f57b8bcbb4/html5/thumbnails/2.jpg)
Increment operator
++counter ++ ;
same as counter = counter + 1;
![Page 3: Lecture 8 (Loops)](https://reader034.vdocuments.site/reader034/viewer/2022042821/55cf913b550346f57b8bcbb4/html5/thumbnails/3.jpg)
Decrement operator
--
counter -- ;same as
counter = counter - 1
![Page 4: Lecture 8 (Loops)](https://reader034.vdocuments.site/reader034/viewer/2022042821/55cf913b550346f57b8bcbb4/html5/thumbnails/4.jpg)
Post/Pre Increment
Int x = 10//Post Incrementx++;cout<<x;
//Pre Increment++xcout<<x;
int y = 10;
int y = 10;
cout<<y<<endl;cout<<y++<<endl;cout<<++y<<endl;cout<<y--<<endl;cout<<--y<<endl;cout<<y<<endl;
101012121010
![Page 5: Lecture 8 (Loops)](https://reader034.vdocuments.site/reader034/viewer/2022042821/55cf913b550346f57b8bcbb4/html5/thumbnails/5.jpg)
Post/Pre Increment
int y = 10;
int y = 10;
y--;
cout<<y<<endl;cout<<y--<<endl;cout<<++y<<endl;cout<<y<<endl
9999
int y = 5, x = 6;y--;cout<<y<<endl;cout<<y-- + x++<<endl;cout<<++y + --x<<endl;cout<<y + x<<endl;cout<<"y = "<<y <<endl;cout<<"x = "<<x <<endl; 4
101010Y = 4X = 6
![Page 6: Lecture 8 (Loops)](https://reader034.vdocuments.site/reader034/viewer/2022042821/55cf913b550346f57b8bcbb4/html5/thumbnails/6.jpg)
Compound Assignment Operators
Operator =
![Page 7: Lecture 8 (Loops)](https://reader034.vdocuments.site/reader034/viewer/2022042821/55cf913b550346f57b8bcbb4/html5/thumbnails/7.jpg)
+=counter += 3 ;
same ascounter = counter + 3 ;
![Page 8: Lecture 8 (Loops)](https://reader034.vdocuments.site/reader034/viewer/2022042821/55cf913b550346f57b8bcbb4/html5/thumbnails/8.jpg)
-=counter -= 5 ;
same ascounter = counter – 5 ;
![Page 9: Lecture 8 (Loops)](https://reader034.vdocuments.site/reader034/viewer/2022042821/55cf913b550346f57b8bcbb4/html5/thumbnails/9.jpg)
*=x*=2
x = x * 2
![Page 10: Lecture 8 (Loops)](https://reader034.vdocuments.site/reader034/viewer/2022042821/55cf913b550346f57b8bcbb4/html5/thumbnails/10.jpg)
/=x /= 2
x = x / 2
![Page 11: Lecture 8 (Loops)](https://reader034.vdocuments.site/reader034/viewer/2022042821/55cf913b550346f57b8bcbb4/html5/thumbnails/11.jpg)
%=x %= 2 ;
same as x = x % 2 ;
![Page 12: Lecture 8 (Loops)](https://reader034.vdocuments.site/reader034/viewer/2022042821/55cf913b550346f57b8bcbb4/html5/thumbnails/12.jpg)
C++ Iterative Constructs
Three constructs while statement for statement do-while statement
![Page 13: Lecture 8 (Loops)](https://reader034.vdocuments.site/reader034/viewer/2022042821/55cf913b550346f57b8bcbb4/html5/thumbnails/13.jpg)
Why we use loops
Add these Numbers 1+2+3+4+5+6+7+8+9= 55
Add these 1+2+3+4………….+1000000000= ?
![Page 14: Lecture 8 (Loops)](https://reader034.vdocuments.site/reader034/viewer/2022042821/55cf913b550346f57b8bcbb4/html5/thumbnails/14.jpg)
The For Statement
Syntaxfor (ForInit ; ForExpression; PostExpression) Action
Examplefor (int i = 0; i < 3; ++i) { cout << "i is " << i << endl;
}
![Page 15: Lecture 8 (Loops)](https://reader034.vdocuments.site/reader034/viewer/2022042821/55cf913b550346f57b8bcbb4/html5/thumbnails/15.jpg)
ForExpr
Action
true false
ForInit
PostExpr
Evaluated onceat the beginning
of the forstatements's
executionThe ForExpr is
evaluated at thestart of each
iteration of theloop
If ForExpr istrue, Action is
executed
After the Actionhas completed,
thePostExpression
is evaluated
If ForExpr isfalse, program
executioncontinues withnext statement
After evaluating thePostExpression, the next
iteration of the loop starts
![Page 16: Lecture 8 (Loops)](https://reader034.vdocuments.site/reader034/viewer/2022042821/55cf913b550346f57b8bcbb4/html5/thumbnails/16.jpg)
Execution Trace
for (int i = 0; i < 3; ++i) {cout << "i is " << i << endl;
}
cout << "all done" << endl;
i 0
![Page 17: Lecture 8 (Loops)](https://reader034.vdocuments.site/reader034/viewer/2022042821/55cf913b550346f57b8bcbb4/html5/thumbnails/17.jpg)
Execution Trace
for (int i = 0; i < 3; ++i) {cout << "i is " << i << endl;
}
cout << "all done" << endl;
i 0
![Page 18: Lecture 8 (Loops)](https://reader034.vdocuments.site/reader034/viewer/2022042821/55cf913b550346f57b8bcbb4/html5/thumbnails/18.jpg)
Execution Trace
for (int i = 0; i < 3; ++i) {cout << "i is " << i << endl;
}
cout << "all done" << endl;
i is 0
i 0
![Page 19: Lecture 8 (Loops)](https://reader034.vdocuments.site/reader034/viewer/2022042821/55cf913b550346f57b8bcbb4/html5/thumbnails/19.jpg)
Execution Trace
for (int i = 0; i < 3; ++i) {cout << "i is " << i << endl;
}
cout << "all done" << endl;
i is 0
i 0
![Page 20: Lecture 8 (Loops)](https://reader034.vdocuments.site/reader034/viewer/2022042821/55cf913b550346f57b8bcbb4/html5/thumbnails/20.jpg)
Execution Trace
for (int i = 0; i < 3; ++i) {cout << "i is " << i << endl;
}
cout << "all done" << endl;
i is 0
i 1
![Page 21: Lecture 8 (Loops)](https://reader034.vdocuments.site/reader034/viewer/2022042821/55cf913b550346f57b8bcbb4/html5/thumbnails/21.jpg)
Execution Trace
for (int i = 0; i < 3; ++i) {cout << "i is " << i << endl;
}
cout << "all done" << endl;
i 1
![Page 22: Lecture 8 (Loops)](https://reader034.vdocuments.site/reader034/viewer/2022042821/55cf913b550346f57b8bcbb4/html5/thumbnails/22.jpg)
Execution Trace
for (int i = 0; i < 3; ++i) {cout << "i is " << i << endl;
}
cout << "all done" << endl;
i is 0
i is 1
i 1
![Page 23: Lecture 8 (Loops)](https://reader034.vdocuments.site/reader034/viewer/2022042821/55cf913b550346f57b8bcbb4/html5/thumbnails/23.jpg)
Execution Trace
for (int i = 0; i < 3; ++i) {cout << "i is " << i << endl;
}
cout << "all done" << endl;
i is 0
i is 1
i 1
![Page 24: Lecture 8 (Loops)](https://reader034.vdocuments.site/reader034/viewer/2022042821/55cf913b550346f57b8bcbb4/html5/thumbnails/24.jpg)
Execution Trace
for (int i = 0; i < 3; ++i) {cout << "i is " << i << endl;
}
cout << "all done" << endl;
i is 0
i is 1
i 2
![Page 25: Lecture 8 (Loops)](https://reader034.vdocuments.site/reader034/viewer/2022042821/55cf913b550346f57b8bcbb4/html5/thumbnails/25.jpg)
Execution Trace
for (int i = 0; i < 3; ++i) {cout << "i is " << i << endl;
}
cout << "all done" << endl;
i is 0
i is 1
i 2
![Page 26: Lecture 8 (Loops)](https://reader034.vdocuments.site/reader034/viewer/2022042821/55cf913b550346f57b8bcbb4/html5/thumbnails/26.jpg)
Execution Trace
for (int i = 0; i < 3; ++i) {cout << "i is " << i << endl;
}
cout << "all done" << endl;
i is 0
i is 1
i is 2
i 2
![Page 27: Lecture 8 (Loops)](https://reader034.vdocuments.site/reader034/viewer/2022042821/55cf913b550346f57b8bcbb4/html5/thumbnails/27.jpg)
Execution Trace
for (int i = 0; i < 3; ++i) {cout << "i is " << i << endl;
}
cout << "all done" << endl;
i is 0
i is 1
i is 2
i 2
![Page 28: Lecture 8 (Loops)](https://reader034.vdocuments.site/reader034/viewer/2022042821/55cf913b550346f57b8bcbb4/html5/thumbnails/28.jpg)
Execution Trace
for (int i = 0; i < 3; ++i) {cout << "i is " << i << endl;
}
cout << "all done" << endl;
i is 0
i is 1
i is 2
i 3
![Page 29: Lecture 8 (Loops)](https://reader034.vdocuments.site/reader034/viewer/2022042821/55cf913b550346f57b8bcbb4/html5/thumbnails/29.jpg)
Execution Trace
for (int i = 0; i < 3; ++i) {cout << "i is " << i << endl;
}
cout << "all done" << endl;
i is 0
i is 1
i is 2
i 3
![Page 30: Lecture 8 (Loops)](https://reader034.vdocuments.site/reader034/viewer/2022042821/55cf913b550346f57b8bcbb4/html5/thumbnails/30.jpg)
Execution Trace
for (int i = 0; i < 3; ++i) {cout << "i is " << i << endl;
}
cout << "all done" << endl;
i is 0
i is 1
i is 2
all done
i 3
![Page 31: Lecture 8 (Loops)](https://reader034.vdocuments.site/reader034/viewer/2022042821/55cf913b550346f57b8bcbb4/html5/thumbnails/31.jpg)
Sum of 10
int x=0;for (int i =0; i<=10; i++){
x = x+i;
}cout<<x<<endl;
![Page 32: Lecture 8 (Loops)](https://reader034.vdocuments.site/reader034/viewer/2022042821/55cf913b550346f57b8bcbb4/html5/thumbnails/32.jpg)
While Syntax
Logical expression that determineswhether the action is to be executed
while ( Expression ) Action
Action to be iterativelyperformed until logical
expression is false
![Page 33: Lecture 8 (Loops)](https://reader034.vdocuments.site/reader034/viewer/2022042821/55cf913b550346f57b8bcbb4/html5/thumbnails/33.jpg)
While Semantics
Expression
Action
true false
Expression is evaluated at the
start of each iteration of the
loop
If Expression is true, Action is
executed If Expression is false, program
execution continues with next statement
![Page 34: Lecture 8 (Loops)](https://reader034.vdocuments.site/reader034/viewer/2022042821/55cf913b550346f57b8bcbb4/html5/thumbnails/34.jpg)
int sum , number ;sum = 0 ;number = 1 ;while ( number <= 1000 ){
sum = sum + number ; number = number + 1 ;}cout << “ The sum of the first 1000 integer starting from 1 is ”
<< sum ;
Example
![Page 35: Lecture 8 (Loops)](https://reader034.vdocuments.site/reader034/viewer/2022042821/55cf913b550346f57b8bcbb4/html5/thumbnails/35.jpg)
(User Defined)while (number <=
UpperLimit)
![Page 36: Lecture 8 (Loops)](https://reader034.vdocuments.site/reader034/viewer/2022042821/55cf913b550346f57b8bcbb4/html5/thumbnails/36.jpg)
int sum, number , UpperLimit ;sum = 0 ;number = 1 ;cout << “ Please enter the upper limit for which you want the
sum ” ;cin >> UpperLimi t;while (number <= UpperLimit){
sum = sum + number ;number = number +1 ;
}cout << “ The sum of the first ” << UpperLimit
<< “ integer is ” << sum ;
Example
![Page 37: Lecture 8 (Loops)](https://reader034.vdocuments.site/reader034/viewer/2022042821/55cf913b550346f57b8bcbb4/html5/thumbnails/37.jpg)
if ( number % 2 == 0 ){
sum = sum + number ;
}number = number + 1
;
Sum Of Even Numbers
![Page 38: Lecture 8 (Loops)](https://reader034.vdocuments.site/reader034/viewer/2022042821/55cf913b550346f57b8bcbb4/html5/thumbnails/38.jpg)
sum = 0;number = 1;cout << “ Please enter the upper limit for which you want the
sum ”;cin >> UpperLimit;while (number <= UpperLimit){
if (number % 2 == 0)sum = sum + number;
number = number + 1;}cout << “ The sum of all even integer between 1 and ”
<< UpperLimit << “ is” << sum;
Example
![Page 39: Lecture 8 (Loops)](https://reader034.vdocuments.site/reader034/viewer/2022042821/55cf913b550346f57b8bcbb4/html5/thumbnails/39.jpg)
Computing an Average
int listSize = 4;
int numberProcessed = 0;
double sum = 0;
while (numberProcessed < listSize) {
double value;
cin >> value;
sum += value;
++numberProcessed;
}
double average = sum / numberProcessed ;
cout << "Average: " << average << endl;
![Page 40: Lecture 8 (Loops)](https://reader034.vdocuments.site/reader034/viewer/2022042821/55cf913b550346f57b8bcbb4/html5/thumbnails/40.jpg)
Execution Trace
int listSize = 4;
int numberProcessed = 0;
double sum = 0;
while (numberProcessed < listSize) {
double value;
cin >> value;
sum += value;
++numberProcessed;
}
double average = sum / numberProcessed ;
cout << "Average: " << average << endl;
Suppose input contains: 1 5 3 1 6
listSize 4
![Page 41: Lecture 8 (Loops)](https://reader034.vdocuments.site/reader034/viewer/2022042821/55cf913b550346f57b8bcbb4/html5/thumbnails/41.jpg)
Execution Trace
int listSize = 4;
int numberProcessed = 0;
double sum = 0;
while (numberProcessed < listSize) {
double value;
cin >> value;
sum += value;
++numberProcessed;
}
double average = sum / numberProcessed ;
cout << "Average: " << average << endl;
numberProcessed
Suppose input contains: 1 5 3 1 6
4listSize
0
![Page 42: Lecture 8 (Loops)](https://reader034.vdocuments.site/reader034/viewer/2022042821/55cf913b550346f57b8bcbb4/html5/thumbnails/42.jpg)
Execution Trace
int listSize = 4;
int numberProcessed = 0;
double sum = 0;
while (numberProcessed < listSize) {
double value;
cin >> value;
sum += value;
++numberProcessed;
}
double average = sum / numberProcessed ;
cout << "Average: " << average << endl;
numberProcessed
sum
Suppose input contains: 1 5 3 1 6
4listSize
0
0
![Page 43: Lecture 8 (Loops)](https://reader034.vdocuments.site/reader034/viewer/2022042821/55cf913b550346f57b8bcbb4/html5/thumbnails/43.jpg)
Execution Trace
int listSize = 4;
int numberProcessed = 0;
double sum = 0;
while (numberProcessed < listSize) {
double value;
cin >> value;
sum += value;
++numberProcessed;
}
double average = sum / numberProcessed ;
cout << "Average: " << average << endl;
numberProcessed
sum
Suppose input contains: 1 5 3 1 6
4listSize
0
0
![Page 44: Lecture 8 (Loops)](https://reader034.vdocuments.site/reader034/viewer/2022042821/55cf913b550346f57b8bcbb4/html5/thumbnails/44.jpg)
Execution Trace
int listSize = 4;
int numberProcessed = 0;
double sum = 0;
while (numberProcessed < listSize) {
double value;
cin >> value;
sum += value;
++numberProcessed;
}
double average = sum / numberProcessed ;
cout << "Average: " << average << endl;
numberProcessed
sum
value
Suppose input contains: 1 5 3 1 6
4listSize
0
0
--
![Page 45: Lecture 8 (Loops)](https://reader034.vdocuments.site/reader034/viewer/2022042821/55cf913b550346f57b8bcbb4/html5/thumbnails/45.jpg)
Execution Trace
int listSize = 4;
int numberProcessed = 0;
double sum = 0;
while (numberProcessed < listSize) {
double value;
cin >> value;
sum += value;
++numberProcessed;
}
double average = sum / numberProcessed ;
cout << "Average: " << average << endl;
numberProcessed
sum
value
Suppose input contains: 1 5 3 1 6
4listSize
0
0
1
![Page 46: Lecture 8 (Loops)](https://reader034.vdocuments.site/reader034/viewer/2022042821/55cf913b550346f57b8bcbb4/html5/thumbnails/46.jpg)
Execution Trace
int listSize = 4;
int numberProcessed = 0;
double sum = 0;
while (numberProcessed < listSize) {
double value;
cin >> value;
sum += value;
++numberProcessed;
}
double average = sum / numberProcessed ;
cout << "Average: " << average << endl;
numberProcessed
sum
value
Suppose input contains: 1 5 3 1 6
4listSize
0
0
1
1
![Page 47: Lecture 8 (Loops)](https://reader034.vdocuments.site/reader034/viewer/2022042821/55cf913b550346f57b8bcbb4/html5/thumbnails/47.jpg)
Execution Trace
int listSize = 4;
int numberProcessed = 0;
double sum = 0;
while (numberProcessed < listSize) {
double value;
cin >> value;
sum += value;
++numberProcessed;
}
double average = sum / numberProcessed ;
cout << "Average: " << average << endl;
numberProcessed
sum
value
Suppose input contains: 1 5 3 1 6
4listSize
0
1
1
1
![Page 48: Lecture 8 (Loops)](https://reader034.vdocuments.site/reader034/viewer/2022042821/55cf913b550346f57b8bcbb4/html5/thumbnails/48.jpg)
Execution Trace
int listSize = 4;
int numberProcessed = 0;
double sum = 0;
while (numberProcessed < listSize) {
double value;
cin >> value;
sum += value;
++numberProcessed;
}
double average = sum / numberProcessed ;
cout << "Average: " << average << endl;
numberProcessed
sum
value
Suppose input contains: 1 5 3 1 6
4listSize
1
1
1
![Page 49: Lecture 8 (Loops)](https://reader034.vdocuments.site/reader034/viewer/2022042821/55cf913b550346f57b8bcbb4/html5/thumbnails/49.jpg)
Execution Trace
int listSize = 4;
int numberProcessed = 0;
double sum = 0;
while (numberProcessed < listSize) {
double value;
cin >> value;
sum += value;
++numberProcessed;
}
double average = sum / numberProcessed ;
cout << "Average: " << average << endl;
numberProcessed
sum
value
Suppose input contains: 1 5 3 1 6
4listSize
1
1
--
![Page 50: Lecture 8 (Loops)](https://reader034.vdocuments.site/reader034/viewer/2022042821/55cf913b550346f57b8bcbb4/html5/thumbnails/50.jpg)
Execution Trace
int listSize = 4;
int numberProcessed = 0;
double sum = 0;
while (numberProcessed < listSize) {
double value;
cin >> value;
sum += value;
++numberProcessed;
}
double average = sum / numberProcessed ;
cout << "Average: " << average << endl;
numberProcessed
sum
value
Suppose input contains: 1 5 3 1 6
4listSize
1
1
5
![Page 51: Lecture 8 (Loops)](https://reader034.vdocuments.site/reader034/viewer/2022042821/55cf913b550346f57b8bcbb4/html5/thumbnails/51.jpg)
Execution Trace
int listSize = 4;
int numberProcessed = 0;
double sum = 0;
while (numberProcessed < listSize) {
double value;
cin >> value;
sum += value;
++numberProcessed;
}
double average = sum / numberProcessed ;
cout << "Average: " << average << endl;
numberProcessed
sum
value
Suppose input contains: 1 5 3 1 6
4listSize
1
1
5
6
![Page 52: Lecture 8 (Loops)](https://reader034.vdocuments.site/reader034/viewer/2022042821/55cf913b550346f57b8bcbb4/html5/thumbnails/52.jpg)
Execution Trace
int listSize = 4;
int numberProcessed = 0;
double sum = 0;
while (numberProcessed < listSize) {
double value;
cin >> value;
sum += value;
++numberProcessed;
}
double average = sum / numberProcessed ;
cout << "Average: " << average << endl;
numberProcessed
sum
value
Suppose input contains: 1 5 3 1 6
4listSize
1
6
5
2
![Page 53: Lecture 8 (Loops)](https://reader034.vdocuments.site/reader034/viewer/2022042821/55cf913b550346f57b8bcbb4/html5/thumbnails/53.jpg)
Execution Trace
int listSize = 4;
int numberProcessed = 0;
double sum = 0;
while (numberProcessed < listSize) {
double value;
cin >> value;
sum += value;
++numberProcessed;
}
double average = sum / numberProcessed ;
cout << "Average: " << average << endl;
numberProcessed
sum
value
Suppose input contains: 1 5 3 1 6
4listSize
2
6
5
6
![Page 54: Lecture 8 (Loops)](https://reader034.vdocuments.site/reader034/viewer/2022042821/55cf913b550346f57b8bcbb4/html5/thumbnails/54.jpg)
Execution Trace
int listSize = 4;
int numberProcessed = 0;
double sum = 0;
while (numberProcessed < listSize) {
double value;
cin >> value;
sum += value;
++numberProcessed;
}
double average = sum / numberProcessed ;
cout << "Average: " << average << endl;
numberProcessed
sum
value
Suppose input contains: 1 5 3 1 6
4listSize
2
6
--
2
![Page 55: Lecture 8 (Loops)](https://reader034.vdocuments.site/reader034/viewer/2022042821/55cf913b550346f57b8bcbb4/html5/thumbnails/55.jpg)
Execution Trace
int listSize = 4;
int numberProcessed = 0;
double sum = 0;
while (numberProcessed < listSize) {
double value;
cin >> value;
sum += value;
++numberProcessed;
}
double average = sum / numberProcessed ;
cout << "Average: " << average << endl;
numberProcessed
sum
value
Suppose input contains: 1 5 3 1 6
4listSize
2
6
3
2
![Page 56: Lecture 8 (Loops)](https://reader034.vdocuments.site/reader034/viewer/2022042821/55cf913b550346f57b8bcbb4/html5/thumbnails/56.jpg)
Execution Trace
int listSize = 4;
int numberProcessed = 0;
double sum = 0;
while (numberProcessed < listSize) {
double value;
cin >> value;
sum += value;
++numberProcessed;
}
double average = sum / numberProcessed ;
cout << "Average: " << average << endl;
numberProcessed
sum
value
Suppose input contains: 1 5 3 1 6
4listSize
2
6
3
9
![Page 57: Lecture 8 (Loops)](https://reader034.vdocuments.site/reader034/viewer/2022042821/55cf913b550346f57b8bcbb4/html5/thumbnails/57.jpg)
Execution Trace
int listSize = 4;
int numberProcessed = 0;
double sum = 0;
while (numberProcessed < listSize) {
double value;
cin >> value;
sum += value;
++numberProcessed;
}
double average = sum / numberProcessed ;
cout << "Average: " << average << endl;
numberProcessed
sum
value
Suppose input contains: 1 5 3 1 6
4listSize
2
9
3
3
![Page 58: Lecture 8 (Loops)](https://reader034.vdocuments.site/reader034/viewer/2022042821/55cf913b550346f57b8bcbb4/html5/thumbnails/58.jpg)
Execution Trace
int listSize = 4;
int numberProcessed = 0;
double sum = 0;
while (numberProcessed < listSize) {
double value;
cin >> value;
sum += value;
++numberProcessed;
}
double average = sum / numberProcessed ;
cout << "Average: " << average << endl;
numberProcessed
sum
value
Suppose input contains: 1 5 3 1 6
4listSize
3
9
3
3
![Page 59: Lecture 8 (Loops)](https://reader034.vdocuments.site/reader034/viewer/2022042821/55cf913b550346f57b8bcbb4/html5/thumbnails/59.jpg)
Execution Trace
int listSize = 4;
int numberProcessed = 0;
double sum = 0;
while (numberProcessed < listSize) {
double value;
cin >> value;
sum += value;
++numberProcessed;
}
double average = sum / numberProcessed ;
cout << "Average: " << average << endl;
numberProcessed
sum
value
Suppose input contains: 1 5 3 1 6
4listSize
3
9
--
3
![Page 60: Lecture 8 (Loops)](https://reader034.vdocuments.site/reader034/viewer/2022042821/55cf913b550346f57b8bcbb4/html5/thumbnails/60.jpg)
Execution Trace
int listSize = 4;
int numberProcessed = 0;
double sum = 0;
while (numberProcessed < listSize) {
double value;
cin >> value;
sum += value;
++numberProcessed;
}
double average = sum / numberProcessed ;
cout << "Average: " << average << endl;
numberProcessed
sum
value
Suppose input contains: 1 5 3 1 6
4listSize
3
9
1
3
![Page 61: Lecture 8 (Loops)](https://reader034.vdocuments.site/reader034/viewer/2022042821/55cf913b550346f57b8bcbb4/html5/thumbnails/61.jpg)
Execution Trace
int listSize = 4;
int numberProcessed = 0;
double sum = 0;
while (numberProcessed < listSize) {
double value;
cin >> value;
sum += value;
++numberProcessed;
}
double average = sum / numberProcessed ;
cout << "Average: " << average << endl;
numberProcessed
sum
value
Suppose input contains: 1 5 3 1 6
4listSize
3
9
1
10
![Page 62: Lecture 8 (Loops)](https://reader034.vdocuments.site/reader034/viewer/2022042821/55cf913b550346f57b8bcbb4/html5/thumbnails/62.jpg)
Execution Trace
int listSize = 4;
int numberProcessed = 0;
double sum = 0;
while (numberProcessed < listSize) {
double value;
cin >> value;
sum += value;
++numberProcessed;
}
double average = sum / numberProcessed ;
cout << "Average: " << average << endl;
numberProcessed
sum
value
Suppose input contains: 1 5 3 1 6
4listSize
3
10
1
4
![Page 63: Lecture 8 (Loops)](https://reader034.vdocuments.site/reader034/viewer/2022042821/55cf913b550346f57b8bcbb4/html5/thumbnails/63.jpg)
Execution Trace
int listSize = 4;
int numberProcessed = 0;
double sum = 0;
while (numberProcessed < listSize) {
double value;
cin >> value;
sum += value;
++numberProcessed;
}
double average = sum / numberProcessed ;
cout << "Average: " << average << endl;
numberProcessed
sum
value
Suppose input contains: 1 5 3 1 6
4listSize
3
10
1
4
![Page 64: Lecture 8 (Loops)](https://reader034.vdocuments.site/reader034/viewer/2022042821/55cf913b550346f57b8bcbb4/html5/thumbnails/64.jpg)
Execution Trace
int listSize = 4;
int numberProcessed = 0;
double sum = 0;
while (numberProcessed < listSize) {
double value;
cin >> value;
sum += value;
++numberProcessed;
}
double average = sum / numberProcessed ;
cout << "Average: " << average << endl;
numberProcessed
sum
Suppose input contains: 1 5 3 1 6
4listSize
3
10
average 2.5
4
![Page 65: Lecture 8 (Loops)](https://reader034.vdocuments.site/reader034/viewer/2022042821/55cf913b550346f57b8bcbb4/html5/thumbnails/65.jpg)
Execution Trace
int listSize = 4;
int numberProcessed = 0;
double sum = 0;
while (numberProcessed < listSize) {
double value;
cin >> value;
sum += value;
++numberProcessed;
}
double average = sum / numberProcessed ;
cout << "Average: " << average << endl;
numberProcessed
sum
average
Suppose input contains: 1 5 3 1 6
4listSize
3
10
2.5
4
![Page 66: Lecture 8 (Loops)](https://reader034.vdocuments.site/reader034/viewer/2022042821/55cf913b550346f57b8bcbb4/html5/thumbnails/66.jpg)
Execution Trace
int listSize = 4;
int numberProcessed = 0;
double sum = 0;
while (numberProcessed < listSize) {
double value;
cin >> value;
sum += value;
++numberProcessed;
}
double average = sum / numberProcessed ;
cout << "Average: " << average << endl;
Suppose input contains: 1 5 3 1 6
Stays in stream until extracted
![Page 67: Lecture 8 (Loops)](https://reader034.vdocuments.site/reader034/viewer/2022042821/55cf913b550346f57b8bcbb4/html5/thumbnails/67.jpg)
Power of Two Table
const int TableSize = 20;
int i = 0;long Entry = 1;
cout << "i" << "\t\t" << "2 ** i" << endl;
while (i < TableSize) {cout << i << "\t\t" << Entry << endl;Entry = 2 * Entry;++i;
}
![Page 68: Lecture 8 (Loops)](https://reader034.vdocuments.site/reader034/viewer/2022042821/55cf913b550346f57b8bcbb4/html5/thumbnails/68.jpg)
Better Way of Averagingint numberProcessed = 0;
double sum = 0;
double value;
while ( cin >> value ) {
sum += value;
++numberProcessed;
}
double average = sum / numberProcessed ;
cout << "Average: " << average << endl;
What if list is empty?
The value of the input operation corresponds to true only if a successful
extraction was made
![Page 69: Lecture 8 (Loops)](https://reader034.vdocuments.site/reader034/viewer/2022042821/55cf913b550346f57b8bcbb4/html5/thumbnails/69.jpg)
Even Better Way of Averagingint numberProcessed = 0;double sum = 0;double value;while ( cin >> value ) {
sum += value;++numberProcessed;
}if ( numberProcessed > 0 ) {
double average = sum / numberProcessed ;cout << "Average: " << average << endl;
}else {
cout << "No list to average" << endl;}
![Page 70: Lecture 8 (Loops)](https://reader034.vdocuments.site/reader034/viewer/2022042821/55cf913b550346f57b8bcbb4/html5/thumbnails/70.jpg)
Table Revisiting
const int TableSize = 20;
long Entry = 1;
cout << "i" << "\t\t" << "2**i" << endl;
for (int i = 0; i <= TableSize; ++i) {cout << i << "\t\t" << Entry << endl;Entry *= 2;
}
![Page 71: Lecture 8 (Loops)](https://reader034.vdocuments.site/reader034/viewer/2022042821/55cf913b550346f57b8bcbb4/html5/thumbnails/71.jpg)
Table Revisiting
const int TableSize = 20;
long Entry = 1;
cout << "i" << "\t\t" << "2**i" << endl;
for (int i = 0; i < TableSize; ++i) {cout << i << "\t\t" << Entry << endl;Entry = 2 * Entry;
}
cout << "i is" << i << endl; // illegal
The scope of i is limited to the loop!
![Page 72: Lecture 8 (Loops)](https://reader034.vdocuments.site/reader034/viewer/2022042821/55cf913b550346f57b8bcbb4/html5/thumbnails/72.jpg)
int Counter1 = 0;int Counter2 = 0;int Counter3 = 0;int Counter4 = 0;int Counter5 = 0;
++Counter1;
for (int i = 1; i <= 10; ++i) {
++Counter2;
for (int j = 1; j <= 20; ++j) { ++Counter3; }
++Counter4;}
++Counter5;
cout << Counter1 << " " << Counter2 << " "
<< Counter3 << " " << Counter4 << " "
<< Counter5 << endl;
![Page 73: Lecture 8 (Loops)](https://reader034.vdocuments.site/reader034/viewer/2022042821/55cf913b550346f57b8bcbb4/html5/thumbnails/73.jpg)
For Into While
Observation The for statement is equivalent to
{
ForInit;
while (ForExpression) {
Action;
PostExpression;
}
}
![Page 74: Lecture 8 (Loops)](https://reader034.vdocuments.site/reader034/viewer/2022042821/55cf913b550346f57b8bcbb4/html5/thumbnails/74.jpg)
Counting Characters
int NumberOfNonBlanks = 0;int NumberOfUpperCase = 0;char c;while (cin >> c) {
++NumberOfNonBlanks;if ((c >= 'A') && (c <= 'Z')) {
++NumberOfUpperCase;}
}cout << "Nonblank characters: " << NumberOfNonBlanks << endl << "Uppercase characters: " << NumberOfUpperCase << endl;
Only extracts nonblank characters
![Page 75: Lecture 8 (Loops)](https://reader034.vdocuments.site/reader034/viewer/2022042821/55cf913b550346f57b8bcbb4/html5/thumbnails/75.jpg)
Counting Charactersint NumberOfNonBlanks = 0;int NumberOfUpperCase = 0;char c;cout<<“To Terminate Press 0 ”;while (cin >> c && C !- ‘0’) {
++NumberOfNonBlanks;if ((c >= 'A') && (c <= 'Z')) {
++NumberOfUpperCase;}
}cout << "Nonblank characters: " << NumberOfNonBlanks << endl << "Uppercase characters: " << NumberOfUpperCase << endl;
Use to terminate
![Page 76: Lecture 8 (Loops)](https://reader034.vdocuments.site/reader034/viewer/2022042821/55cf913b550346f57b8bcbb4/html5/thumbnails/76.jpg)
Counting All Characters
char c;
int NumberOfCharacters = 0;
int NumberOfLines = 0;
while ( cin.get(c) ) {++NumberOfCharacters;if (c == '\n') {
++NumberOfLines}
}
cout << "Characters: " << NumberOfCharacters
<< endl << "Lines: " << NumberOfLines
<< endl;
Extracts all characters
![Page 77: Lecture 8 (Loops)](https://reader034.vdocuments.site/reader034/viewer/2022042821/55cf913b550346f57b8bcbb4/html5/thumbnails/77.jpg)
#include <iostream>#include <fstream>using namespace std;int main() {
ifstream fin("mydata.txt");int ValuesProcessed = 0;float ValueSum = 0;float Value;while ( fin >> Value ) {
ValueSum += Value;++ValuesProcessed;
}if (ValuesProcessed > 0) {
ofstream fout("average.txt");float Average = ValueSum / ValuesProcessed;fout << "Average: " << Average << endl;return 0;
}else {
cerr << "No list to average" << endl;return 1;
}}
File Processing
![Page 78: Lecture 8 (Loops)](https://reader034.vdocuments.site/reader034/viewer/2022042821/55cf913b550346f57b8bcbb4/html5/thumbnails/78.jpg)
Iteration Do’s
Key Points Make sure there is a statement that will eventually
terminate the iteration criterion The loop must stop!
Make sure that initialization of loop counters or iterators is properly performed
Have a clear purpose for the loop Document the purpose of the loop Document how the body of the loop advances the
purpose of the loop